mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-05-07 03:49:20 +00:00
linux-ti335x-psp 3.1: backport some PSP patches, add beaglebone bootlogo
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
+263
@@ -0,0 +1,263 @@
|
||||
From 29e73e40f5bda71f16ada687015545c79d005e34 Mon Sep 17 00:00:00 2001
|
||||
From: Ajay Kumar Gupta <ajay.gupta@ti.com>
|
||||
Date: Wed, 2 Nov 2011 11:15:40 +0530
|
||||
Subject: [PATCH 1/5] usb: musb_core: kill all global and static variables
|
||||
|
||||
This needed for dual instances support.
|
||||
Changes include:
|
||||
- Move fifo_mode, orig_dma_mask, otg_timer, first to musb struct
|
||||
- Killed option for use_dma
|
||||
---
|
||||
drivers/usb/musb/musb_core.c | 80 +++++++++++++-----------------------------
|
||||
drivers/usb/musb/musb_core.h | 7 ++++
|
||||
2 files changed, 32 insertions(+), 55 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
|
||||
index 16eec45..86232ae 100644
|
||||
--- a/drivers/usb/musb/musb_core.c
|
||||
+++ b/drivers/usb/musb/musb_core.c
|
||||
@@ -399,8 +399,6 @@ void musb_otg_timer_func(unsigned long data)
|
||||
spin_unlock_irqrestore(&musb->lock, flags);
|
||||
}
|
||||
|
||||
-static DEFINE_TIMER(musb_otg_timer, musb_otg_timer_func, 0, 0);
|
||||
-
|
||||
/*
|
||||
* Stops the B-device HNP state. Caller must take care of locking.
|
||||
*/
|
||||
@@ -664,8 +662,7 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb,
|
||||
if (musb->is_active) {
|
||||
musb->xceiv->state = OTG_STATE_B_WAIT_ACON;
|
||||
dev_dbg(musb->controller, "HNP: Setting timer for b_ase0_brst\n");
|
||||
- musb_otg_timer.data = (unsigned long)musb;
|
||||
- mod_timer(&musb_otg_timer, jiffies
|
||||
+ mod_timer(&musb->otg_timer, jiffies
|
||||
+ msecs_to_jiffies(TB_ASE0_BRST));
|
||||
}
|
||||
break;
|
||||
@@ -826,8 +823,7 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb,
|
||||
case OTG_STATE_A_WAIT_BCON: /* OPT TD.4.7-900ms */
|
||||
dev_dbg(musb->controller, "HNP: Setting timer as %s\n",
|
||||
otg_state_string(musb->xceiv->state));
|
||||
- musb_otg_timer.data = (unsigned long)musb;
|
||||
- mod_timer(&musb_otg_timer, jiffies
|
||||
+ mod_timer(&musb->otg_timer, jiffies
|
||||
+ msecs_to_jiffies(100));
|
||||
break;
|
||||
case OTG_STATE_A_PERIPHERAL:
|
||||
@@ -1024,22 +1020,6 @@ static void musb_shutdown(struct platform_device *pdev)
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
- * The silicon either has hard-wired endpoint configurations, or else
|
||||
- * "dynamic fifo" sizing. The driver has support for both, though at this
|
||||
- * writing only the dynamic sizing is very well tested. Since we switched
|
||||
- * away from compile-time hardware parameters, we can no longer rely on
|
||||
- * dead code elimination to leave only the relevant one in the object file.
|
||||
- *
|
||||
- * We don't currently use dynamic fifo setup capability to do anything
|
||||
- * more than selecting one of a bunch of predefined configurations.
|
||||
- */
|
||||
-static short __devinitdata fifo_mode = -1;
|
||||
-
|
||||
-/* "modprobe ... fifo_mode=1" etc */
|
||||
-module_param(fifo_mode, short, 0);
|
||||
-MODULE_PARM_DESC(fifo_mode, "initial endpoint configuration");
|
||||
-
|
||||
-/*
|
||||
* tables defining fifo_mode values. define more if you like.
|
||||
* for host side, make sure both halves of ep1 are set up.
|
||||
*/
|
||||
@@ -1253,7 +1233,7 @@ fifo_setup(struct musb *musb, struct musb_hw_ep *hw_ep,
|
||||
return offset + (maxpacket << ((c_size & MUSB_FIFOSZ_DPB) ? 1 : 0));
|
||||
}
|
||||
|
||||
- static struct musb_fifo_cfg __devinitdata ep0_cfg = {
|
||||
+static struct musb_fifo_cfg __devinitdata ep0_cfg = {
|
||||
.style = FIFO_RXTX, .maxpacket = 64,
|
||||
};
|
||||
|
||||
@@ -1265,16 +1245,16 @@ static int __devinit ep_config_from_table(struct musb *musb)
|
||||
struct musb_hw_ep *hw_ep = musb->endpoints;
|
||||
|
||||
if (musb->config->fifo_mode)
|
||||
- fifo_mode = musb->config->fifo_mode;
|
||||
+ musb->fifo_mode = musb->config->fifo_mode;
|
||||
else if (musb->config->fifo_cfg) {
|
||||
cfg = musb->config->fifo_cfg;
|
||||
n = musb->config->fifo_cfg_size;
|
||||
goto done;
|
||||
}
|
||||
|
||||
- switch (fifo_mode) {
|
||||
+ switch (musb->fifo_mode) {
|
||||
default:
|
||||
- fifo_mode = 0;
|
||||
+ musb->fifo_mode = 0;
|
||||
/* FALLTHROUGH */
|
||||
case 0:
|
||||
cfg = mode_0_cfg;
|
||||
@@ -1307,7 +1287,7 @@ static int __devinit ep_config_from_table(struct musb *musb)
|
||||
}
|
||||
|
||||
printk(KERN_DEBUG "%s: setup fifo_mode %d\n",
|
||||
- musb_driver_name, fifo_mode);
|
||||
+ musb_driver_name, musb->fifo_mode);
|
||||
|
||||
|
||||
done:
|
||||
@@ -1642,12 +1622,6 @@ irqreturn_t musb_interrupt(struct musb *musb)
|
||||
EXPORT_SYMBOL_GPL(musb_interrupt);
|
||||
|
||||
#ifndef CONFIG_MUSB_PIO_ONLY
|
||||
-static int __devinitdata use_dma = 1;
|
||||
-
|
||||
-/* "modprobe ... use_dma=0" etc */
|
||||
-module_param(use_dma, bool, 0);
|
||||
-MODULE_PARM_DESC(use_dma, "enable/disable use of DMA");
|
||||
-
|
||||
void musb_dma_completion(struct musb *musb, u8 epnum, u8 transmit)
|
||||
{
|
||||
u8 devctl = musb_readb(musb->mregs, MUSB_DEVCTL);
|
||||
@@ -1686,9 +1660,6 @@ void musb_dma_completion(struct musb *musb, u8 epnum, u8 transmit)
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(musb_dma_completion);
|
||||
-
|
||||
-#else
|
||||
-#define use_dma 0
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
@@ -1813,10 +1784,9 @@ static const struct attribute_group musb_attr_group = {
|
||||
static void musb_irq_work(struct work_struct *data)
|
||||
{
|
||||
struct musb *musb = container_of(data, struct musb, irq_work);
|
||||
- static int old_state;
|
||||
|
||||
- if (musb->xceiv->state != old_state) {
|
||||
- old_state = musb->xceiv->state;
|
||||
+ if (musb->xceiv->state != musb->old_state) {
|
||||
+ musb->old_state = musb->xceiv->state;
|
||||
sysfs_notify(&musb->controller->kobj, NULL, "mode");
|
||||
}
|
||||
}
|
||||
@@ -1895,6 +1865,8 @@ static void musb_free(struct musb *musb)
|
||||
if (musb->gb_queue)
|
||||
destroy_workqueue(musb->gb_queue);
|
||||
|
||||
+ del_timer_sync(&musb->otg_timer);
|
||||
+
|
||||
kfree(musb);
|
||||
}
|
||||
|
||||
@@ -1943,10 +1915,13 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl,
|
||||
musb->min_power = plat->min_power;
|
||||
musb->ops = plat->platform_ops;
|
||||
musb->id = pdev->id;
|
||||
+ musb->first = 1;
|
||||
|
||||
- if (fifo_mode == -1)
|
||||
- fifo_mode = musb->ops->fifo_mode;
|
||||
+ musb->fifo_mode = musb->ops->fifo_mode;
|
||||
|
||||
+#ifndef CONFIG_MUSB_PIO_ONLY
|
||||
+ musb->orig_dma_mask = dev->dma_mask;
|
||||
+#endif
|
||||
if (musb->ops->flags & MUSB_GLUE_TUSB_STYLE) {
|
||||
musb_readb = __tusb_musb_readb;
|
||||
musb_writeb = __tusb_musb_writeb;
|
||||
@@ -1984,7 +1959,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl,
|
||||
}
|
||||
|
||||
#ifndef CONFIG_MUSB_PIO_ONLY
|
||||
- if (use_dma && dev->dma_mask) {
|
||||
+ if (dev->dma_mask) {
|
||||
struct dma_controller *c;
|
||||
|
||||
if (!musb->ops->dma_controller_create) {
|
||||
@@ -2123,6 +2098,9 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl,
|
||||
/* Init giveback workqueue */
|
||||
INIT_WORK(&musb->gb_work, musb_gb_work);
|
||||
|
||||
+ /* setup otg_timer */
|
||||
+ setup_timer(&musb->otg_timer, musb_otg_timer_func,
|
||||
+ (unsigned long) musb);
|
||||
return 0;
|
||||
|
||||
fail6:
|
||||
@@ -2159,11 +2137,6 @@ fail0:
|
||||
/* all implementations (PCI bridge to FPGA, VLYNQ, etc) should just
|
||||
* bridge to a platform device; this driver then suffices.
|
||||
*/
|
||||
-
|
||||
-#ifndef CONFIG_MUSB_PIO_ONLY
|
||||
-static u64 *orig_dma_mask;
|
||||
-#endif
|
||||
-
|
||||
static int __devinit musb_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@@ -2196,10 +2169,6 @@ static int __devinit musb_probe(struct platform_device *pdev)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
-#ifndef CONFIG_MUSB_PIO_ONLY
|
||||
- /* clobbered by use_dma=n */
|
||||
- orig_dma_mask = dev->dma_mask;
|
||||
-#endif
|
||||
status = musb_init_controller(dev, irq, base, iomem->start);
|
||||
if (status < 0)
|
||||
iounmap(base);
|
||||
@@ -2229,7 +2198,7 @@ static int __exit musb_remove(struct platform_device *pdev)
|
||||
iounmap(ctrl_base);
|
||||
device_init_wakeup(&pdev->dev, 0);
|
||||
#ifndef CONFIG_MUSB_PIO_ONLY
|
||||
- pdev->dev.dma_mask = orig_dma_mask;
|
||||
+ pdev->dev.dma_mask = musb->orig_dma_mask;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
@@ -2441,7 +2410,6 @@ static int musb_runtime_suspend(struct device *dev)
|
||||
static int musb_runtime_resume(struct device *dev)
|
||||
{
|
||||
struct musb *musb = dev_to_musb(dev);
|
||||
- static int first = 1;
|
||||
|
||||
/*
|
||||
* When pm_runtime_get_sync called for the first time in driver
|
||||
@@ -2452,9 +2420,11 @@ static int musb_runtime_resume(struct device *dev)
|
||||
* Also context restore without save does not make
|
||||
* any sense
|
||||
*/
|
||||
- if (!first)
|
||||
+ if (musb->first)
|
||||
+ musb->first = 0;
|
||||
+ else
|
||||
musb_restore_context(musb);
|
||||
- first = 0;
|
||||
+
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
|
||||
index 919d43b..a34886f 100644
|
||||
--- a/drivers/usb/musb/musb_core.h
|
||||
+++ b/drivers/usb/musb/musb_core.h
|
||||
@@ -464,6 +464,13 @@ struct musb {
|
||||
u8 id;
|
||||
struct timer_list otg_workaround;
|
||||
unsigned long last_timer;
|
||||
+ int first;
|
||||
+ int old_state;
|
||||
+ struct timer_list otg_timer;
|
||||
+#ifndef CONFIG_MUSB_PIO_ONLY
|
||||
+ u64 *orig_dma_mask;
|
||||
+#endif
|
||||
+ short fifo_mode;
|
||||
};
|
||||
|
||||
static inline struct musb *gadget_to_musb(struct usb_gadget *g)
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
From 1fff5fde3f5b2d167d5c51f9e7cf316fbd79886f Mon Sep 17 00:00:00 2001
|
||||
From: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
Date: Tue, 8 Nov 2011 18:54:44 +0530
|
||||
Subject: [PATCH 2/5] arm:omap:am335x: correct 32KHz clk rate
|
||||
|
||||
correct 32KHz clk (Divide down of PER PLL output) from 32678 to 32768
|
||||
|
||||
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
---
|
||||
arch/arm/mach-omap2/clock33xx_data.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/clock33xx_data.c b/arch/arm/mach-omap2/clock33xx_data.c
|
||||
index 6763c59..f121196 100644
|
||||
--- a/arch/arm/mach-omap2/clock33xx_data.c
|
||||
+++ b/arch/arm/mach-omap2/clock33xx_data.c
|
||||
@@ -44,7 +44,7 @@ void am33xx_init_timer_parent(struct clk *clk)
|
||||
|
||||
static struct clk clk_32768_ck = {
|
||||
.name = "clk_32768_ck",
|
||||
- .rate = 32678,
|
||||
+ .rate = 32768,
|
||||
.ops = &clkops_null,
|
||||
};
|
||||
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
From c5b1ff5857e590f50b4276d4de8e34fbcdc4dfb9 Mon Sep 17 00:00:00 2001
|
||||
From: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
Date: Mon, 24 Oct 2011 15:59:37 +0530
|
||||
Subject: [PATCH 3/5] arm:omap:mcspi: correct memory range when requesting regions
|
||||
|
||||
Current McSPI driver 1st requests memory regions & later adds register
|
||||
offset. This causes warning when during module removal as below.
|
||||
|
||||
root@arago-armv7:~# rmmod -v /lib/modules/3.1.0-rc8/spi-omap2-mcspi.ko
|
||||
rmmod spi_omap2_mcspi, wait=no
|
||||
[ 42.472810] Trying to free nonexistent resource
|
||||
<00000000481a0100-00000000481a04ff>
|
||||
[ 42.519178] Trying to free nonexistent resource
|
||||
<0000000048030100-00000000480304ff>
|
||||
|
||||
This patch moves the register offset addition before request_mem_region
|
||||
|
||||
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
---
|
||||
drivers/spi/spi-omap2-mcspi.c | 5 +++--
|
||||
1 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
|
||||
index 860651f..f757a8e 100644
|
||||
--- a/drivers/spi/spi-omap2-mcspi.c
|
||||
+++ b/drivers/spi/spi-omap2-mcspi.c
|
||||
@@ -1136,14 +1136,15 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
|
||||
status = -ENODEV;
|
||||
goto err1;
|
||||
}
|
||||
+
|
||||
+ r->start += pdata->regs_offset;
|
||||
+ r->end += pdata->regs_offset;
|
||||
if (!request_mem_region(r->start, resource_size(r),
|
||||
dev_name(&pdev->dev))) {
|
||||
status = -EBUSY;
|
||||
goto err1;
|
||||
}
|
||||
|
||||
- r->start += pdata->regs_offset;
|
||||
- r->end += pdata->regs_offset;
|
||||
mcspi->phys = r->start;
|
||||
mcspi->base = ioremap(r->start, resource_size(r));
|
||||
if (!mcspi->base) {
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
From 0cd12bf08c6d08771e493342c704de60830785cf Mon Sep 17 00:00:00 2001
|
||||
From: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
Date: Mon, 24 Oct 2011 15:50:27 +0530
|
||||
Subject: [PATCH 4/5] arm:omap:mcspi: follow proper pm_runtime enable/disable sequence
|
||||
|
||||
omap mcspi probe() doesnt call pm_runtime put & disable functions
|
||||
in case of failure. remove() doesnt call pm_runtime disable. This could
|
||||
lead to warnings as below on subsequent insmod.
|
||||
|
||||
root@arago-armv7:~# insmod /lib/modules/3.1.0-rc8/spi-omap2-mcspi.ko
|
||||
[ 255.383671] omap2_mcspi omap2_mcspi.1: Unbalanced pm_runtime_enable!
|
||||
...
|
||||
|
||||
This patch adds the pm_runtime put() & disable() at aprropriate stages.
|
||||
|
||||
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
---
|
||||
drivers/spi/spi-omap2-mcspi.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
|
||||
index f757a8e..7a8e19e 100644
|
||||
--- a/drivers/spi/spi-omap2-mcspi.c
|
||||
+++ b/drivers/spi/spi-omap2-mcspi.c
|
||||
@@ -1209,6 +1209,8 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
|
||||
err4:
|
||||
spi_master_put(master);
|
||||
err3:
|
||||
+ pm_runtime_put_sync(&pdev->dev);
|
||||
+ pm_runtime_disable(&pdev->dev);
|
||||
kfree(mcspi->dma_channels);
|
||||
err2:
|
||||
release_mem_region(r->start, resource_size(r));
|
||||
@@ -1230,6 +1232,7 @@ static int __exit omap2_mcspi_remove(struct platform_device *pdev)
|
||||
dma_channels = mcspi->dma_channels;
|
||||
|
||||
omap2_mcspi_disable_clocks(mcspi);
|
||||
+ pm_runtime_disable(&pdev->dev);
|
||||
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
release_mem_region(r->start, resource_size(r));
|
||||
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
From 608b49748a1ebe4b71de460a343df7fe4ae74c2b Mon Sep 17 00:00:00 2001
|
||||
From: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
Date: Mon, 24 Oct 2011 16:22:50 +0530
|
||||
Subject: [PATCH 5/5] arm:omap:mcspi: follow proper probe() & remove() steps
|
||||
|
||||
Currently McSPI driver doesnt follow correct failure fallback steps
|
||||
incase of probe & in case of remove() procedure.
|
||||
|
||||
This patch corrects label names to give meaningful labels & also
|
||||
corrects fallback & removal procedure
|
||||
|
||||
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
|
||||
---
|
||||
drivers/spi/spi-omap2-mcspi.c | 37 +++++++++++++++++++++++--------------
|
||||
1 files changed, 23 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
|
||||
index 7a8e19e..e433029 100644
|
||||
--- a/drivers/spi/spi-omap2-mcspi.c
|
||||
+++ b/drivers/spi/spi-omap2-mcspi.c
|
||||
@@ -1134,7 +1134,7 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
|
||||
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
if (r == NULL) {
|
||||
status = -ENODEV;
|
||||
- goto err1;
|
||||
+ goto free_master;
|
||||
}
|
||||
|
||||
r->start += pdata->regs_offset;
|
||||
@@ -1142,7 +1142,7 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
|
||||
if (!request_mem_region(r->start, resource_size(r),
|
||||
dev_name(&pdev->dev))) {
|
||||
status = -EBUSY;
|
||||
- goto err1;
|
||||
+ goto free_master;
|
||||
}
|
||||
|
||||
mcspi->phys = r->start;
|
||||
@@ -1150,7 +1150,7 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
|
||||
if (!mcspi->base) {
|
||||
dev_dbg(&pdev->dev, "can't ioremap MCSPI\n");
|
||||
status = -ENOMEM;
|
||||
- goto err2;
|
||||
+ goto release_region;
|
||||
}
|
||||
|
||||
mcspi->dev = &pdev->dev;
|
||||
@@ -1165,7 +1165,7 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
|
||||
GFP_KERNEL);
|
||||
|
||||
if (mcspi->dma_channels == NULL)
|
||||
- goto err2;
|
||||
+ goto unmap_io;
|
||||
|
||||
for (i = 0; i < master->num_chipselect; i++) {
|
||||
char dma_ch_name[14];
|
||||
@@ -1195,27 +1195,34 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev)
|
||||
mcspi->dma_channels[i].dma_tx_sync_dev = dma_res->start;
|
||||
}
|
||||
|
||||
+ if (status < 0)
|
||||
+ goto dma_chnl_free;
|
||||
+
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
||||
if (status || omap2_mcspi_master_setup(mcspi) < 0)
|
||||
- goto err3;
|
||||
+ goto diable_pm;
|
||||
|
||||
status = spi_register_master(master);
|
||||
if (status < 0)
|
||||
- goto err4;
|
||||
+ goto err_spi_register;
|
||||
|
||||
return status;
|
||||
|
||||
-err4:
|
||||
+err_spi_register:
|
||||
spi_master_put(master);
|
||||
-err3:
|
||||
+diable_pm:
|
||||
pm_runtime_put_sync(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
+dma_chnl_free:
|
||||
kfree(mcspi->dma_channels);
|
||||
-err2:
|
||||
- release_mem_region(r->start, resource_size(r));
|
||||
+unmap_io:
|
||||
iounmap(mcspi->base);
|
||||
-err1:
|
||||
+release_region:
|
||||
+ release_mem_region(r->start, resource_size(r));
|
||||
+free_master:
|
||||
+ kfree(master);
|
||||
+ platform_set_drvdata(pdev, NULL);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -1233,13 +1240,15 @@ static int __exit omap2_mcspi_remove(struct platform_device *pdev)
|
||||
|
||||
omap2_mcspi_disable_clocks(mcspi);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
+ kfree(dma_channels);
|
||||
+ base = mcspi->base;
|
||||
+ iounmap(base);
|
||||
+
|
||||
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
release_mem_region(r->start, resource_size(r));
|
||||
|
||||
- base = mcspi->base;
|
||||
spi_unregister_master(master);
|
||||
- iounmap(base);
|
||||
- kfree(dma_channels);
|
||||
+ platform_set_drvdata(pdev, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -2319,7 +2319,10 @@ CONFIG_FONT_8x16=y
|
||||
# CONFIG_FONT_SUN8x16 is not set
|
||||
# CONFIG_FONT_SUN12x22 is not set
|
||||
# CONFIG_FONT_10x18 is not set
|
||||
# CONFIG_LOGO is not set
|
||||
CONFIG_LOGO=y
|
||||
# CONFIG_LOGO_LINUX_MONO is not set
|
||||
# CONFIG_LOGO_LINUX_VGA16 is not set
|
||||
CONFIG_LOGO_LINUX_CLUT224=y
|
||||
CONFIG_SOUND=y
|
||||
# CONFIG_SOUND_OSS_CORE is not set
|
||||
CONFIG_SND=y
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@ MULTI_CONFIG_BASE_SUFFIX = ""
|
||||
|
||||
BRANCH = "v3.1-staging"
|
||||
SRCREV = "1d84d8853fa30cf3db2571a5aec572accca4e29d"
|
||||
MACHINE_KERNEL_PR_append = "p+gitr${SRCREV}"
|
||||
MACHINE_KERNEL_PR_append = "q+gitr${SRCREV}"
|
||||
|
||||
COMPATIBLE_MACHINE = "(ti33x)"
|
||||
|
||||
@@ -30,6 +30,11 @@ PATCHES_OVER_PSP = " \
|
||||
file://0002-ARM-OMAP2-beaglebone-add-LED-support.patch \
|
||||
file://0003-ARM-OMAP2-beaglebone-add-DVI-support-needs-cleanup.patch \
|
||||
file://0004-da8xx-fb-add-DVI-support-for-beaglebone.patch \
|
||||
file://0001-usb-musb_core-kill-all-global-and-static-variables.patch \
|
||||
file://0002-arm-omap-am335x-correct-32KHz-clk-rate.patch \
|
||||
file://0003-arm-omap-mcspi-correct-memory-range-when-requesting-.patch \
|
||||
file://0004-arm-omap-mcspi-follow-proper-pm_runtime-enable-disab.patch \
|
||||
file://0005-arm-omap-mcspi-follow-proper-probe-remove-steps.patch \
|
||||
"
|
||||
|
||||
SRC_URI += "${@base_contains('DISTRO_FEATURES', 'tipspkernel', "", "${PATCHES_OVER_PSP}", d)}"
|
||||
|
||||
Reference in New Issue
Block a user