Will Deacon | 25 May 16:38
Favicon

[STABLE PATCH] ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held

From: Dima Zavin <dima <at> android.com>

commit 435a7ef52db7d86e67a009b36cac1457f8972391 upstream

We can't be holding the mmap_sem while calling flush_cache_user_range
because the flush can fault. If we fault on a user address, the
page fault handler will try to take mmap_sem again. Since both places
acquire the read lock, most of the time it succeeds. However, if another
thread tries to acquire the write lock on the mmap_sem (e.g. mmap) in
between the call to flush_cache_user_range and the fault, the down_read
in do_page_fault will deadlock.

[will: removed drop of vma parameter as already queued by rmk (7365/1)]

Cc: <stable <at> vger.kernel.org> # 2.6.32+: 4542b6a0: ARM: 7365/1
Cc: <stable <at> vger.kernel.org> # 2.6.32+
Acked-by: Catalin Marinas <catalin.marinas <at> arm.com>
Signed-off-by: Dima Zavin <dima <at> android.com>
Signed-off-by: John Stultz <john.stultz <at> linaro.org>
Signed-off-by: Will Deacon <will.deacon <at> arm.com>
Signed-off-by: Russell King <rmk+kernel <at> arm.linux.org.uk>
---

Greg: This patch is a candidate for -stable, but its dependency (listed
      above) wasn't marked as such, hence this retrospective submission.

 arch/arm/kernel/traps.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
(Continue reading)

Sascha Hauer | 25 May 16:22
Picon

[PATCH 1/2] mtd mxc_nand: use 32bit copy functions

The following commit changes the function used to copy from/to
the hardware buffer to memcpy_[from|to]io. This does not work
since the hardware cannot handle the byte accesses used by these
functions. Instead of reverting this patch introduce 32bit
correspondents of these functions.

commit 5775ba36ea9c760c2d7e697dac04f2f7fc95aa62
Author: Uwe Kleine-König <u.kleine-koenig <at> pengutronix.de>
Date:   Tue Apr 24 10:05:22 2012 +0200

    mtd: mxc_nand: fix several sparse warnings about incorrect address space

    Signed-off-by: Uwe Kleine-König <u.kleine-koenig <at> pengutronix.de>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy <at> linux.intel.com>

Signed-off-by: Sascha Hauer <s.hauer <at> pengutronix.de>
Cc: Uwe Kleine-König <u.kleine-koenig <at> pengutronix.de>
---
 drivers/mtd/nand/mxc_nand.c |   36 ++++++++++++++++++++++++++++--------
 1 file changed, 28 insertions(+), 8 deletions(-)

diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index fd14966..4d27ddc 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -273,6 +273,26 @@ static struct nand_ecclayout nandv2_hw_eccoob_4k = {

 static const char *part_probes[] = { "RedBoot", "cmdlinepart", "ofpart", NULL };

+static void memcpy32_fromio(void *trg, const volatile void __iomem  *src, size_t size)
(Continue reading)

Fabio Estevam | 25 May 15:56
Picon

Booting mx27 on linux-next

Hi Sascha,

Just tried booting a mx27pdk on linux-next and it failed to boot.

Any patches I am missing?

Just wanted to check with you first prior to start debugging it.

Regards,

Fabio Estevam
ludovic.desroches | 25 May 14:55

[PATCH] ARM: at91: aic can use fast eoi handler type

From: Ludovic Desroches <ludovic.desroches <at> atmel.com>

The Advanced Interrupt Controller allows to use the fast EOI handler type.
It lets remove the Atmel specific workaround into arch/arm/kernel/irq.c used
to indicate to the AIC the end of the interrupt treatment.

Signed-off-by: Ludovic Desroches <ludovic.desroches <at> atmel.com>
---
 arch/arm/kernel/irq.c                  |    3 ---
 arch/arm/mach-at91/gpio.c              |   10 ++++++++--
 arch/arm/mach-at91/include/mach/irqs.h |    7 -------
 arch/arm/mach-at91/irq.c               |   10 ++++++++--
 4 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index 71ccdbf..6236d1a 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -85,9 +85,6 @@ void handle_IRQ(unsigned int irq, struct pt_regs *regs)
 		generic_handle_irq(irq);
 	}

-	/* AT91 specific workaround */
-	irq_finish(irq);
-
 	irq_exit();
 	set_irq_regs(old_regs);
 }
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index 325837a..ee38e6d 100644
(Continue reading)

Huang Shijie | 25 May 11:25
Favicon

[PATCH 1/2] ARM: mx28: add gpmi-nand support

add gpmi-nand device tree support.
add gpmi-nand pinctrl support.

Also enable the gpmi support for mx28-evk board.

Signed-off-by: Huang Shijie <b32955 <at> freescale.com>
---

add pinctrl for gpmi-nand.

---
 arch/arm/boot/dts/imx28-evk.dts |    6 ++++++
 arch/arm/boot/dts/imx28.dtsi    |   35 ++++++++++++++++++++++++++---------
 2 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index ee520a5..e53cf67 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -22,6 +22,12 @@

 	apb <at> 80000000 {
 		apbh <at> 80000000 {
+			gpmi-nand <at> 8000c000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
+				status = "okay";
+			};
+
 			ssp0: ssp <at> 80010000 {
(Continue reading)

Zhangfei Gao | 25 May 09:10
Favicon

[PATCH 0/4] mmp audio support

These four patches provide mmp audio support under alsa via dmaengine
Support platfrom pxa688 and pxa910
mmp_tdma.c and mmp-pcm.c is shared for pxa688 and pxa910
pxa688 (mmp2) use mmp2-sspa.c
pxa910 directly use pxa-ssp.c
mmp_tdma.c is under dmaengine framework

Verified on brownstone (pxa688) and ttc-dkb

Zhangfei Gao (4):
  dmaengine: mmp_tdma: add mmp tdma support
  ASoC: mmp: add audio dma support
  ASOC: mmp: add sspa support
  ASoC: add mmp brownstone support

 drivers/dma/Kconfig                     |   10 +
 drivers/dma/Makefile                    |    1 +
 drivers/dma/mmp_tdma.c                  |  677 +++++++++++++++++++++++++++++++
 include/linux/platform_data/mmp_audio.h |   22 +
 include/linux/platform_data/mmp_dma.h   |   20 +
 sound/soc/pxa/Kconfig                   |   20 +
 sound/soc/pxa/Makefile                  |    6 +
 sound/soc/pxa/brownstone.c              |  303 ++++++++++++++
 sound/soc/pxa/mmp-pcm.c                 |  448 ++++++++++++++++++++
 sound/soc/pxa/mmp-sspa.c                |  536 ++++++++++++++++++++++++
 sound/soc/pxa/mmp-sspa.h                |   92 +++++
 11 files changed, 2135 insertions(+), 0 deletions(-)
 create mode 100644 drivers/dma/mmp_tdma.c
 create mode 100644 include/linux/platform_data/mmp_audio.h
 create mode 100644 include/linux/platform_data/mmp_dma.h
(Continue reading)

javier Martin | 24 May 13:00
Favicon

[ehci-mxc] USB stopped working in i.MX27 based Visstrim_M10 board.

Hi,
in kernel 3.4 USB doesn't work anymore in Visstrim_M10 board. It is
based on an i.MX27 chip and this is the log I get when connecting an
UVC webcam:

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci_hcd: block sizes: qh 64 qtd 96 itd 160 sitd 96
mxc-ehci mxc-ehci.0: initializing i.MX USB Controller
mxc-ehci mxc-ehci.0: Freescale On-Chip EHCI Host Controller
mxc-ehci mxc-ehci.0: new USB bus registered, assigned bus number 1
mxc-ehci mxc-ehci.0: reset hcs_params 0x10011 dbg=0 ind cc=0 pcc=0
ordered ports=1
mxc-ehci mxc-ehci.0: reset hcc_params 0006 thresh 0 uframes 256/512/1024 park
mxc-ehci mxc-ehci.0: park 0
mxc-ehci mxc-ehci.0: reset command 0080002 (park)=0 ithresh=8
period=1024 Reset HALT
mxc-ehci mxc-ehci.0: ...powerdown ports...
mxc-ehci mxc-ehci.0: irq 56, io mem 0x10024000
mxc-ehci mxc-ehci.0: init command 0010005 (park)=0 ithresh=1 period=512 RUN
mxc-ehci mxc-ehci.0: USB 2.0 started, EHCI 1.00
usb usb1: default language 0x0409
usb usb1: udev 1, busnum 1, minor = 0
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: Freescale On-Chip EHCI Host Controller
usb usb1: Manufacturer: Linux 3.4.0-00005-gf095ebc ehci_hcd
usb usb1: SerialNumber: mxc-ehci.0
usb usb1: usb_probe_device
usb usb1: configuration #1 chosen from 1 choice
usb usb1: adding 1-0:1.0 (config #1, interface 0)
(Continue reading)

Huang Shijie | 24 May 12:50
Favicon

[PATCH 1/5] ARM: imx6q: add DT node for apbh-dma

add DT node for apbh-dma.

Signed-off-by: Huang Shijie <b32955 <at> freescale.com>
---
 arch/arm/boot/dts/imx6q.dtsi |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 8c90cba..cccac33 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -87,6 +87,11 @@
 		interrupt-parent = <&intc>;
 		ranges;

+		dma-apbh <at> 00110000 {
+			compatible = "fsl,imx6q-dma-apbh";
+			reg = <0x00110000 0x2000>;
+		};
+
 		timer <at> 00a00600 {
 			compatible = "arm,cortex-a9-twd-timer";
 			reg = <0x00a00600 0x20>;
--

-- 
1.7.0.4
Huang Shijie | 24 May 12:45
Favicon

[PATCH] ARM: mx28: add gpmi-nand dt support

add gpmi-nand device tree support.
Also enable the gpmi support for mx28-evk board.

Signed-off-by: Huang Shijie <b32955 <at> freescale.com>
---
 arch/arm/boot/dts/imx28-evk.dts |    4 ++++
 arch/arm/boot/dts/imx28.dtsi    |   18 +++++++++---------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index ee520a5..5fff6c9 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -22,6 +22,10 @@

 	apb <at> 80000000 {
 		apbh <at> 80000000 {
+			gpmi-nand <at> 8000c000 {
+				status = "okay";
+			};
+
 			ssp0: ssp <at> 80010000 {
 				compatible = "fsl,imx28-mmc";
 				pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 4634cb8..2358089 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -68,15 +68,15 @@
 				status = "disabled";
(Continue reading)

K K | 24 May 07:22
Picon

Linux Kernel boot up stops after message "Uncompressing Linux....done, booting the kernel"


Hi,

We have a lpc-3180 based board and it is up and running fine with 2.6.10 kernel version. We planned to port our board changes into 2.6.32 kernel version. 

As a part of this, we added the architecture dependent  code  (mach files)  first. Then we changed some of the kernel upgradations. 

kernel build successfully. When we booting the board with the new 2.6.32 kernel we are getting following messages and its stops.


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

U-Boot 1.1.1 (Oct 10 2006 - 21:35:44)


U-Boot code: 80EC0000 -> 80EE9600  BSS: -> 80EEAEE0

SDRAM : 32M detected 

RAM Configuration:

Bank #0: 80000000 31 MB

Bank #1: 00000000  0 kB

Flash:  0 kB

NAND:NAND device: Manufacturer ID: 0x20, Chip ID: 0x35 (ST Micro NAND 32MiB 1,8V 8-bit)

Scanning device for bad blocks

Using default environment


In:    serial

Out:   serial

Err:   serial

Hit any key to stop autoboot:  2 1 0 

Boot reached stage 1

## Booting image at 80600000 ...

Boot reached stage 2

Boot reached stage 3

   Image Name:   Linux-2.6.32

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    1278856 Bytes =  1.2 MB

   Load Address: 80008000

   Entry Point:  80008000

Boot reached stage 4

Boot reached stage 5

Boot reached stage 6

OK

Boot reached stage 7

Boot reached stage 8

Boot reached stage 14

Boot reached stage 15


Starting kernel ...


Uncompressing Linux............................................................................. done, booting the kernel.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

For this we tried to add some debug messages:

The complete scenario is as follows.

 

We have added some of our own print messages (using putstr() etc.) by changing the code in  arch/arm/boot/compressed/head.S & arch/arm/boot/compressed/misc.c files. Then, we  could see those messages before and after calling  “decompress_kernel” routine.  So, we moved to the next stage of the booting i.e. checking the processor type. This is done in “__lookup_processor_type” routine which can be found in arch/arm/kernel/head-common.S. Here too, we added one of our prints and this time using “printascii” routine as “putstr” is not usable here. But these messages are not showing up during the boot log.

 

This can be caused by two reasons:

1. __lookup_processor_type is not being called.

2. Some of it or entire serial interface initialization is missing.

 

There is less probability for the first reason. Because, after the decompression of the kernel, immediately the control is passed to the extracted kernel. Where “__lookup_processor_type” is the first routine to be called (see arch/arm/kernel/head.S line 82 in v2.6.32). So there must be some problem with the “printascii” routine itself (i.e. serial communication).

can you help, where the things may go wrong....

Thanks.

-KK


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel <at> lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Tim Bird | 24 May 02:34
Picon

[PATCH] Consolidate stack size information into THREAD_SIZE_ORDER

This reduces the number of magic values in the code, as well as
makes it easier to experiment with larger or smaller stack sizes.

Signed-off-by: Tim Bird <tim.bird <at> am.sony.com>
PATCH FOLLOWS
---
 arch/arm/include/asm/thread_info.h |    2 +-
 arch/arm/kernel/entry-header.S     |    8 ++++----
 arch/arm/mm/proc-macros.S          |    4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
index 0f04d84..5172c36 100644
--- a/arch/arm/include/asm/thread_info.h
+++ b/arch/arm/include/asm/thread_info.h
@@ -16,7 +16,7 @@
 #include <asm/fpstate.h>

 #define THREAD_SIZE_ORDER	1
-#define THREAD_SIZE		8192
+#define THREAD_SIZE		(4096 << THREAD_SIZE_ORDER)
 #define THREAD_START_SP		(THREAD_SIZE - 8)

 #ifndef __ASSEMBLY__
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index 9a8531e..f94216b 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -109,8 +109,8 @@
 	.endm

 	.macro	get_thread_info, rd
-	mov	\rd, sp, lsr #13
-	mov	\rd, \rd, lsl #13
+	mov	\rd, sp, lsr #12 + THREAD_SIZE_ORDER
+	mov	\rd, \rd, lsl #12 + THREAD_SIZE_ORDER
 	.endm

 	@
@@ -150,8 +150,8 @@

 	.macro	get_thread_info, rd
 	mov	\rd, sp
-	lsr	\rd, \rd, #13
-	mov	\rd, \rd, lsl #13
+	lsr	\rd, \rd, #12 + THREAD_SIZE_ORDER
+	mov	\rd, \rd, lsl #12 + THREAD_SIZE_ORDER
 	.endm

 	@
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S
index 2d8ff3a..7006c88 100644
--- a/arch/arm/mm/proc-macros.S
+++ b/arch/arm/mm/proc-macros.S
@@ -30,8 +30,8 @@
  * act_mm - get current->active_mm
  */
 	.macro	act_mm, rd
-	bic	\rd, sp, #8128
-	bic	\rd, \rd, #63
+	mov	\rd, sp, lsr #12 + THREAD_SIZE_ORDER
+	mov	\rd, \rd, lsl #12 + THREAD_SIZE_ORDER
 	ldr	\rd, [\rd, #TI_TASK]
 	ldr	\rd, [\rd, #TSK_ACTIVE_MM]
 	.endm
--

-- 
1.7.9.5

Gmane