From: Greg Kroah-Hartman Date: Sun, 8 Dec 2013 19:57:07 +0000 (-0800) Subject: 3.12-stable patches X-Git-Tag: v3.4.74~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f325235212d0d0bd72aa58d0209543f7bf919042;p=thirdparty%2Fkernel%2Fstable-queue.git 3.12-stable patches added patches: arm-at91-sama5d3-reduce-twi-internal-clock-frequency.patch arm-dts-omap4-panda-common-fix-pin-muxing-for-wl12xx.patch arm-footbridge-fix-ebsa285-leds.patch arm-footbridge-fix-vga-initialisation.patch arm-multi_v7_defconfig-enable-sdhci_bcm_kona-and-mmc_block_minors-16.patch arm-mvebu-fix-second-and-third-pcie-unit-of-armada-xp-mv78260.patch arm-mvebu-re-enable-pcie-on-armada-370-db.patch arm-mvebu-second-pcie-unit-of-armada-xp-mv78230-is-only-x1-capable.patch arm-mvebu-use-the-virtual-cpu-registers-to-access-coherency-registers.patch arm-omapfb-panel-sony-acx565akm-fix-bad-unlock-balance.patch --- diff --git a/queue-3.12/arm-at91-sama5d3-reduce-twi-internal-clock-frequency.patch b/queue-3.12/arm-at91-sama5d3-reduce-twi-internal-clock-frequency.patch new file mode 100644 index 00000000000..b7f7af5e23f --- /dev/null +++ b/queue-3.12/arm-at91-sama5d3-reduce-twi-internal-clock-frequency.patch @@ -0,0 +1,52 @@ +From 58e7b1d5826ac6a64b1101d8a70162bc084a7d1e Mon Sep 17 00:00:00 2001 +From: Ludovic Desroches +Date: Fri, 22 Nov 2013 17:08:43 +0100 +Subject: ARM: at91: sama5d3: reduce TWI internal clock frequency + +From: Ludovic Desroches + +commit 58e7b1d5826ac6a64b1101d8a70162bc084a7d1e upstream. + +With some devices, transfer hangs during I2C frame transmission. This issue +disappears when reducing the internal frequency of the TWI IP. Even if it is +indicated that internal clock max frequency is 66MHz, it seems we have +oversampling on I2C signals making TWI believe that a transfer in progress +is done. + +This fix has no impact on the I2C bus frequency. + +Signed-off-by: Ludovic Desroches +Acked-by: Wolfram Sang +Acked-by: Jean-Christophe PLAGNIOL-VILLARD +Signed-off-by: Nicolas Ferre +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-at91/sama5d3.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/arch/arm/mach-at91/sama5d3.c ++++ b/arch/arm/mach-at91/sama5d3.c +@@ -95,19 +95,19 @@ static struct clk twi0_clk = { + .name = "twi0_clk", + .pid = SAMA5D3_ID_TWI0, + .type = CLK_TYPE_PERIPHERAL, +- .div = AT91_PMC_PCR_DIV2, ++ .div = AT91_PMC_PCR_DIV8, + }; + static struct clk twi1_clk = { + .name = "twi1_clk", + .pid = SAMA5D3_ID_TWI1, + .type = CLK_TYPE_PERIPHERAL, +- .div = AT91_PMC_PCR_DIV2, ++ .div = AT91_PMC_PCR_DIV8, + }; + static struct clk twi2_clk = { + .name = "twi2_clk", + .pid = SAMA5D3_ID_TWI2, + .type = CLK_TYPE_PERIPHERAL, +- .div = AT91_PMC_PCR_DIV2, ++ .div = AT91_PMC_PCR_DIV8, + }; + static struct clk mmc0_clk = { + .name = "mci0_clk", diff --git a/queue-3.12/arm-dts-omap4-panda-common-fix-pin-muxing-for-wl12xx.patch b/queue-3.12/arm-dts-omap4-panda-common-fix-pin-muxing-for-wl12xx.patch new file mode 100644 index 00000000000..38577ef41c9 --- /dev/null +++ b/queue-3.12/arm-dts-omap4-panda-common-fix-pin-muxing-for-wl12xx.patch @@ -0,0 +1,77 @@ +From 2ba2866f782f7f1c38abc3dd56d3295efd289264 Mon Sep 17 00:00:00 2001 +From: Balaji T K +Date: Mon, 2 Dec 2013 11:38:13 -0800 +Subject: ARM: dts: omap4-panda-common: Fix pin muxing for wl12xx + +From: Balaji T K + +commit 2ba2866f782f7f1c38abc3dd56d3295efd289264 upstream. + +pin mux wl12xx_gpio and wl12xx_pins should be part of omap4_pmx_core +and not omap4_pmx_wkup. So, move wl12xx_* to omap4_pmx_core. + +Fix the following error message: +pinctrl-single 4a31e040.pinmux: mux offset out of range: 0x38 (0x38) +pinctrl-single 4a31e040.pinmux: could not add functions for pinmux_wl12xx_pins 56x + +SDIO card is not detected after moving pin mux to omap4_pmx_core since +sdmmc5_clk pull is disabled. Enable Pull up on sdmmc5_clk to detect SDIO card. + +This fixes a regression where WLAN did not work after a warm reset +or after one up/down cycle that happened when we move omap4 to boot +using device tree only. For reference, the kernel bug is described at: + +https://bugzilla.kernel.org/show_bug.cgi?id=63821 + +Signed-off-by: Balaji T K +[tony@atomide.com: update comments to describe the regression] +Signed-off-by: Tony Lindgren +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/omap4-panda-common.dtsi | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +--- a/arch/arm/boot/dts/omap4-panda-common.dtsi ++++ b/arch/arm/boot/dts/omap4-panda-common.dtsi +@@ -239,15 +239,6 @@ + 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */ + >; + }; +-}; +- +-&omap4_pmx_wkup { +- led_wkgpio_pins: pinmux_leds_wkpins { +- pinctrl-single,pins = < +- 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */ +- 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ +- >; +- }; + + /* + * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP +@@ -267,7 +258,7 @@ + pinctrl-single,pins = < + 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */ + 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */ +- 0x108 (PIN_OUTPUT | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */ ++ 0x108 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */ + 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */ + 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */ + 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */ +@@ -276,6 +267,15 @@ + >; + }; + }; ++ ++&omap4_pmx_wkup { ++ led_wkgpio_pins: pinmux_leds_wkpins { ++ pinctrl-single,pins = < ++ 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */ ++ 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ ++ >; ++ }; ++}; + + &i2c1 { + pinctrl-names = "default"; diff --git a/queue-3.12/arm-footbridge-fix-ebsa285-leds.patch b/queue-3.12/arm-footbridge-fix-ebsa285-leds.patch new file mode 100644 index 00000000000..1d1e5e89a01 --- /dev/null +++ b/queue-3.12/arm-footbridge-fix-ebsa285-leds.patch @@ -0,0 +1,77 @@ +From 67130c5464f50428aea0b4526a6729d61f9a1d53 Mon Sep 17 00:00:00 2001 +From: Russell King +Date: Fri, 29 Nov 2013 00:54:38 +0000 +Subject: ARM: footbridge: fix EBSA285 LEDs + +From: Russell King + +commit 67130c5464f50428aea0b4526a6729d61f9a1d53 upstream. + +- The LEDs register is write-only: it can't be read-modify-written. +- The LEDs are write-1-for-off not 0. +- The check for the platform was inverted. + +Fixes: cf6856d693dd ("ARM: mach-footbridge: retire custom LED code") +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-footbridge/ebsa285.c | 22 +++++++++++++--------- + 1 file changed, 13 insertions(+), 9 deletions(-) + +--- a/arch/arm/mach-footbridge/ebsa285.c ++++ b/arch/arm/mach-footbridge/ebsa285.c +@@ -30,21 +30,24 @@ static const struct { + const char *name; + const char *trigger; + } ebsa285_leds[] = { +- { "ebsa285:amber", "heartbeat", }, +- { "ebsa285:green", "cpu0", }, ++ { "ebsa285:amber", "cpu0", }, ++ { "ebsa285:green", "heartbeat", }, + { "ebsa285:red",}, + }; + ++static unsigned char hw_led_state; ++ + static void ebsa285_led_set(struct led_classdev *cdev, + enum led_brightness b) + { + struct ebsa285_led *led = container_of(cdev, + struct ebsa285_led, cdev); + +- if (b != LED_OFF) +- *XBUS_LEDS |= led->mask; ++ if (b == LED_OFF) ++ hw_led_state |= led->mask; + else +- *XBUS_LEDS &= ~led->mask; ++ hw_led_state &= ~led->mask; ++ *XBUS_LEDS = hw_led_state; + } + + static enum led_brightness ebsa285_led_get(struct led_classdev *cdev) +@@ -52,18 +55,19 @@ static enum led_brightness ebsa285_led_g + struct ebsa285_led *led = container_of(cdev, + struct ebsa285_led, cdev); + +- return (*XBUS_LEDS & led->mask) ? LED_FULL : LED_OFF; ++ return hw_led_state & led->mask ? LED_OFF : LED_FULL; + } + + static int __init ebsa285_leds_init(void) + { + int i; + +- if (machine_is_ebsa285()) ++ if (!machine_is_ebsa285()) + return -ENODEV; + +- /* 3 LEDS All ON */ +- *XBUS_LEDS |= XBUS_LED_AMBER | XBUS_LED_GREEN | XBUS_LED_RED; ++ /* 3 LEDS all off */ ++ hw_led_state = XBUS_LED_AMBER | XBUS_LED_GREEN | XBUS_LED_RED; ++ *XBUS_LEDS = hw_led_state; + + for (i = 0; i < ARRAY_SIZE(ebsa285_leds); i++) { + struct ebsa285_led *led; diff --git a/queue-3.12/arm-footbridge-fix-vga-initialisation.patch b/queue-3.12/arm-footbridge-fix-vga-initialisation.patch new file mode 100644 index 00000000000..7f7d64a33c8 --- /dev/null +++ b/queue-3.12/arm-footbridge-fix-vga-initialisation.patch @@ -0,0 +1,77 @@ +From 43659222e7a0113912ed02f6b2231550b3e471ac Mon Sep 17 00:00:00 2001 +From: Russell King +Date: Thu, 28 Nov 2013 21:55:41 +0000 +Subject: ARM: footbridge: fix VGA initialisation + +From: Russell King + +commit 43659222e7a0113912ed02f6b2231550b3e471ac upstream. + +It's no good setting vga_base after the VGA console has been +initialised, because if we do that we get this: + +Unable to handle kernel paging request at virtual address 000b8000 +pgd = c0004000 +[000b8000] *pgd=07ffc831, *pte=00000000, *ppte=00000000 +0Internal error: Oops: 5017 [#1] ARM +Modules linked in: +CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.0+ #49 +task: c03e2974 ti: c03d8000 task.ti: c03d8000 +PC is at vgacon_startup+0x258/0x39c +LR is at request_resource+0x10/0x1c +pc : [] lr : [] psr: 60000053 +sp : c03d9f68 ip : 000b8000 fp : c03d9f8c +r10: 000055aa r9 : 4401a103 r8 : ffffaa55 +r7 : c03e357c r6 : c051b460 r5 : 000000ff r4 : 000c0000 +r3 : 000b8000 r2 : c03e0514 r1 : 00000000 r0 : c0304971 +Flags: nZCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment kernel + +which is an access to the 0xb8000 without the PCI offset required to +make it work. + +Fixes: cc22b4c18540 ("ARM: set vga memory base at run-time") +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-footbridge/common.c | 3 +++ + arch/arm/mach-footbridge/dc21285.c | 2 -- + 2 files changed, 3 insertions(+), 2 deletions(-) + +--- a/arch/arm/mach-footbridge/common.c ++++ b/arch/arm/mach-footbridge/common.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include