* [PATCH 1/3] ARM: OMAP: Remove unnecessary mach and plat includes
From: Tony Lindgren @ 2012-11-01 22:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101224703.2103.95474.stgit@muffinssi.local>
Now mach/hardware.h is empty for omap2+ and can be
removed except for plat-omap/dmtimer.c for omap1.
Also the include of mach/irqs.h can now be removed
for shared plat-omap/i2c.c as it's no longer needed.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
arch/arm/mach-omap2/board-2430sdp.c | 1 -
arch/arm/mach-omap2/board-cm-t35.c | 2 --
arch/arm/mach-omap2/hsmmc.c | 1 -
arch/arm/plat-omap/debug-devices.c | 1 -
arch/arm/plat-omap/dmtimer.c | 4 +---
arch/arm/plat-omap/fb.c | 1 -
arch/arm/plat-omap/i2c.c | 2 --
7 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c
index 3fc6d83..d1c0162 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -28,7 +28,6 @@
#include <linux/io.h>
#include <linux/gpio.h>
-#include <mach/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index cf9449b..a8cad22 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -44,8 +44,6 @@
#include <video/omap-panel-tfp410.h>
#include <linux/platform_data/spi-omap2-mcspi.h>
-#include <mach/hardware.h>
-
#include "common.h"
#include "mux.h"
#include "sdram-micron-mt46h32m32lf-6.h"
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c
index e3406dc..4a96433 100644
--- a/arch/arm/mach-omap2/hsmmc.c
+++ b/arch/arm/mach-omap2/hsmmc.c
@@ -14,7 +14,6 @@
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/gpio.h>
-#include <mach/hardware.h>
#include <linux/platform_data/gpio-omap.h>
#include "soc.h"
diff --git a/arch/arm/plat-omap/debug-devices.c b/arch/arm/plat-omap/debug-devices.c
index b49be51..a609e21 100644
--- a/arch/arm/plat-omap/debug-devices.c
+++ b/arch/arm/plat-omap/debug-devices.c
@@ -15,7 +15,6 @@
#include <linux/io.h>
#include <linux/smc91x.h>
-#include <mach/hardware.h>
#include <plat/debug-devices.h>
/* Many OMAP development platforms reuse the same "debug board"; these
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index 9a0bbc4..82231a7 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -43,8 +43,6 @@
#include <plat/dmtimer.h>
-#include <mach/hardware.h>
-
static u32 omap_reserved_systimers;
static LIST_HEAD(omap_timer_list);
static DEFINE_SPINLOCK(dm_timer_lock);
@@ -270,7 +268,7 @@ int omap_dm_timer_get_irq(struct omap_dm_timer *timer)
EXPORT_SYMBOL_GPL(omap_dm_timer_get_irq);
#if defined(CONFIG_ARCH_OMAP1)
-
+#include <mach/hardware.h>
/**
* omap_dm_timer_modify_idlect_mask - Check if any running timers use ARMXOR
* @inputmask: current value of idlect mask
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c
index f868cae..3a77b30 100644
--- a/arch/arm/plat-omap/fb.c
+++ b/arch/arm/plat-omap/fb.c
@@ -30,7 +30,6 @@
#include <linux/io.h>
#include <linux/omapfb.h>
-#include <mach/hardware.h>
#include <asm/mach/map.h>
#include <plat/cpu.h>
diff --git a/arch/arm/plat-omap/i2c.c b/arch/arm/plat-omap/i2c.c
index 4645dd4..f9df624 100644
--- a/arch/arm/plat-omap/i2c.c
+++ b/arch/arm/plat-omap/i2c.c
@@ -33,8 +33,6 @@
#include <plat/i2c.h>
-#include <mach/irqs.h>
-
#define OMAP_I2C_MAX_CONTROLLERS 4
static struct omap_i2c_bus_platform_data i2c_pdata[OMAP_I2C_MAX_CONTROLLERS];
^ permalink raw reply related
* [PATCH 2/3] ARM: OMAP: Remove NEED_MACH_GPIO_H
From: Tony Lindgren @ 2012-11-01 22:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101224703.2103.95474.stgit@muffinssi.local>
Omap no longer needs this option, mach/gpio.h is
empty.
Also remove mach/irqs.h from gpio-omap.h and
include it directly from the related omap1
gpio init files.
Otherwise omap2+ build fails for MULTI_PLATFORM.
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
Cc: Liam Girdwood <lrg@ti.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: alsa-devel at alsa-project.org
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
arch/arm/Kconfig | 1 -
arch/arm/mach-omap1/gpio15xx.c | 2 ++
arch/arm/mach-omap1/gpio16xx.c | 2 ++
arch/arm/mach-omap1/gpio7xx.c | 2 ++
arch/arm/mach-omap1/include/mach/gpio.h | 3 ---
arch/arm/mach-omap2/include/mach/gpio.h | 3 ---
include/linux/platform_data/gpio-omap.h | 1 -
sound/soc/omap/am3517evm.c | 2 --
sound/soc/omap/n810.c | 1 -
sound/soc/omap/osk5912.c | 1 -
sound/soc/omap/sdp3430.c | 2 --
sound/soc/omap/zoom2.c | 3 ---
12 files changed, 6 insertions(+), 17 deletions(-)
delete mode 100644 arch/arm/mach-omap1/include/mach/gpio.h
delete mode 100644 arch/arm/mach-omap2/include/mach/gpio.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 73067ef..6207cf7 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -937,7 +937,6 @@ config ARCH_OMAP
select CLKSRC_MMIO
select GENERIC_CLOCKEVENTS
select HAVE_CLK
- select NEED_MACH_GPIO_H
help
Support for TI's OMAP platform (OMAP1/2/3/4).
diff --git a/arch/arm/mach-omap1/gpio15xx.c b/arch/arm/mach-omap1/gpio15xx.c
index 98e6f39..02b3eb2 100644
--- a/arch/arm/mach-omap1/gpio15xx.c
+++ b/arch/arm/mach-omap1/gpio15xx.c
@@ -19,6 +19,8 @@
#include <linux/gpio.h>
#include <linux/platform_data/gpio-omap.h>
+#include <mach/irqs.h>
+
#define OMAP1_MPUIO_VBASE OMAP1_MPUIO_BASE
#define OMAP1510_GPIO_BASE 0xFFFCE000
diff --git a/arch/arm/mach-omap1/gpio16xx.c b/arch/arm/mach-omap1/gpio16xx.c
index 33f4192..b9952a2 100644
--- a/arch/arm/mach-omap1/gpio16xx.c
+++ b/arch/arm/mach-omap1/gpio16xx.c
@@ -19,6 +19,8 @@
#include <linux/gpio.h>
#include <linux/platform_data/gpio-omap.h>
+#include <mach/irqs.h>
+
#define OMAP1610_GPIO1_BASE 0xfffbe400
#define OMAP1610_GPIO2_BASE 0xfffbec00
#define OMAP1610_GPIO3_BASE 0xfffbb400
diff --git a/arch/arm/mach-omap1/gpio7xx.c b/arch/arm/mach-omap1/gpio7xx.c
index 958ce9a..f5819b2 100644
--- a/arch/arm/mach-omap1/gpio7xx.c
+++ b/arch/arm/mach-omap1/gpio7xx.c
@@ -19,6 +19,8 @@
#include <linux/gpio.h>
#include <linux/platform_data/gpio-omap.h>
+#include <mach/irqs.h>
+
#define OMAP7XX_GPIO1_BASE 0xfffbc000
#define OMAP7XX_GPIO2_BASE 0xfffbc800
#define OMAP7XX_GPIO3_BASE 0xfffbd000
diff --git a/arch/arm/mach-omap1/include/mach/gpio.h b/arch/arm/mach-omap1/include/mach/gpio.h
deleted file mode 100644
index ebf86c0..0000000
--- a/arch/arm/mach-omap1/include/mach/gpio.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/*
- * arch/arm/mach-omap1/include/mach/gpio.h
- */
diff --git a/arch/arm/mach-omap2/include/mach/gpio.h b/arch/arm/mach-omap2/include/mach/gpio.h
deleted file mode 100644
index 5621cc5..0000000
--- a/arch/arm/mach-omap2/include/mach/gpio.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/*
- * arch/arm/mach-omap2/include/mach/gpio.h
- */
diff --git a/include/linux/platform_data/gpio-omap.h b/include/linux/platform_data/gpio-omap.h
index e8741c2..5d50b25 100644
--- a/include/linux/platform_data/gpio-omap.h
+++ b/include/linux/platform_data/gpio-omap.h
@@ -26,7 +26,6 @@
#include <linux/io.h>
#include <linux/platform_device.h>
-#include <mach/irqs.h>
#define OMAP1_MPUIO_BASE 0xfffb5000
diff --git a/sound/soc/omap/am3517evm.c b/sound/soc/omap/am3517evm.c
index fad3506..c1900b2 100644
--- a/sound/soc/omap/am3517evm.c
+++ b/sound/soc/omap/am3517evm.c
@@ -25,8 +25,6 @@
#include <sound/soc.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
-#include <mach/gpio.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
#include "omap-mcbsp.h"
diff --git a/sound/soc/omap/n810.c b/sound/soc/omap/n810.c
index 521bfc3..230b8c1 100644
--- a/sound/soc/omap/n810.c
+++ b/sound/soc/omap/n810.c
@@ -29,7 +29,6 @@
#include <sound/soc.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <linux/gpio.h>
#include <linux/module.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
diff --git a/sound/soc/omap/osk5912.c b/sound/soc/omap/osk5912.c
index 3960e8d..06ef8d6 100644
--- a/sound/soc/omap/osk5912.c
+++ b/sound/soc/omap/osk5912.c
@@ -28,7 +28,6 @@
#include <sound/soc.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <linux/gpio.h>
#include <linux/module.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
diff --git a/sound/soc/omap/sdp3430.c b/sound/soc/omap/sdp3430.c
index 597cae7..b462a2c 100644
--- a/sound/soc/omap/sdp3430.c
+++ b/sound/soc/omap/sdp3430.c
@@ -31,8 +31,6 @@
#include <sound/jack.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
-#include <mach/gpio.h>
#include <linux/platform_data/gpio-omap.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
diff --git a/sound/soc/omap/zoom2.c b/sound/soc/omap/zoom2.c
index 677b567..27c501c 100644
--- a/sound/soc/omap/zoom2.c
+++ b/sound/soc/omap/zoom2.c
@@ -26,9 +26,6 @@
#include <sound/soc.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
-#include <mach/gpio.h>
-#include <mach/board-zoom.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
/* Register descriptions for twl4030 codec part */
^ permalink raw reply related
* [PATCH 3/3] ARM: OMAP: Remove plat-omap/common.c
From: Tony Lindgren @ 2012-11-01 22:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101224703.2103.95474.stgit@muffinssi.local>
This file has only omap_init_consistent_dma_size()
left that can be moved to plat-omap/dma.c.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
arch/arm/plat-omap/Makefile | 2 +-
arch/arm/plat-omap/common.c | 26 --------------------------
arch/arm/plat-omap/dma.c | 8 ++++++++
3 files changed, 9 insertions(+), 27 deletions(-)
delete mode 100644 arch/arm/plat-omap/common.c
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
index 50da9bf..8d88584 100644
--- a/arch/arm/plat-omap/Makefile
+++ b/arch/arm/plat-omap/Makefile
@@ -3,7 +3,7 @@
#
# Common support
-obj-y := common.o sram.o dma.o fb.o counter_32k.o
+obj-y := sram.o dma.o fb.o counter_32k.o
obj-m :=
obj-n :=
obj- :=
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
deleted file mode 100644
index bf6cd80..0000000
--- a/arch/arm/plat-omap/common.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * linux/arch/arm/plat-omap/common.c
- *
- * Code common to all OMAP machines.
- * The file is created by Tony Lindgren <tony@atomide.com>
- *
- * Copyright (C) 2009 Texas Instruments
- * Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/io.h>
-#include <linux/dma-mapping.h>
-
-#include <plat-omap/dma-omap.h>
-
-void __init omap_init_consistent_dma_size(void)
-{
-#ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
- init_consistent_dma_size(CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE << 20);
-#endif
-}
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index c288b76..00a3a53 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -2146,6 +2146,14 @@ static struct platform_driver omap_system_dma_driver = {
},
};
+/* This must be called from init_early() */
+void __init omap_init_consistent_dma_size(void)
+{
+#ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
+ init_consistent_dma_size(CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE << 20);
+#endif
+}
+
static int __init omap_system_dma_init(void)
{
return platform_driver_register(&omap_system_dma_driver);
^ permalink raw reply related
* [PATCH 3/3] ARM: OMAP: Remove plat-omap/common.c
From: Tony Lindgren @ 2012-11-01 23:14 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101224828.2103.82950.stgit@muffinssi.local>
* Tony Lindgren <tony@atomide.com> [121101 15:50]:
> This file has only omap_init_consistent_dma_size()
> left that can be moved to plat-omap/dma.c.
And this one needs the following compile fix for omap1
at least for Nokia 770. I'll fold it in.
Regards,
Tony
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -35,6 +35,7 @@
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/delay.h>
+#include <linux/dma-mapping.h>
#include <plat-omap/dma-omap.h>
^ permalink raw reply
* [PATCH] hwmon: Only include of_match_table with CONFIG_OF_GPIO
From: Jamie Lentin @ 2012-11-01 23:55 UTC (permalink / raw)
To: linux-arm-kernel
The following fixes build errors on sparc. Without any DT support,
of_match_ptr is NULL and the below is a no-op. However, if just
CONFIG_OF is defined then so is of_match_ptr.
All useful parts of the gpio-fan DT support rely on CONFIG_OF_GPIO
anyway, so of_match_table should too.
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
---
drivers/hwmon/gpio-fan.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c
index 36509ae..1381a2e 100644
--- a/drivers/hwmon/gpio-fan.c
+++ b/drivers/hwmon/gpio-fan.c
@@ -630,7 +630,9 @@ static struct platform_driver gpio_fan_driver = {
.driver = {
.name = "gpio-fan",
.pm = GPIO_FAN_PM,
+#ifdef CONFIG_OF_GPIO
.of_match_table = of_match_ptr(of_gpio_fan_match),
+#endif
},
};
--
1.7.10.4
^ permalink raw reply related
* [PATCH] hwmon: Only include of_match_table with CONFIG_OF_GPIO
From: Guenter Roeck @ 2012-11-02 0:31 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351814143-13714-1-git-send-email-jm@lentin.co.uk>
On Thu, Nov 01, 2012 at 11:55:43PM +0000, Jamie Lentin wrote:
> The following fixes build errors on sparc. Without any DT support,
> of_match_ptr is NULL and the below is a no-op. However, if just
> CONFIG_OF is defined then so is of_match_ptr.
>
> All useful parts of the gpio-fan DT support rely on CONFIG_OF_GPIO
> anyway, so of_match_table should too.
>
> Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
> ---
> drivers/hwmon/gpio-fan.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c
> index 36509ae..1381a2e 100644
> --- a/drivers/hwmon/gpio-fan.c
> +++ b/drivers/hwmon/gpio-fan.c
> @@ -630,7 +630,9 @@ static struct platform_driver gpio_fan_driver = {
> .driver = {
> .name = "gpio-fan",
> .pm = GPIO_FAN_PM,
> +#ifdef CONFIG_OF_GPIO
> .of_match_table = of_match_ptr(of_gpio_fan_match),
> +#endif
> },
Applied.
Thanks,
Guenter
^ permalink raw reply
* [PATCH 3/3] ARM: dts: cfa10049: Add the DH2228FV DAC to the DTS
From: Shawn Guo @ 2012-11-02 1:56 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351679410-11026-4-git-send-email-maxime.ripard@free-electrons.com>
On Wed, Oct 31, 2012 at 11:30:10AM +0100, Maxime Ripard wrote:
> There is no driver for it yet, so it will use spidev.
>
> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Applied, thanks.
^ permalink raw reply
* [PATCH] ARM: dts: mxs: Add 16 bits LCD screen muxing options for I.MX28
From: Shawn Guo @ 2012-11-02 2:05 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351788659-67805-1-git-send-email-gwenhael.goavec-merou@armadeus.com>
On Thu, Nov 01, 2012 at 05:50:59PM +0100, Gwenhael Goavec-Merou wrote:
>
> Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
> Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@armadeus.com>
Applied, thanks.
^ permalink raw reply
* [Patch v2 3/4] ASoC: atmel-ssc-dai: register platform from DAIs
From: Bo Shen @ 2012-11-02 2:34 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101144315.GM4413@opensource.wolfsonmicro.com>
Hi Mark Brown,
On 11/1/2012 22:43, Mark Brown wrote:
> On Wed, Oct 31, 2012 at 03:26:59PM +0800, Bo Shen wrote:
>
>> +Required properties:
>> + - compatible: "atmel,atmel-ssc-dai"
>> + - atmel,dai-master: this dai base on which ssc controller
>
>> +Example:
>> +dai: dai {
>> + compatible = "atmel,atmel-ssc-dai";
>> + atmel,dai-master = <&ssc0>;
>> +};
>
> This seems to be a purely virtual device which remaps the SSC onto the
> Linux audio subsystem? If that is the case then it shouldn't appear in
> the device tree,
Yes. This is a purely virtual device. I add this as to the following reason.
In our case, the ssc can connect to audio codec, DAC and other devices.
In order to avoid duplicate the code, so keep ssc as a library, register
it directly in Linux and use remap method to let it work onto other
different subsystem.
So, for ssc connect to audio codec, use dai to remap the SSC onto the
Linux audio subsystem. In this way, just let the dai know which ssc
channel it based on. The remap is just a simple way. Please take
following code as a reference.
---<8---
if (pdev->dev.of_node) {
struct device_node *np = pdev->dev.of_node;
struct device_node *dai_master_np;
dai_master_np = of_parse_phandle(np,
"atmel,dai-master", 0);
if (!dai_master_np) {
dev_err(&pdev->dev, "No SSC for atmel dai");
return -EINVAL;
}
id = of_alias_get_id(dai_master_np, "ssc");
} else {
id = to_platform_device(pdev->dev.parent)->id;
}
ssc = ssc_request(id);
if (IS_ERR(ssc)) {
dev_err(&pdev->dev, "Failed to request SSC %d\n", id);
return PTR_ERR(ssc);
}
ssc_info.ssc = ssc;
pdev->dev.parent = &(ssc->pdev->dev);
--->8---
If ssc connect to other devices, also need to remap to other subsystem.
the machine driver should just directly reference the
> SSC and instantiate any devices required in Linux directly.
I am not fully understand this. So, which do you mean as the following
two method or any other else?
Our old method:
using audio machine driver (e.g: sam9g20_wm8731.c) call
atmel_ssc_set_audio function to allocate the platform device for
atmel-ssc-dai and atmel-pcm-audio and then add device.
Code as following:
---<8---
/* Allocate a dummy device for DMA if we don't have one already */
if (!dma_pdev) {
dma_pdev = platform_device_alloc("atmel-pcm-audio", -1);
if (!dma_pdev)
return -ENOMEM;
ret = platform_device_add(dma_pdev);
if (ret < 0) {
platform_device_put(dma_pdev);
dma_pdev = NULL;
return ret;
}
}
ssc_pdev = platform_device_alloc("atmel-ssc-dai", ssc_id);
if (!ssc_pdev)
return -ENOMEM;
/* If we can grab the SSC briefly to parent the DAI device off
it */
ssc = ssc_request(ssc_id);
if (IS_ERR(ssc))
pr_warn("Unable to parent ASoC SSC DAI on SSC: %ld\n",
PTR_ERR(ssc));
else {
ssc_pdev->dev.parent = &(ssc->pdev->dev);
ssc_free(ssc);
}
ret = platform_device_add(ssc_pdev);
--->8---
Other SoC do like this:
register i2s device, and then register dai, finally register
platform. So, only one device.
Best regards,
Bo Shen
^ permalink raw reply
* [PATCH 0/4] Support the MX6 FEC as a PTP hardware clock
From: Frank Li @ 2012-11-02 2:36 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101.123027.1332984905040252720.davem@davemloft.net>
>
> All applied to net-next.
>
> Please make sure your changes are in sync with Ben's PTP/PPS
> Kconfig changes of today, and send me any changes if necessary.
>
Thank you very much.
I checked Ben's patch, which not affect FEC.
best regards
Frank Li
^ permalink raw reply
* [PATCH 8/8] clocksource: xilinx_ttc: add OF_CLK support
From: Josh Cartwright @ 2012-11-02 2:56 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <0ea1ba71afb3f4551ac27a6dfa41bd97b63cef48.1351721190.git.josh.cartwright@ni.com>
On Wed, Oct 31, 2012 at 01:56:14PM -0600, Josh Cartwright wrote:
> Add support for retrieving TTC configuration from device tree. This
> includes the ability to pull information about the driving clocks from
> the of_clk bindings.
>
> Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
> ---
> diff --git a/drivers/clocksource/xilinx_ttc.c b/drivers/clocksource/xilinx_ttc.c
> index ff38b3e..a4718f7 100644
> --- a/drivers/clocksource/xilinx_ttc.c
> +++ b/drivers/clocksource/xilinx_ttc.c
> @@ -209,7 +153,8 @@ static struct clocksource clocksource_xttcpss = {
> static int xttcpss_set_next_event(unsigned long cycles,
> struct clock_event_device *evt)
> {
> - struct xttcpss_timer *timer = &timers[XTTCPSS_CLOCKEVENT];
> + struct xttcpss_timer_clockevent *xttce = to_xttcpss_timer_clkevent(evt);
> + struct xttcpss_timer *timer = &xttce->xttc;
>
> xttcpss_set_interval(timer, cycles);
> return 0;
> @@ -224,12 +169,14 @@ static int xttcpss_set_next_event(unsigned long cycles,
> static void xttcpss_set_mode(enum clock_event_mode mode,
> struct clock_event_device *evt)
> {
> - struct xttcpss_timer *timer = &timers[XTTCPSS_CLOCKEVENT];
> + struct xttcpss_timer_clockevent *xttce = to_xttcpss_timer_clkevent(evt);
> + struct xttcpss_timer *timer = &xttce->xttc;
> u32 ctrl_reg;
>
> switch (mode) {
> case CLOCK_EVT_MODE_PERIODIC:
> - xttcpss_set_interval(timer, TIMER_RATE / HZ);
> + xttcpss_set_interval(timer,
> + clk_get_rate(xttce->clk) / PRESCALE);
I discovered with further testing that the above calculation is broken;
calculated interval also needs to be divided by HZ.
(I'll post a v2; just wanted to get this out there in the slim chance
anyone's testing this ;)
Josh
^ permalink raw reply
* [PATCH] irqchip: irq-bcm2835: Add terminating entry for of_device_id table
From: Stephen Warren @ 2012-11-02 4:02 UTC (permalink / raw)
To: linux-arm-kernel
From: Axel Lin <axel.lin@ingics.com>
The of_device_id table is supposed to be zero-terminated.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
---
This is a fix for v3.7.
drivers/irqchip/irq-bcm2835.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index dc670cc..16c78f1 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -168,7 +168,8 @@ static int __init armctrl_of_init(struct device_node *node,
}
static struct of_device_id irq_of_match[] __initconst = {
- { .compatible = "brcm,bcm2835-armctrl-ic", .data = armctrl_of_init }
+ { .compatible = "brcm,bcm2835-armctrl-ic", .data = armctrl_of_init },
+ { }
};
void __init bcm2835_init_irq(void)
--
1.7.9.5
^ permalink raw reply related
* [PATCH v7 2/5] usb: s3c-hsotg: Adding phy driver support
From: Praveen Paneri @ 2012-11-02 4:26 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121031154407.4eb54dba@amdc308.digital.local>
On Wed, Oct 31, 2012 at 8:14 PM, Lukasz Majewski <l.majewski@samsung.com> wrote:
> Hi Felipe,
>
>> Hi,
>>
>> On Tue, Oct 30, 2012 at 10:27:34AM +0530, Praveen Paneri wrote:
>> > @@ -3501,20 +3511,27 @@ static int __devinit s3c_hsotg_probe(struct
>> > platform_device *pdev) int ret;
>> > int i;
>> >
>> > - plat = pdev->dev.platform_data;
>> > - if (!plat) {
>> > - dev_err(&pdev->dev, "no platform data defined\n");
>> > - return -EINVAL;
>> > - }
>> > -
>> > hsotg = devm_kzalloc(&pdev->dev, sizeof(struct s3c_hsotg),
>> > GFP_KERNEL); if (!hsotg) {
>> > dev_err(dev, "cannot get memory\n");
>> > return -ENOMEM;
>> > }
>> >
>> > + plat = pdev->dev.platform_data;
>> > + if (!plat) {
>> > + /* Fallback for transceiver */
>> > + phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
>> > + if (IS_ERR_OR_NULL(phy)) {
>> > + dev_err(&pdev->dev, "no platform data or
>> > transceiver defined\n");
>> > + return -EPROBE_DEFER;
>> > + } else {
>> > + hsotg->phy = phy;
>> > + }
>> > + } else {
>> > + hsotg->plat = plat;
>> > + }
>>
>> I think this should be the other way around, meaning you try to grab
>> the phy, if you can't, then you fallback to pdata.
Agreed! Will swap it
regards,
Praveen
>>
>
> I agree.
>
> The new approach is to use new PHY driver. And only when failed we
> shall use legacy approach.
>
> --
> Best regards,
>
> Lukasz Majewski
>
> Samsung Poland R&D Center | Linux Platform Group
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* [PATCH V3] mmc: omap_hsmmc: Enable HSPE bit for high speed cards
From: Hebbar, Gururaja @ 2012-11-02 5:32 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121031201626.GA28784@arwen.pp.htv.fi>
On Thu, Nov 01, 2012 at 01:46:26, Balbi, Felipe wrote:
> Hi,
>
> On Thu, Nov 01, 2012 at 01:21:36AM +0530, Venkatraman S wrote:
> > On Wed, Oct 31, 2012 at 5:56 PM, Felipe Balbi <balbi@ti.com> wrote:
> > > Hi,
> > >
> > > On Wed, Oct 31, 2012 at 05:27:36PM +0530, Hebbar, Gururaja wrote:
> > >> HSMMC IP on AM33xx need a special setting to handle High-speed cards.
> > >> Other platforms like TI81xx, OMAP4 may need this as-well. This depends
> > >> on the HSMMC IP timing closure done for the high speed cards.
> > >>
> > >> From AM335x TRM (SPRUH73F - 18.3.12 Output Signals Generation)
> > >>
> > >> The MMC/SD/SDIO output signals can be driven on either falling edge or
> > >> rising edge depending on the SD_HCTL[2] HSPE bit. This feature allows
> > >> to reach better timing performance, and thus to increase data transfer
> > >> frequency.
> > >>
> > >> There are few pre-requisites for enabling the HSPE bit
> > >> - Controller should support High-Speed-Enable Bit and
> > >> - Controller should not be using DDR Mode and
> > >> - Controller should advertise that it supports High Speed in
> > >> capabilities register and
> > >> - MMC/SD clock coming out of controller > 25MHz
> > >>
> > >> Note:
> > >> The implementation reuses the output of calc_divisor() so as to reduce
> > >> code addition.
> > >>
> > >> Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
> > >
> > > this looks good to my eyes, hopefully I haven't missed anything:
> > >
> > > Reviewed-by: Felipe Balbi <balbi@ti.com>
> > >
> >
> > Except for the excessively verbose comments which are just duplicating the code,
> > <Quote>
> > >> + * Enable High-Speed Support
> > >> + * Pre-Requisites
> > >> + * - Controller should support High-Speed-Enable Bit
> > >> + * - Controller should not be using DDR Mode
> > >> + * - Controller should advertise that it supports High Speed
> > >> + * in capabilities register
> > >> + * - MMC/SD clock coming out of controller > 25MHz
> > >> + */
> > </Quote>
> >
> > I'm ok with this patch as well. I'm putting a few patches under test
> > including this one,
> > and will send it to Chris as part of that series.
> > I'll strip out the above mentioned comments, unless there are any
> > objections.
>
> please don't. Detailing the pre-requisites for getting HSP mode working
> isn't bad at all. Should someone decide to change the behavior and ends
> up breaking it, the comment will help putting things back together.
>
> my 2 cents, you've got the final decision though.
Same here. Description is required in commit message since it will help
in during git bisect.
>
> --
> balbi
>
Regards,
Gururaja
^ permalink raw reply
* [PATCH V2] ARM: kirkwood: Increase NAND chip-delay for DNS-32[05]
From: Andrew Lunn @ 2012-11-02 5:45 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351807021-17478-1-git-send-email-jm@lentin.co.uk>
On Thu, Nov 01, 2012 at 09:57:01PM +0000, Jamie Lentin wrote:
> The default chip-delay of 25us is a bit too tight for some DNS-320's,
> and D-Link seem to specify 30us in their kernels for both devices.
> Increase to 35us to make sure the NAND is stable.
>
> Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
> ---
> arch/arm/boot/dts/kirkwood-dnskw.dtsi | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/boot/dts/kirkwood-dnskw.dtsi b/arch/arm/boot/dts/kirkwood-dnskw.dtsi
> index e0e4397..0360361 100644
> --- a/arch/arm/boot/dts/kirkwood-dnskw.dtsi
> +++ b/arch/arm/boot/dts/kirkwood-dnskw.dtsi
> @@ -48,6 +48,7 @@
>
> nand at 3000000 {
> status = "okay";
> + chip-delay = <35>;
>
> partition at 0 {
> label = "u-boot";
> --
> 1.7.10.4
>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply
* [PATCH 2/5] usb: s3c-hsotg: Adding phy driver support
From: Praveen Paneri @ 2012-11-02 5:49 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAD6zSYOvGSTF18Zr1zPFduz3povs7qiiU8p=iUtAAyDX_LUy+A@mail.gmail.com>
Adding the phy driver support to hsotg driver. Keeping the platform data
for continuing the smooth operation for boards which still uses it.
Signed-off-by: Praveen Paneri <p.paneri@samsung.com>
---
drivers/usb/gadget/s3c-hsotg.c | 37 +++++++++++++++++++++++++++----------
1 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index 6f696ee..bc30a2d 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -32,6 +32,7 @@
#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
+#include <linux/usb/phy.h>
#include <linux/platform_data/s3c-hsotg.h>
#include <mach/map.h>
@@ -133,7 +134,9 @@ struct s3c_hsotg_ep {
* struct s3c_hsotg - driver state.
* @dev: The parent device supplied to the probe function
* @driver: USB gadget driver
- * @plat: The platform specific configuration data.
+ * @phy: The otg phy transceiver structure for phy control.
+ * @plat: The platform specific configuration data. This can be removed once
+ * all SoCs support usb transceiver.
* @regs: The memory area mapped for accessing registers.
* @irq: The IRQ number we are using
* @supplies: Definition of USB power supplies
@@ -153,6 +156,7 @@ struct s3c_hsotg_ep {
struct s3c_hsotg {
struct device *dev;
struct usb_gadget_driver *driver;
+ struct usb_phy *phy;
struct s3c_hsotg_plat *plat;
spinlock_t lock;
@@ -2854,7 +2858,10 @@ static void s3c_hsotg_phy_enable(struct s3c_hsotg *hsotg)
struct platform_device *pdev = to_platform_device(hsotg->dev);
dev_dbg(hsotg->dev, "pdev 0x%p\n", pdev);
- if (hsotg->plat->phy_init)
+
+ if (hsotg->phy)
+ usb_phy_init(hsotg->phy);
+ else if (hsotg->plat->phy_init)
hsotg->plat->phy_init(pdev, hsotg->plat->phy_type);
}
@@ -2869,7 +2876,9 @@ static void s3c_hsotg_phy_disable(struct s3c_hsotg *hsotg)
{
struct platform_device *pdev = to_platform_device(hsotg->dev);
- if (hsotg->plat->phy_exit)
+ if (hsotg->phy)
+ usb_phy_shutdown(hsotg->phy);
+ else if (hsotg->plat->phy_exit)
hsotg->plat->phy_exit(pdev, hsotg->plat->phy_type);
}
@@ -3493,6 +3502,7 @@ static void s3c_hsotg_release(struct device *dev)
static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
{
struct s3c_hsotg_plat *plat = pdev->dev.platform_data;
+ struct usb_phy *phy;
struct device *dev = &pdev->dev;
struct s3c_hsotg_ep *eps;
struct s3c_hsotg *hsotg;
@@ -3501,20 +3511,27 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev)
int ret;
int i;
- plat = pdev->dev.platform_data;
- if (!plat) {
- dev_err(&pdev->dev, "no platform data defined\n");
- return -EINVAL;
- }
-
hsotg = devm_kzalloc(&pdev->dev, sizeof(struct s3c_hsotg), GFP_KERNEL);
if (!hsotg) {
dev_err(dev, "cannot get memory\n");
return -ENOMEM;
}
+ phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
+ if (IS_ERR_OR_NULL(phy)) {
+ /* Fallback for pdata */
+ plat = pdev->dev.platform_data;
+ if (!plat) {
+ dev_err(&pdev->dev, "no platform data or transceiver defined\n");
+ return -EPROBE_DEFER;
+ } else {
+ hsotg->plat = plat;
+ }
+ } else {
+ hsotg->phy = phy;
+ }
+
hsotg->dev = dev;
- hsotg->plat = plat;
hsotg->clk = devm_clk_get(&pdev->dev, "otg");
if (IS_ERR(hsotg->clk)) {
--
1.7.1
^ permalink raw reply related
* [PATCH 3/3] ARM: OMAP: Remove plat-omap/common.c
From: Santosh Shilimkar @ 2012-11-02 6:37 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101224828.2103.82950.stgit@muffinssi.local>
Tony,
On Friday 02 November 2012 04:18 AM, Tony Lindgren wrote:
> This file has only omap_init_consistent_dma_size()
> left that can be moved to plat-omap/dma.c.
>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
> arch/arm/plat-omap/Makefile | 2 +-
> arch/arm/plat-omap/common.c | 26 --------------------------
> arch/arm/plat-omap/dma.c | 8 ++++++++
> 3 files changed, 9 insertions(+), 27 deletions(-)
> delete mode 100644 arch/arm/plat-omap/common.c
>
[..]
> diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
> index c288b76..00a3a53 100644
> --- a/arch/arm/plat-omap/dma.c
> +++ b/arch/arm/plat-omap/dma.c
> @@ -2146,6 +2146,14 @@ static struct platform_driver omap_system_dma_driver = {
> },
> };
>
> +/* This must be called from init_early() */
> +void __init omap_init_consistent_dma_size(void)
> +{
> +#ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
> + init_consistent_dma_size(CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE << 20);
> +#endif
> +}
> +
Lets not move this in DMA code since the above is really related
to frame buffer. It reserves more DMA area for dma_alloc_coherent()
etc than default 2 MB. Infact, we should no longer need this with
CMA and memblock in place.
Tomi,
Can we not get rid of the above memory reservation ?
Regards
santosh
^ permalink raw reply
* [PATCH 3/3] ARM: OMAP: Remove plat-omap/common.c
From: Santosh Shilimkar @ 2012-11-02 6:38 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20121101224828.2103.82950.stgit@muffinssi.local>
Tony,
On Friday 02 November 2012 04:18 AM, Tony Lindgren wrote:
> This file has only omap_init_consistent_dma_size()
> left that can be moved to plat-omap/dma.c.
>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
> arch/arm/plat-omap/Makefile | 2 +-
> arch/arm/plat-omap/common.c | 26 --------------------------
> arch/arm/plat-omap/dma.c | 8 ++++++++
> 3 files changed, 9 insertions(+), 27 deletions(-)
> delete mode 100644 arch/arm/plat-omap/common.c
>
[..]
> diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
> index c288b76..00a3a53 100644
> --- a/arch/arm/plat-omap/dma.c
> +++ b/arch/arm/plat-omap/dma.c
> @@ -2146,6 +2146,14 @@ static struct platform_driver omap_system_dma_driver = {
> },
> };
>
> +/* This must be called from init_early() */
> +void __init omap_init_consistent_dma_size(void)
> +{
> +#ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE
> + init_consistent_dma_size(CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE << 20);
> +#endif
> +}
> +
Lets not move this in DMA code since the above is really related
to frame buffer. It reserves more DMA area for dma_alloc_coherent()
etc than default 2 MB. Infact, we should no longer need this with
CMA and memblock in place.
Tomi,
Can we not get rid of the above memory reservation ?
Regards
santosh
^ permalink raw reply
* [PATCH v2 1/2] ARM: OMAP: hwmod: Add possibility to count hwmod resources based on type
From: Péter Ujfalusi @ 2012-11-02 7:22 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <509106FD.2040804@ti.com>
Hi Benoit,
On 10/31/2012 12:09 PM, Cousson, Benoit wrote:
> Hi Peter,
>
> That's great you've have done that fix.
>
> On 10/30/2012 12:24 PM, Peter Ujfalusi wrote:
>> Add flags parameter for omap_hwmod_count_resources() so users can tell which
>> type of resources they are interested when counting them in hwmod database.
>
> Mmm, does it worth doing that for every resources considering that this is a
> temporary situation and than only the DMA resources are an issue so far?
I think it is better to have nice API - even for a short term - than introduce
a new wrapper just to count the DMA resources.
Yes we only use this to either count all resources or to count the DMA
resources only, but the other options does not look better either:
1. omap_hwmod_count_dma_resources(struct omap_hwmod *oh)
2. omap_hwmod_count_resources(struct omap_hwmod *oh, bool dma_only)
--
P?ter
>
> Otherwise that looks fine to me and will allow a much smoother transition to
> full DT.
>
> Thanks,
> Benoit
>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>> ---
>> arch/arm/mach-omap2/omap_hwmod.c | 27 ++++++++++++++++-----------
>> arch/arm/plat-omap/include/plat/omap_hwmod.h | 2 +-
>> arch/arm/plat-omap/omap_device.c | 11 ++++++++---
>> 3 files changed, 25 insertions(+), 15 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod.c
>> b/arch/arm/mach-omap2/omap_hwmod.c
>> index b969ab1..a79c941 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>> @@ -3337,7 +3337,7 @@ int omap_hwmod_reset(struct omap_hwmod *oh)
>> /**
>> * omap_hwmod_count_resources - count number of struct resources needed by
>> hwmod
>> * @oh: struct omap_hwmod *
>> - * @res: pointer to the first element of an array of struct resource to fill
>> + * @flags: Type of resources to include when counting (IRQ/DMA/MEM)
>> *
>> * Count the number of struct resource array elements necessary to
>> * contain omap_hwmod @oh resources. Intended to be called by code
>> @@ -3350,20 +3350,25 @@ int omap_hwmod_reset(struct omap_hwmod *oh)
>> * resource IDs.
>> *
>> */
>> -int omap_hwmod_count_resources(struct omap_hwmod *oh)
>> +int omap_hwmod_count_resources(struct omap_hwmod *oh, unsigned long flags)
>> {
>> - struct omap_hwmod_ocp_if *os;
>> - struct list_head *p;
>> - int ret;
>> - int i = 0;
>> + int ret = 0;
>>
>> - ret = _count_mpu_irqs(oh) + _count_sdma_reqs(oh);
>> + if (flags & IORESOURCE_IRQ)
>> + ret += _count_mpu_irqs(oh);
>>
>> - p = oh->slave_ports.next;
>> + if (flags & IORESOURCE_DMA)
>> + ret += _count_sdma_reqs(oh);
>>
>> - while (i < oh->slaves_cnt) {
>> - os = _fetch_next_ocp_if(&p, &i);
>> - ret += _count_ocp_if_addr_spaces(os);
>> + if (flags & IORESOURCE_MEM) {
>> + int i = 0;
>> + struct omap_hwmod_ocp_if *os;
>> + struct list_head *p = oh->slave_ports.next;
>> +
>> + while (i < oh->slaves_cnt) {
>> + os = _fetch_next_ocp_if(&p, &i);
>> + ret += _count_ocp_if_addr_spaces(os);
>> + }
>> }
>>
>> return ret;
>> diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> index b3349f7..48a6f5d 100644
>> --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> @@ -628,7 +628,7 @@ void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16
>> reg_offs);
>> u32 omap_hwmod_read(struct omap_hwmod *oh, u16 reg_offs);
>> int omap_hwmod_softreset(struct omap_hwmod *oh);
>>
>> -int omap_hwmod_count_resources(struct omap_hwmod *oh);
>> +int omap_hwmod_count_resources(struct omap_hwmod *oh, unsigned long flags);
>> int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res);
>> int omap_hwmod_fill_dma_resources(struct omap_hwmod *oh, struct resource
>> *res);
>> int omap_hwmod_get_resource_byname(struct omap_hwmod *oh, unsigned int type,
>> diff --git a/arch/arm/plat-omap/omap_device.c
>> b/arch/arm/plat-omap/omap_device.c
>> index 7a7d1f2..915cf68 100644
>> --- a/arch/arm/plat-omap/omap_device.c
>> +++ b/arch/arm/plat-omap/omap_device.c
>> @@ -442,19 +442,21 @@ int omap_device_get_context_loss_count(struct
>> platform_device *pdev)
>> /**
>> * omap_device_count_resources - count number of struct resource entries
>> needed
>> * @od: struct omap_device *
>> + * @flags: Type of resources to include when counting (IRQ/DMA/MEM)
>> *
>> * Count the number of struct resource entries needed for this
>> * omap_device @od. Used by omap_device_build_ss() to determine how
>> * much memory to allocate before calling
>> * omap_device_fill_resources(). Returns the count.
>> */
>> -static int omap_device_count_resources(struct omap_device *od)
>> +static int omap_device_count_resources(struct omap_device *od,
>> + unsigned long flags)
>> {
>> int c = 0;
>> int i;
>>
>> for (i = 0; i < od->hwmods_cnt; i++)
>> - c += omap_hwmod_count_resources(od->hwmods[i]);
>> + c += omap_hwmod_count_resources(od->hwmods[i], flags);
>>
>> pr_debug("omap_device: %s: counted %d total resources across %d
>> hwmods\n",
>> od->pdev->name, c, od->hwmods_cnt);
>> @@ -558,7 +560,10 @@ struct omap_device *omap_device_alloc(struct
>> platform_device *pdev,
>> od->hwmods = hwmods;
>> od->pdev = pdev;
>>
>> - res_count = omap_device_count_resources(od);
>> + /* Count all resources for the device */
>> + res_count = omap_device_count_resources(od, IORESOURCE_IRQ |
>> + IORESOURCE_DMA |
>> + IORESOURCE_MEM);
>> /*
>> * DT Boot:
>> * OF framework will construct the resource structure (currently
>>
>
^ permalink raw reply
* sysfs crashes while recursively checking file permissions
From: Chintan Pandya @ 2012-11-02 7:50 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
I am running one test on my ARM system which checks the sysfs file
system's whole directory recursively and checks its file permission.
While I perform this test, I face random (as in varies the nature of
crash sometimes) crashes like one mentioned below.
<1>[ 67.442660] Unable to handle kernel paging request at virtual
address efd3d794
<1>[ 67.448840] pgd = da364000
<1>[ 67.451529] [efd3d794] *pgd=00000000
<0>[ 67.455092] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
<4>[ 67.460385] Modules linked in:
<4>[ 67.463424] CPU: 1 Not tainted
(3.4.0-perf-g45c04fe-00006-g8a5c5e2 #27)
<4>[ 67.470382] PC is at rb_next+0x38/0x60
<4>[ 67.474103] LR is at sysfs_readdir+0x1f8/0x288
<4>[ 67.478528] pc : [<c02f7c50>] lr : [<c01c1fe8>] psr: a0000013
<4>[ 67.478532] sp : d90adf10 ip : 00000078 fp : 0000000b
<4>[ 67.489984] r10: 00004a0e r9 : 00000004 r8 : 00000000
<4>[ 67.495193] r7 : dbea2e00 r6 : 00000000 r5 : db9385c0 r4 : d8ada0c0
<4>[ 67.501704] r3 : efd3d790 r2 : efd3d790 r1 : db9385d0 r0 : dbea2e50
<4>[ 67.508216] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM
Segment user
<4>[ 67.515333] Control: 10c5787d Table: 5a56406a DAC: 00000015
<4>[ 67.521061]
<4>[ 67.521063] PC: 0xc02f7bd0:
<4>[ 67.525313] 7bd0 e1500002 05813008 15813004 e5902008 e3520000
15921000 12011003 11831001
<4>[ 67.533473] 7bf0 15821000 e5902004 e3520000 15921000 12011003
11831001 15821000 e8900007
<4>[ 67.541632] 7c10 e8830007 e12fff1e e5903000 e3c33003 e1500003
03a03000 0a000010 e5903004
<4>[ 67.549791] 7c30 e3530000 1a00000a ea000000 e1a00002 e5902000
e3c22003 e2523000 0a000007
<4>[ 67.557951] 7c50 e5921004 e1500001 0afffff7 ea000003 e1a03002
e5932008 e3520000 1afffffb
<4>[ 67.566112] 7c70 e1a00003 e12fff1e e92d4010 e1a04000 e5903004
e5902008 e3530000 1a000003
<4>[ 67.574271] 7c90 e2523000 05903000 03c33003 ea00000b e3520000
0a000009 ebffffda e5902004
<4>[ 67.582430] 7cb0 e1a03000 e3520000 11a03002 1a000003 e5932000
e3c22003 e1540002 11a03002
<4>[ 67.590592]
<4>[ 67.590594] LR: 0xc01c1f68:
<4>[ 67.594844] 1f68 e2833001 e1852f93 e3320000 1afffffa e59f00ec
e5845078 eb16e059 e1c422d8
<4>[ 67.603003] 1f88 e1a01008 e58da008 e58d600c e1cd20f0 e1a0200b
e59d3024 e58d9010 e59d0020
<4>[ 67.611163] 1fa8 e12fff33 e1a08000 e59f00b4 eb16e0fe e3580000
ba000015 e5942028 e1a01007
<4>[ 67.619323] 1fc8 e59d001c e3a03000 e58d5000 ebffff33 e2505000
0a00000d e2850010 eb04d70b
<4>[ 67.627483] 1fe8 e3500000 0a000005 e5903010 e2405010 e59d101c
e1530001 1afffff6 ea000001
<4>[ 67.635643] 2008 e1a05000 ea000001 e3550000 1affffbf e59f004c
eb16e032 e1c422d8 e3520002
<4>[ 67.643803] 2028 e2d31000 b3a03000 a3a03001 e3550000 13a05000
02035001 e3550000 13a03000
<4>[ 67.651963] 2048 13e02102 11c422f8 13a03000 15843078 e3a00000
e28dd02c e8bd8ff0 c09e096e
<4>[ 67.660123]
<4>[ 67.660125] SP: 0xd90ade90:
<4>[ 67.664376] de90 00000007 205bdf78 37362020 3234342e 5d363436
d90a0020 d90ac000 c016f80c
<4>[ 67.672535] deb0 d90adebc c02f7c50 a0000013 ffffffff d90adefc
c077ca58 dbea2e50 db9385d0
<4>[ 67.680694] ded0 efd3d790 efd3d790 d8ada0c0 db9385c0 00000000
dbea2e00 00000000 00000004
<4>[ 67.688854] def0 00004a0e 0000000b 00000078 d90adf10 c01c1fe8
c02f7c50 a0000013 ffffffff
<4>[ 67.697014] df10 db9385c0 00000000 00004a0e 00000000 00000004
00000000 dbe02480 00000000
<4>[ 67.705175] df30 d90adf80 c0172598 d8d87f08 d8ada0c0 dbdbe068
c0172598 00000000 dbdbe000
<4>[ 67.713334] df50 d90ac000 d90adf80 0000cb6c c017282c 83068137
420670d0 00000000 00001068
<4>[ 67.721493] df70 d8ada0c0 c000e068 00000000 c01729b4 420671e0
420671c0 00000f58 ffffffea
<4>[ 67.729654]
<4>[ 67.729656] R0: 0xdbea2dd0:
<4>[ 67.733907] 2dd0 dbe98300 daaf9b10 dbebb1d0 00000000 00000000
2c53e300 c0c69208 00000003
<4>[ 67.742067] 2df0 dbea2f50 40ed0001 000001e3 00000000 00000012
00000000 dbe30c40 dbea2dc0
<4>[ 67.750226] 2e10 dbe98391 daad60d0 dbebb210 00000000 00000000
2c53e300 c0c69208 00000003
<4>[ 67.758385] 2e30 dbea2f90 41ed0001 000001e3 00000000 00000003
00000000 dbea2e00 c0a10df6
<4>[ 67.766547] 2e50 efd3d791 db9385d0 db938010 00000000 00000000
57c6bb9d c0c9c8a4 00000000
<4>[ 67.774706] 2e70 00000000 81a40002 000001e4 00000000 00000001
00000000 efd3d600 c09cd4b0
<4>[ 67.782865] 2e90 dbea2f91 db937e10 dbea4010 00000000 00000000
27692f8b c0c9cb78 00000000
<4>[ 67.791024] 2eb0 00000000 81240002 000001e5 00000000 5f6d736d
5f6d6163 76726573 302e7265
<4>[ 67.799185]
<4>[ 67.799187] R1: 0xdb938550:
<4>[ 67.803439] 8550 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
<4>[ 67.811598] 8570 00000000 00000000 00000000 00000000 65646976
696c346f 0078756e 00000000
<4>[ 67.819758] 8590 00000000 00000000 00000000 00000000 00000000
00000000 00800000 00000000
<4>[ 67.827916] 85b0 00000000 00000000 00000000 00000000 00000009
00000000 dbea2e00 db938580
<4>[ 67.836076] 85d0 dbea2e50 00000000 00000000 00000000 00000000
79ac7656 db938500 00000006
<4>[ 67.844236] 85f0 db1b3390 41ed0001 00004a0e 00000000 65646976
3030316f 00000000 00000000
<4>[ 67.852395] 8610 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
<4>[ 67.860557] 8630 00000000 00000000 00000000 00000000 0000000c
00000000 db9385c0 db938600
<4>[ 67.868716]
<4>[ 67.868718] R2: 0xefd3d710:
<4>[ 67.872970] d710 ******** ******** ******** ******** ********
******** ******** ********
<4>[ 67.881129] d730 ******** ******** ******** ******** ********
******** ******** ********
<4>[ 67.889289] d750 ******** ******** ******** ******** ********
******** ******** ********
<4>[ 67.897448] d770 ******** ******** ******** ******** ********
******** ******** ********
I am using kernel 3.4.0. Steps to re-produce
->cd /sys/devices/platform/
->ls -l -R *
Any clues for debugging ?
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
^ permalink raw reply
* [PATCH v4 0/3] ocp2scp: add non-dt support
From: Kishon Vijay Abraham I @ 2012-11-02 8:14 UTC (permalink / raw)
To: linux-arm-kernel
This patch series allows ocp2scp driver to create its child devices
from the platform data.
In omap platforms, usb phy is connected to ocp2scp and usb phy is needed
for MUSB to be functional. When ocp2scp driver was added, it had only dt
support which means it wont create usb phy devices for non-dt boot.
This patch series adds non-dt support to ocp2scp and this series is needed
for getting MUSB functional in non-dt boot.
Changes from v3:
used PLATFORM_DEVID_AUTO while creating a device using platform_device_alloc
Changes from v2:
*if cpu is not 44xx, dont create ocp2scp device in mach-omap2/devices.c
Changes from v1:
* Fixed Sergei's comments on memory leaks
Kishon Vijay Abraham I (3):
drivers: bus: ocp2scp: add pdata support
ARM: OMAP4: add _dev_attr_ to ocp2scp for representing usb_phy
ARM: OMAP: ocp2scp: create omap device for ocp2scp
arch/arm/mach-omap2/devices.c | 79 ++++++++++++++++++++++++++++
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 28 ++++++++++
drivers/bus/omap-ocp2scp.c | 68 ++++++++++++++++++++++--
include/linux/platform_data/omap_ocp2scp.h | 31 +++++++++++
4 files changed, 203 insertions(+), 3 deletions(-)
create mode 100644 include/linux/platform_data/omap_ocp2scp.h
--
1.7.9.5
^ permalink raw reply
* [PATCH v4 1/3] drivers: bus: ocp2scp: add pdata support
From: Kishon Vijay Abraham I @ 2012-11-02 8:14 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351844088-27059-1-git-send-email-kishon@ti.com>
ocp2scp was not having pdata support which makes *musb* fail for non-dt
boot in OMAP platform. The pdata will have information about the devices
that is connected to ocp2scp. ocp2scp driver will now make use of this
information to create the devices that is attached to ocp2scp.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
drivers/bus/omap-ocp2scp.c | 68 ++++++++++++++++++++++++++--
include/linux/platform_data/omap_ocp2scp.h | 31 +++++++++++++
2 files changed, 96 insertions(+), 3 deletions(-)
create mode 100644 include/linux/platform_data/omap_ocp2scp.h
diff --git a/drivers/bus/omap-ocp2scp.c b/drivers/bus/omap-ocp2scp.c
index ff63560..0c48b0e 100644
--- a/drivers/bus/omap-ocp2scp.c
+++ b/drivers/bus/omap-ocp2scp.c
@@ -22,6 +22,26 @@
#include <linux/pm_runtime.h>
#include <linux/of.h>
#include <linux/of_platform.h>
+#include <linux/platform_data/omap_ocp2scp.h>
+
+/**
+ * _count_resources - count for the number of resources
+ * @res: struct resource *
+ *
+ * Count and return the number of resources populated for the device that is
+ * connected to ocp2scp.
+ */
+static unsigned _count_resources(struct resource *res)
+{
+ int cnt = 0;
+
+ while (res->start != res->end) {
+ cnt++;
+ res++;
+ }
+
+ return cnt;
+}
static int ocp2scp_remove_devices(struct device *dev, void *c)
{
@@ -34,20 +54,62 @@ static int ocp2scp_remove_devices(struct device *dev, void *c)
static int __devinit omap_ocp2scp_probe(struct platform_device *pdev)
{
- int ret;
- struct device_node *np = pdev->dev.of_node;
+ int ret;
+ unsigned res_cnt, i;
+ struct device_node *np = pdev->dev.of_node;
+ struct platform_device *pdev_child;
+ struct omap_ocp2scp_platform_data *pdata = pdev->dev.platform_data;
+ struct omap_ocp2scp_dev *dev;
if (np) {
ret = of_platform_populate(np, NULL, NULL, &pdev->dev);
if (ret) {
- dev_err(&pdev->dev, "failed to add resources for ocp2scp child\n");
+ dev_err(&pdev->dev,
+ "failed to add resources for ocp2scp child\n");
goto err0;
}
+ } else if (pdata) {
+ for (i = 0, dev = *pdata->devices; i < pdata->dev_cnt; i++,
+ dev++) {
+ res_cnt = _count_resources(dev->res);
+
+ pdev_child = platform_device_alloc(dev->drv_name,
+ PLATFORM_DEVID_AUTO);
+ if (!pdev_child) {
+ dev_err(&pdev->dev,
+ "failed to allocate mem for ocp2scp child\n");
+ goto err0;
+ }
+
+ ret = platform_device_add_resources(pdev_child,
+ dev->res, res_cnt);
+ if (ret) {
+ dev_err(&pdev->dev,
+ "failed to add resources for ocp2scp child\n");
+ goto err1;
+ }
+
+ pdev_child->dev.parent = &pdev->dev;
+
+ ret = platform_device_add(pdev_child);
+ if (ret) {
+ dev_err(&pdev->dev,
+ "failed to register ocp2scp child device\n");
+ goto err1;
+ }
+ }
+ } else {
+ dev_err(&pdev->dev, "OCP2SCP initialized without plat data\n");
+ return -EINVAL;
}
+
pm_runtime_enable(&pdev->dev);
return 0;
+err1:
+ platform_device_put(pdev_child);
+
err0:
device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices);
diff --git a/include/linux/platform_data/omap_ocp2scp.h b/include/linux/platform_data/omap_ocp2scp.h
new file mode 100644
index 0000000..5c6c393
--- /dev/null
+++ b/include/linux/platform_data/omap_ocp2scp.h
@@ -0,0 +1,31 @@
+/*
+ * omap_ocp2scp.h -- ocp2scp header file
+ *
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Author: Kishon Vijay Abraham I <kishon@ti.com>
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef __DRIVERS_OMAP_OCP2SCP_H
+#define __DRIVERS_OMAP_OCP2SCP_H
+
+struct omap_ocp2scp_dev {
+ const char *drv_name;
+ struct resource *res;
+};
+
+struct omap_ocp2scp_platform_data {
+ int dev_cnt;
+ struct omap_ocp2scp_dev **devices;
+};
+#endif /* __DRIVERS_OMAP_OCP2SCP_H */
--
1.7.9.5
^ permalink raw reply related
* [PATCH v4 2/3] ARM: OMAP4: add _dev_attr_ to ocp2scp for representing usb_phy
From: Kishon Vijay Abraham I @ 2012-11-02 8:14 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351844088-27059-1-git-send-email-kishon@ti.com>
In order to reflect devices(usb_phy) attached to ocp2scp bus, ocp2scp
is assigned a device attribute to represent the attached devices.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
---
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 652d028..cf579b5 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -21,6 +21,7 @@
#include <linux/io.h>
#include <linux/platform_data/gpio-omap.h>
#include <linux/power/smartreflex.h>
+#include <linux/platform_data/omap_ocp2scp.h>
#include <plat/omap_hwmod.h>
#include <plat/i2c.h>
@@ -2681,6 +2682,32 @@ static struct omap_hwmod_class omap44xx_ocp2scp_hwmod_class = {
.sysc = &omap44xx_ocp2scp_sysc,
};
+/* ocp2scp dev_attr */
+static struct resource omap44xx_usb_phy_and_pll_addrs[] = {
+ {
+ .name = "usb_phy",
+ .start = 0x4a0ad080,
+ .end = 0x4a0ae000,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ /* XXX: Remove this once control module driver is in place */
+ .name = "ctrl_dev",
+ .start = 0x4a002300,
+ .end = 0x4a002303,
+ .flags = IORESOURCE_MEM,
+ },
+ { }
+};
+
+static struct omap_ocp2scp_dev ocp2scp_dev_attr[] = {
+ {
+ .drv_name = "omap-usb2",
+ .res = omap44xx_usb_phy_and_pll_addrs,
+ },
+ { }
+};
+
/* ocp2scp_usb_phy */
static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = {
.name = "ocp2scp_usb_phy",
@@ -2694,6 +2721,7 @@ static struct omap_hwmod omap44xx_ocp2scp_usb_phy_hwmod = {
.modulemode = MODULEMODE_HWCTRL,
},
},
+ .dev_attr = ocp2scp_dev_attr,
};
/*
--
1.7.9.5
^ permalink raw reply related
* [PATCH v4 3/3] ARM: OMAP: ocp2scp: create omap device for ocp2scp
From: Kishon Vijay Abraham I @ 2012-11-02 8:14 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1351844088-27059-1-git-send-email-kishon@ti.com>
Platfrom device for ocp2scp is created using omap_device_build in
devices file. This is used for both omap4(musb) and omap5(dwc3).
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
arch/arm/mach-omap2/devices.c | 79 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index cba60e0..c72b5a7 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -19,6 +19,7 @@
#include <linux/of.h>
#include <linux/pinctrl/machine.h>
#include <linux/platform_data/omap4-keypad.h>
+#include <linux/platform_data/omap_ocp2scp.h>
#include <asm/mach-types.h>
#include <asm/mach/map.h>
@@ -613,6 +614,83 @@ static void omap_init_vout(void)
static inline void omap_init_vout(void) {}
#endif
+#if defined(CONFIG_OMAP_OCP2SCP) || defined(CONFIG_OMAP_OCP2SCP_MODULE)
+static int count_ocp2scp_devices(struct omap_ocp2scp_dev *ocp2scp_dev)
+{
+ int cnt = 0;
+
+ while (ocp2scp_dev->drv_name != NULL) {
+ cnt++;
+ ocp2scp_dev++;
+ }
+
+ return cnt;
+}
+
+static void omap_init_ocp2scp(void)
+{
+ struct omap_hwmod *oh;
+ struct platform_device *pdev;
+ int bus_id = -1, dev_cnt = 0, i;
+ struct omap_ocp2scp_dev *ocp2scp_dev;
+ const char *oh_name, *name;
+ struct omap_ocp2scp_platform_data *pdata;
+
+ if (!cpu_is_omap44xx())
+ return;
+
+ oh_name = "ocp2scp_usb_phy";
+ name = "omap-ocp2scp";
+
+ oh = omap_hwmod_lookup(oh_name);
+ if (!oh) {
+ pr_err("%s: could not find omap_hwmod for %s\n", __func__,
+ oh_name);
+ return;
+ }
+
+ pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ if (!pdata) {
+ pr_err("%s: No memory for ocp2scp pdata\n", __func__);
+ return;
+ }
+
+ ocp2scp_dev = oh->dev_attr;
+ dev_cnt = count_ocp2scp_devices(ocp2scp_dev);
+
+ if (!dev_cnt) {
+ pr_err("%s: No devices connected to ocp2scp\n", __func__);
+ kfree(pdata);
+ return;
+ }
+
+ pdata->devices = kzalloc(sizeof(struct omap_ocp2scp_dev *)
+ * dev_cnt, GFP_KERNEL);
+ if (!pdata->devices) {
+ pr_err("%s: No memory for ocp2scp pdata devices\n", __func__);
+ kfree(pdata);
+ return;
+ }
+
+ for (i = 0; i < dev_cnt; i++, ocp2scp_dev++)
+ pdata->devices[i] = ocp2scp_dev;
+
+ pdata->dev_cnt = dev_cnt;
+
+ pdev = omap_device_build(name, bus_id, oh, pdata, sizeof(*pdata), NULL,
+ 0, false);
+ if (IS_ERR(pdev)) {
+ pr_err("Could not build omap_device for %s %s\n",
+ name, oh_name);
+ kfree(pdata->devices);
+ kfree(pdata);
+ return;
+ }
+}
+#else
+static inline void omap_init_ocp2scp(void) { }
+#endif
+
/*-------------------------------------------------------------------------*/
static int __init omap2_init_devices(void)
@@ -640,6 +718,7 @@ static int __init omap2_init_devices(void)
omap_init_sham();
omap_init_aes();
omap_init_vout();
+ omap_init_ocp2scp();
return 0;
}
--
1.7.9.5
^ permalink raw reply related
* [PATCH v3] Visstrim SM10: Use mo_version to decide board video mode.
From: Sascha Hauer @ 2012-11-02 8:24 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CACKLOr1DB1_G6ttVHc6p-+SjegmJL1r4pKpunvo43xFR7RyA4g@mail.gmail.com>
On Tue, Oct 30, 2012 at 03:52:10PM +0100, javier Martin wrote:
> On 28 September 2012 15:06, javier Martin
> <javier.martin@vista-silicon.com> wrote:
> > Hi Mauro,
> > this patch should originally go via arm-soc but it has a dependency on
> > support for coda video codec which is already in your tree.
> >
> > Now that we've got Sascha's ack could you merge this patch through your tree?
> >
> > Regards.
> >
>
> Hi Sascha,
> it seems Mauro missed to apply this patch through his tree.
> Moreover, 1 month later from my submission I think it should already
> apply to arm-soc.
>
> Could you please merge it?
Just applied it.
Thanks
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox