From a0cb36dad01f62a5c120a1b5f8fc29e7e938ac50 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 15 May 2015 10:14:53 -0700 Subject: [PATCH] 4.0-stable patches added patches: arm-dts-imx23-olinuxino-fix-dr_mode-of-usb0.patch arm-dts-imx23-olinuxino-fix-polarity-of-led-gpio.patch arm-dts-imx25-add-pwm-cells-to-pwm4.patch arm-dts-imx28-fix-auart4-tx-dma-interrupt-name.patch arm-dts-imx6-phyflex-usb-vbus-control-is-active-high.patch arm-dts-omap3-n900-add-microphone-bias-voltages.patch arm-mvebu-armada-xp-openblocks-ax3-4-disable-internal-rtc.patch arm-net-fix-emit_udiv-for-bpf_alu-bpf_div-bpf_k-intruction.patch arm-omap2-fix-omap-off-idle-power-consumption-creeping-up.patch arm-ux500-enable-gpio-regulator-for-sd-card-for-href-boards.patch arm-ux500-enable-gpio-regulator-for-sd-card-for-snowball.patch arm-ux500-move-gpio-regulator-for-sd-card-into-board-dtss.patch drm-zero-out-invalid-vblank-timestamp-in-drm_update_vblank_count.patch --- ...-imx23-olinuxino-fix-dr_mode-of-usb0.patch | 47 +++++++ ...3-olinuxino-fix-polarity-of-led-gpio.patch | 44 ++++++ .../arm-dts-imx25-add-pwm-cells-to-pwm4.patch | 32 +++++ ...x28-fix-auart4-tx-dma-interrupt-name.patch | 45 ++++++ ...flex-usb-vbus-control-is-active-high.patch | 39 ++++++ ...p3-n900-add-microphone-bias-voltages.patch | 45 ++++++ ...penblocks-ax3-4-disable-internal-rtc.patch | 36 +++++ ...for-bpf_alu-bpf_div-bpf_k-intruction.patch | 50 +++++++ ...f-idle-power-consumption-creeping-up.patch | 128 ++++++++++++++++++ ...egulator-for-sd-card-for-href-boards.patch | 30 ++++ ...o-regulator-for-sd-card-for-snowball.patch | 30 ++++ ...egulator-for-sd-card-into-board-dtss.patch | 103 ++++++++++++++ ...timestamp-in-drm_update_vblank_count.patch | 62 +++++++++ queue-4.0/series | 13 ++ 14 files changed, 704 insertions(+) create mode 100644 queue-4.0/arm-dts-imx23-olinuxino-fix-dr_mode-of-usb0.patch create mode 100644 queue-4.0/arm-dts-imx23-olinuxino-fix-polarity-of-led-gpio.patch create mode 100644 queue-4.0/arm-dts-imx25-add-pwm-cells-to-pwm4.patch create mode 100644 queue-4.0/arm-dts-imx28-fix-auart4-tx-dma-interrupt-name.patch create mode 100644 queue-4.0/arm-dts-imx6-phyflex-usb-vbus-control-is-active-high.patch create mode 100644 queue-4.0/arm-dts-omap3-n900-add-microphone-bias-voltages.patch create mode 100644 queue-4.0/arm-mvebu-armada-xp-openblocks-ax3-4-disable-internal-rtc.patch create mode 100644 queue-4.0/arm-net-fix-emit_udiv-for-bpf_alu-bpf_div-bpf_k-intruction.patch create mode 100644 queue-4.0/arm-omap2-fix-omap-off-idle-power-consumption-creeping-up.patch create mode 100644 queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-href-boards.patch create mode 100644 queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-snowball.patch create mode 100644 queue-4.0/arm-ux500-move-gpio-regulator-for-sd-card-into-board-dtss.patch create mode 100644 queue-4.0/drm-zero-out-invalid-vblank-timestamp-in-drm_update_vblank_count.patch diff --git a/queue-4.0/arm-dts-imx23-olinuxino-fix-dr_mode-of-usb0.patch b/queue-4.0/arm-dts-imx23-olinuxino-fix-dr_mode-of-usb0.patch new file mode 100644 index 00000000000..b89088a38e6 --- /dev/null +++ b/queue-4.0/arm-dts-imx23-olinuxino-fix-dr_mode-of-usb0.patch @@ -0,0 +1,47 @@ +From 0fdebe1a2f4d3a8fc03754022fabf8ba95e131a3 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Tue, 14 Apr 2015 20:37:26 +0000 +Subject: ARM: dts: imx23-olinuxino: Fix dr_mode of usb0 + +From: Stefan Wahren + +commit 0fdebe1a2f4d3a8fc03754022fabf8ba95e131a3 upstream. + +The dr_mode of usb0 on imx233-olinuxino is left to default "otg". +Since the green LED (GPIO2_1) on imx233-olinuxino is connected to the +same pin as USB_OTG_ID it's possible to disable USB host by LED toggling: + +echo 0 > /sys/class/leds/green/brightness +[ 1068.890000] ci_hdrc ci_hdrc.0: remove, state 1 +[ 1068.890000] usb usb1: USB disconnect, device number 1 +[ 1068.920000] usb 1-1: USB disconnect, device number 2 +[ 1068.920000] usb 1-1.1: USB disconnect, device number 3 +[ 1069.070000] usb 1-1.2: USB disconnect, device number 4 +[ 1069.450000] ci_hdrc ci_hdrc.0: USB bus 1 deregistered +[ 1074.460000] ci_hdrc ci_hdrc.0: timeout waiting for 00000800 in 11 + +This patch fixes the issue by setting dr_mode to "host" in the dts file. + +Reported-by: Harald Geyer +Signed-off-by: Stefan Wahren +Reviewed-by: Fabio Estevam +Reviewed-by: Marek Vasut +Acked-by: Peter Chen +Fixes: b49312948285 ("ARM: dts: imx23-olinuxino: Add USB host support") +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/imx23-olinuxino.dts | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/imx23-olinuxino.dts ++++ b/arch/arm/boot/dts/imx23-olinuxino.dts +@@ -93,6 +93,7 @@ + + ahb@80080000 { + usb0: usb@80080000 { ++ dr_mode = "host"; + vbus-supply = <®_usb0_vbus>; + status = "okay"; + }; diff --git a/queue-4.0/arm-dts-imx23-olinuxino-fix-polarity-of-led-gpio.patch b/queue-4.0/arm-dts-imx23-olinuxino-fix-polarity-of-led-gpio.patch new file mode 100644 index 00000000000..5f14fe51e9a --- /dev/null +++ b/queue-4.0/arm-dts-imx23-olinuxino-fix-polarity-of-led-gpio.patch @@ -0,0 +1,44 @@ +From cfe8c59762244251fd9a5e281d48808095ff4090 Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Tue, 14 Apr 2015 11:05:04 -0300 +Subject: ARM: dts: imx23-olinuxino: Fix polarity of LED GPIO + +From: Fabio Estevam + +commit cfe8c59762244251fd9a5e281d48808095ff4090 upstream. + +On imx23-olinuxino the LED turns on when level logic high is aplied to +GPIO2_1. + +Fix the gpios property accordingly. + +Fixes: b34aa1850244 ("ARM: dts: imx23-olinuxino: Remove unneeded "default-on"") +Reported-by: Stefan Wahren +Signed-off-by: Fabio Estevam +Tested-by: Stefan Wahren +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/imx23-olinuxino.dts | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/imx23-olinuxino.dts ++++ b/arch/arm/boot/dts/imx23-olinuxino.dts +@@ -12,6 +12,7 @@ + */ + + /dts-v1/; ++#include + #include "imx23.dtsi" + + / { +@@ -123,7 +124,7 @@ + + user { + label = "green"; +- gpios = <&gpio2 1 1>; ++ gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; + }; + }; + }; diff --git a/queue-4.0/arm-dts-imx25-add-pwm-cells-to-pwm4.patch b/queue-4.0/arm-dts-imx25-add-pwm-cells-to-pwm4.patch new file mode 100644 index 00000000000..a49086def67 --- /dev/null +++ b/queue-4.0/arm-dts-imx25-add-pwm-cells-to-pwm4.patch @@ -0,0 +1,32 @@ +From f90d3f0d0a11fa77918fd5497cb616dd2faa8431 Mon Sep 17 00:00:00 2001 +From: Markus Pargmann +Date: Fri, 24 Apr 2015 09:27:33 +0200 +Subject: ARM: dts: imx25: Add #pwm-cells to pwm4 + +From: Markus Pargmann + +commit f90d3f0d0a11fa77918fd5497cb616dd2faa8431 upstream. + +The property '#pwm-cells' is currently missing. It is not possible to +use pwm4 without this property. + +Signed-off-by: Markus Pargmann +Fixes: 5658a68fb578 ("ARM i.MX25: Add devicetree") +Reviewed-by: Fabio Estevam +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/imx25.dtsi | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/imx25.dtsi ++++ b/arch/arm/boot/dts/imx25.dtsi +@@ -428,6 +428,7 @@ + + pwm4: pwm@53fc8000 { + compatible = "fsl,imx25-pwm", "fsl,imx27-pwm"; ++ #pwm-cells = <2>; + reg = <0x53fc8000 0x4000>; + clocks = <&clks 108>, <&clks 52>; + clock-names = "ipg", "per"; diff --git a/queue-4.0/arm-dts-imx28-fix-auart4-tx-dma-interrupt-name.patch b/queue-4.0/arm-dts-imx28-fix-auart4-tx-dma-interrupt-name.patch new file mode 100644 index 00000000000..5262c5999fa --- /dev/null +++ b/queue-4.0/arm-dts-imx28-fix-auart4-tx-dma-interrupt-name.patch @@ -0,0 +1,45 @@ +From 4ada77e37a773168fea484899201e272ab44ba8b Mon Sep 17 00:00:00 2001 +From: Marek Vasut +Date: Fri, 24 Apr 2015 13:29:47 +0200 +Subject: ARM: dts: imx28: Fix AUART4 TX-DMA interrupt name + +From: Marek Vasut + +commit 4ada77e37a773168fea484899201e272ab44ba8b upstream. + +Fix a typo in the TX DMA interrupt name for AUART4. +This patch makes AUART4 operational again. + +Signed-off-by: Marek Vasut +Fixes: f30fb03d4d3a ("ARM: dts: add generic DMA device tree binding for mxs-dma") +Acked-by: Stefan Wahren +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt | 2 +- + arch/arm/boot/dts/imx28.dtsi | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt ++++ b/Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt +@@ -38,7 +38,7 @@ dma_apbx: dma-apbx@80024000 { + 80 81 68 69 + 70 71 72 73 + 74 75 76 77>; +- interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty", ++ interrupt-names = "auart4-rx", "auart4-tx", "spdif-tx", "empty", + "saif0", "saif1", "i2c0", "i2c1", + "auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx", + "auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx"; +--- a/arch/arm/boot/dts/imx28.dtsi ++++ b/arch/arm/boot/dts/imx28.dtsi +@@ -900,7 +900,7 @@ + 80 81 68 69 + 70 71 72 73 + 74 75 76 77>; +- interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty", ++ interrupt-names = "auart4-rx", "auart4-tx", "spdif-tx", "empty", + "saif0", "saif1", "i2c0", "i2c1", + "auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx", + "auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx"; diff --git a/queue-4.0/arm-dts-imx6-phyflex-usb-vbus-control-is-active-high.patch b/queue-4.0/arm-dts-imx6-phyflex-usb-vbus-control-is-active-high.patch new file mode 100644 index 00000000000..882c890aca0 --- /dev/null +++ b/queue-4.0/arm-dts-imx6-phyflex-usb-vbus-control-is-active-high.patch @@ -0,0 +1,39 @@ +From 7f8d49dcc66a3dd3a8fc3078330b8fb9e616ad3f Mon Sep 17 00:00:00 2001 +From: Philipp Zabel +Date: Tue, 21 Apr 2015 15:59:53 +0200 +Subject: ARM: dts: imx6: phyFLEX: USB VBUS control is active-high + +From: Philipp Zabel + +commit 7f8d49dcc66a3dd3a8fc3078330b8fb9e616ad3f upstream. + +The fixed-regulator bindings require a separate property enable-active-high, +the standard gpio phandle property polarity setting is ignored. + +Signed-off-by: Philipp Zabel +Fixes: 4fe69a934b1f ("ARM: dts: Add Phytec pfla02 with i.MX6 DualLite/Solo") +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi +@@ -31,6 +31,7 @@ + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio4 15 0>; ++ enable-active-high; + }; + + reg_usb_h1_vbus: regulator@1 { +@@ -40,6 +41,7 @@ + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio1 0 0>; ++ enable-active-high; + }; + }; + diff --git a/queue-4.0/arm-dts-omap3-n900-add-microphone-bias-voltages.patch b/queue-4.0/arm-dts-omap3-n900-add-microphone-bias-voltages.patch new file mode 100644 index 00000000000..e93d2c0a127 --- /dev/null +++ b/queue-4.0/arm-dts-omap3-n900-add-microphone-bias-voltages.patch @@ -0,0 +1,45 @@ +From 1819e3034ee26ffadc71880064ed8b8e7d74f52c Mon Sep 17 00:00:00 2001 +From: Pavel Machek +Date: Sun, 1 Mar 2015 21:07:08 +0200 +Subject: ARM: dts: OMAP3-N900: Add microphone bias voltages + +From: Pavel Machek + +commit 1819e3034ee26ffadc71880064ed8b8e7d74f52c upstream. + +N900 audio recording needs that codec provides bias voltage for integrated +digital microphone and headset microphone depending which one is used. +Digital microphone uses 2 V bias and it comes from the codec A part. Codec +B part drives the headset microphone bias and that is set to 2.5 V. + +Signed-off-by: Pavel Machek +[Jarkko: Headset mic bias changed to 2 (2.5 V) as it was before commit +e2e8bfdf6157 ("ASoC: tlv320aic3x: Convert mic bias to a supply widget")] +Signed-off-by: Jarkko Nikula +Signed-off-by: Tony Lindgren +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/omap3-n900.dts | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/arch/arm/boot/dts/omap3-n900.dts ++++ b/arch/arm/boot/dts/omap3-n900.dts +@@ -484,6 +484,8 @@ + DRVDD-supply = <&vmmc2>; + IOVDD-supply = <&vio>; + DVDD-supply = <&vio>; ++ ++ ai3x-micbias-vg = <1>; + }; + + tlv320aic3x_aux: tlv320aic3x@19 { +@@ -495,6 +497,8 @@ + DRVDD-supply = <&vmmc2>; + IOVDD-supply = <&vio>; + DVDD-supply = <&vio>; ++ ++ ai3x-micbias-vg = <2>; + }; + + tsl2563: tsl2563@29 { diff --git a/queue-4.0/arm-mvebu-armada-xp-openblocks-ax3-4-disable-internal-rtc.patch b/queue-4.0/arm-mvebu-armada-xp-openblocks-ax3-4-disable-internal-rtc.patch new file mode 100644 index 00000000000..902019fe3a2 --- /dev/null +++ b/queue-4.0/arm-mvebu-armada-xp-openblocks-ax3-4-disable-internal-rtc.patch @@ -0,0 +1,36 @@ +From 750e30d4076ae5e02ad13a376e96c95a2627742c Mon Sep 17 00:00:00 2001 +From: Gregory CLEMENT +Date: Tue, 14 Apr 2015 11:50:13 +0200 +Subject: ARM: mvebu: armada-xp-openblocks-ax3-4: Disable internal RTC + +From: Gregory CLEMENT + +commit 750e30d4076ae5e02ad13a376e96c95a2627742c upstream. + +There is no crystal connected to the internal RTC on the Open Block +AX3. So let's disable it in order to prevent the kernel probing the +driver uselessly. Eventually this patches removes the following +warning message from the boot log: +"rtc-mv d0010300.rtc: internal RTC not ticking" + +Acked-by: Andrew Lunn +Signed-off-by: Gregory CLEMENT +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts ++++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts +@@ -105,6 +105,10 @@ + }; + + internal-regs { ++ rtc@10300 { ++ /* No crystal connected to the internal RTC */ ++ status = "disabled"; ++ }; + serial@12000 { + status = "okay"; + }; diff --git a/queue-4.0/arm-net-fix-emit_udiv-for-bpf_alu-bpf_div-bpf_k-intruction.patch b/queue-4.0/arm-net-fix-emit_udiv-for-bpf_alu-bpf_div-bpf_k-intruction.patch new file mode 100644 index 00000000000..daae8a42798 --- /dev/null +++ b/queue-4.0/arm-net-fix-emit_udiv-for-bpf_alu-bpf_div-bpf_k-intruction.patch @@ -0,0 +1,50 @@ +From 19fc99d0c6ba7d9b65456496b5bb2169d5f74cd0 Mon Sep 17 00:00:00 2001 +From: Nicolas Schichan +Date: Wed, 6 May 2015 18:31:56 +0200 +Subject: ARM: net fix emit_udiv() for BPF_ALU | BPF_DIV | BPF_K intruction. + +From: Nicolas Schichan + +commit 19fc99d0c6ba7d9b65456496b5bb2169d5f74cd0 upstream. + +In that case, emit_udiv() will be called with rn == ARM_R0 (r_scratch) +and loading rm first into ARM_R0 will result in jit_udiv() function +being called the same dividend and divisor. Fix that by loading rn +first into ARM_R1 and then rm into ARM_R0. + +Signed-off-by: Nicolas Schichan +Fixes: aee636c4809f (bpf: do not use reciprocal divide) +Acked-by: Mircea Gherzan +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/net/bpf_jit_32.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +--- a/arch/arm/net/bpf_jit_32.c ++++ b/arch/arm/net/bpf_jit_32.c +@@ -449,10 +449,21 @@ static inline void emit_udiv(u8 rd, u8 r + return; + } + #endif +- if (rm != ARM_R0) +- emit(ARM_MOV_R(ARM_R0, rm), ctx); ++ ++ /* ++ * For BPF_ALU | BPF_DIV | BPF_K instructions, rm is ARM_R4 ++ * (r_A) and rn is ARM_R0 (r_scratch) so load rn first into ++ * ARM_R1 to avoid accidentally overwriting ARM_R0 with rm ++ * before using it as a source for ARM_R1. ++ * ++ * For BPF_ALU | BPF_DIV | BPF_X rm is ARM_R4 (r_A) and rn is ++ * ARM_R5 (r_X) so there is no particular register overlap ++ * issues. ++ */ + if (rn != ARM_R1) + emit(ARM_MOV_R(ARM_R1, rn), ctx); ++ if (rm != ARM_R0) ++ emit(ARM_MOV_R(ARM_R0, rm), ctx); + + ctx->seen |= SEEN_CALL; + emit_mov_i(ARM_R3, (u32)jit_udiv, ctx); diff --git a/queue-4.0/arm-omap2-fix-omap-off-idle-power-consumption-creeping-up.patch b/queue-4.0/arm-omap2-fix-omap-off-idle-power-consumption-creeping-up.patch new file mode 100644 index 00000000000..4a7f8cfd17c --- /dev/null +++ b/queue-4.0/arm-omap2-fix-omap-off-idle-power-consumption-creeping-up.patch @@ -0,0 +1,128 @@ +From 102bcb6ed2d1c3ffcc7269afc957c2df11942085 Mon Sep 17 00:00:00 2001 +From: Tony Lindgren +Date: Mon, 4 May 2015 08:54:41 -0700 +Subject: ARM: OMAP2+: Fix omap off idle power consumption creeping up + +From: Tony Lindgren + +commit 102bcb6ed2d1c3ffcc7269afc957c2df11942085 upstream. + +If we use a combination of VMODE and I2C4 for retention modes, +eventually the off idle power consumption will creep up by about +23mW, even during off mode with I2C4 always staying enabled. + +Turns out this is because of erratum i531 "Extra Power Consumed +When Repeated Start Operation Mode Is Enabled on I2C Interface +Dedicated for Smart Reflex (I2C4)" as pointed out by Nishanth +Menon . + +Let's fix the issue by adding i2c_cfg_clear_mask for the bits +to clear when initializing the I2C4 adapter so we can clear +SREN bit that drives the I2C4 lines low otherwise when there +is no traffic. + +Fixes: 3b8c4ebb7630 ("ARM: OMAP3: Fix idle mode signaling for +sys_clkreq and sys_off_mode") +Cc: Kevin Hilman +Cc: Tero Kristo +Reviewed-by: Nishanth Menon +Signed-off-by: Tony Lindgren +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/mach-omap2/prm-regbits-34xx.h | 1 + + arch/arm/mach-omap2/prm-regbits-44xx.h | 1 + + arch/arm/mach-omap2/vc.c | 12 ++++++++++-- + arch/arm/mach-omap2/vc.h | 2 ++ + arch/arm/mach-omap2/vc3xxx_data.c | 1 + + arch/arm/mach-omap2/vc44xx_data.c | 1 + + 6 files changed, 16 insertions(+), 2 deletions(-) + +--- a/arch/arm/mach-omap2/prm-regbits-34xx.h ++++ b/arch/arm/mach-omap2/prm-regbits-34xx.h +@@ -112,6 +112,7 @@ + #define OMAP3430_VC_CMD_ONLP_SHIFT 16 + #define OMAP3430_VC_CMD_RET_SHIFT 8 + #define OMAP3430_VC_CMD_OFF_SHIFT 0 ++#define OMAP3430_SREN_MASK (1 << 4) + #define OMAP3430_HSEN_MASK (1 << 3) + #define OMAP3430_MCODE_MASK (0x7 << 0) + #define OMAP3430_VALID_MASK (1 << 24) +--- a/arch/arm/mach-omap2/prm-regbits-44xx.h ++++ b/arch/arm/mach-omap2/prm-regbits-44xx.h +@@ -35,6 +35,7 @@ + #define OMAP4430_GLOBAL_WARM_SW_RST_SHIFT 1 + #define OMAP4430_GLOBAL_WUEN_MASK (1 << 16) + #define OMAP4430_HSMCODE_MASK (0x7 << 0) ++#define OMAP4430_SRMODEEN_MASK (1 << 4) + #define OMAP4430_HSMODEEN_MASK (1 << 3) + #define OMAP4430_HSSCLL_SHIFT 24 + #define OMAP4430_ICEPICK_RST_SHIFT 9 +--- a/arch/arm/mach-omap2/vc.c ++++ b/arch/arm/mach-omap2/vc.c +@@ -316,7 +316,8 @@ static void __init omap3_vc_init_pmic_si + * idle. And we can also scale voltages to zero for off-idle. + * Note that no actual voltage scaling during off-idle will + * happen unless the board specific twl4030 PMIC scripts are +- * loaded. ++ * loaded. See also omap_vc_i2c_init for comments regarding ++ * erratum i531. + */ + val = voltdm->read(OMAP3_PRM_VOLTCTRL_OFFSET); + if (!(val & OMAP3430_PRM_VOLTCTRL_SEL_OFF)) { +@@ -704,9 +705,16 @@ static void __init omap_vc_i2c_init(stru + return; + } + ++ /* ++ * Note that for omap3 OMAP3430_SREN_MASK clears SREN to work around ++ * erratum i531 "Extra Power Consumed When Repeated Start Operation ++ * Mode Is Enabled on I2C Interface Dedicated for Smart Reflex (I2C4)". ++ * Otherwise I2C4 eventually leads into about 23mW extra power being ++ * consumed even during off idle using VMODE. ++ */ + i2c_high_speed = voltdm->pmic->i2c_high_speed; + if (i2c_high_speed) +- voltdm->rmw(vc->common->i2c_cfg_hsen_mask, ++ voltdm->rmw(vc->common->i2c_cfg_clear_mask, + vc->common->i2c_cfg_hsen_mask, + vc->common->i2c_cfg_reg); + +--- a/arch/arm/mach-omap2/vc.h ++++ b/arch/arm/mach-omap2/vc.h +@@ -34,6 +34,7 @@ struct voltagedomain; + * @cmd_ret_shift: RET field shift in PRM_VC_CMD_VAL_* register + * @cmd_off_shift: OFF field shift in PRM_VC_CMD_VAL_* register + * @i2c_cfg_reg: I2C configuration register offset ++ * @i2c_cfg_clear_mask: high-speed mode bit clear mask in I2C config register + * @i2c_cfg_hsen_mask: high-speed mode bit field mask in I2C config register + * @i2c_mcode_mask: MCODE field mask for I2C config register + * +@@ -52,6 +53,7 @@ struct omap_vc_common { + u8 cmd_ret_shift; + u8 cmd_off_shift; + u8 i2c_cfg_reg; ++ u8 i2c_cfg_clear_mask; + u8 i2c_cfg_hsen_mask; + u8 i2c_mcode_mask; + }; +--- a/arch/arm/mach-omap2/vc3xxx_data.c ++++ b/arch/arm/mach-omap2/vc3xxx_data.c +@@ -40,6 +40,7 @@ static struct omap_vc_common omap3_vc_co + .cmd_onlp_shift = OMAP3430_VC_CMD_ONLP_SHIFT, + .cmd_ret_shift = OMAP3430_VC_CMD_RET_SHIFT, + .cmd_off_shift = OMAP3430_VC_CMD_OFF_SHIFT, ++ .i2c_cfg_clear_mask = OMAP3430_SREN_MASK | OMAP3430_HSEN_MASK, + .i2c_cfg_hsen_mask = OMAP3430_HSEN_MASK, + .i2c_cfg_reg = OMAP3_PRM_VC_I2C_CFG_OFFSET, + .i2c_mcode_mask = OMAP3430_MCODE_MASK, +--- a/arch/arm/mach-omap2/vc44xx_data.c ++++ b/arch/arm/mach-omap2/vc44xx_data.c +@@ -42,6 +42,7 @@ static const struct omap_vc_common omap4 + .cmd_ret_shift = OMAP4430_RET_SHIFT, + .cmd_off_shift = OMAP4430_OFF_SHIFT, + .i2c_cfg_reg = OMAP4_PRM_VC_CFG_I2C_MODE_OFFSET, ++ .i2c_cfg_clear_mask = OMAP4430_SRMODEEN_MASK | OMAP4430_HSMODEEN_MASK, + .i2c_cfg_hsen_mask = OMAP4430_HSMODEEN_MASK, + .i2c_mcode_mask = OMAP4430_HSMCODE_MASK, + }; diff --git a/queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-href-boards.patch b/queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-href-boards.patch new file mode 100644 index 00000000000..a166aca3bec --- /dev/null +++ b/queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-href-boards.patch @@ -0,0 +1,30 @@ +From f9a8c3914ba85f19c3360b19612d77c47adb8942 Mon Sep 17 00:00:00 2001 +From: Ulf Hansson +Date: Mon, 20 Apr 2015 16:02:32 +0200 +Subject: ARM: ux500: Enable GPIO regulator for SD-card for HREF boards + +From: Ulf Hansson + +commit f9a8c3914ba85f19c3360b19612d77c47adb8942 upstream. + +Fixes: c94a4ab7af3f ("ARM: ux500: Disable the MMCI gpio-regulator by default") +Signed-off-by: Ulf Hansson +Reviewed-by: Bjorn Andersson +Signed-off-by: Linus Walleij +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/ste-href.dtsi | 2 -- + 1 file changed, 2 deletions(-) + +--- a/arch/arm/boot/dts/ste-href.dtsi ++++ b/arch/arm/boot/dts/ste-href.dtsi +@@ -124,8 +124,6 @@ + + states = <1800000 0x1 + 2900000 0x0>; +- +- status = "disabled"; + }; + + // External Micro SD slot diff --git a/queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-snowball.patch b/queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-snowball.patch new file mode 100644 index 00000000000..33f6b73a8ac --- /dev/null +++ b/queue-4.0/arm-ux500-enable-gpio-regulator-for-sd-card-for-snowball.patch @@ -0,0 +1,30 @@ +From 11133db7a836b0cb411faa048f07a38e994d1382 Mon Sep 17 00:00:00 2001 +From: Ulf Hansson +Date: Mon, 20 Apr 2015 16:02:33 +0200 +Subject: ARM: ux500: Enable GPIO regulator for SD-card for snowball + +From: Ulf Hansson + +commit 11133db7a836b0cb411faa048f07a38e994d1382 upstream. + +Fixes: c94a4ab7af3f ("ARM: ux500: Disable the MMCI gpio-regulator by default") +Signed-off-by: Ulf Hansson +Reviewed-by: Bjorn Andersson +Signed-off-by: Linus Walleij +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/ste-snowball.dts | 2 -- + 1 file changed, 2 deletions(-) + +--- a/arch/arm/boot/dts/ste-snowball.dts ++++ b/arch/arm/boot/dts/ste-snowball.dts +@@ -161,8 +161,6 @@ + + states = <1800000 0x1 + 2900000 0x0>; +- +- status = "disabled"; + }; + + // External Micro SD slot diff --git a/queue-4.0/arm-ux500-move-gpio-regulator-for-sd-card-into-board-dtss.patch b/queue-4.0/arm-ux500-move-gpio-regulator-for-sd-card-into-board-dtss.patch new file mode 100644 index 00000000000..c4d67920f11 --- /dev/null +++ b/queue-4.0/arm-ux500-move-gpio-regulator-for-sd-card-into-board-dtss.patch @@ -0,0 +1,103 @@ +From 53d2669844263fd5fdc70f0eb6a2eb8a21086d8e Mon Sep 17 00:00:00 2001 +From: Ulf Hansson +Date: Mon, 20 Apr 2015 16:02:31 +0200 +Subject: ARM: ux500: Move GPIO regulator for SD-card into board DTSs + +From: Ulf Hansson + +commit 53d2669844263fd5fdc70f0eb6a2eb8a21086d8e upstream. + +The GPIO regulator for the SD-card isn't a ux500 SOC configuration, but +instead it's specific to the board. Move the definition of it, into the +board DTSs. + +Fixes: c94a4ab7af3f ("ARM: ux500: Disable the MMCI gpio-regulator by default") +Signed-off-by: Ulf Hansson +Reviewed-by: Bjorn Andersson +Signed-off-by: Linus Walleij +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/ste-dbx5x0.dtsi | 17 ----------------- + arch/arm/boot/dts/ste-href.dtsi | 17 +++++++++++++++++ + arch/arm/boot/dts/ste-snowball.dts | 15 +++++++++++++++ + 3 files changed, 32 insertions(+), 17 deletions(-) + +--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi ++++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi +@@ -1017,23 +1017,6 @@ + status = "disabled"; + }; + +- vmmci: regulator-gpio { +- compatible = "regulator-gpio"; +- +- regulator-min-microvolt = <1800000>; +- regulator-max-microvolt = <2900000>; +- regulator-name = "mmci-reg"; +- regulator-type = "voltage"; +- +- startup-delay-us = <100>; +- enable-active-high; +- +- states = <1800000 0x1 +- 2900000 0x0>; +- +- status = "disabled"; +- }; +- + mcde@a0350000 { + compatible = "stericsson,mcde"; + reg = <0xa0350000 0x1000>, /* MCDE */ +--- a/arch/arm/boot/dts/ste-href.dtsi ++++ b/arch/arm/boot/dts/ste-href.dtsi +@@ -111,6 +111,23 @@ + pinctrl-1 = <&i2c3_sleep_mode>; + }; + ++ vmmci: regulator-gpio { ++ compatible = "regulator-gpio"; ++ ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <2900000>; ++ regulator-name = "mmci-reg"; ++ regulator-type = "voltage"; ++ ++ startup-delay-us = <100>; ++ enable-active-high; ++ ++ states = <1800000 0x1 ++ 2900000 0x0>; ++ ++ status = "disabled"; ++ }; ++ + // External Micro SD slot + sdi0_per1@80126000 { + arm,primecell-periphid = <0x10480180>; +--- a/arch/arm/boot/dts/ste-snowball.dts ++++ b/arch/arm/boot/dts/ste-snowball.dts +@@ -146,8 +146,23 @@ + }; + + vmmci: regulator-gpio { ++ compatible = "regulator-gpio"; ++ + gpios = <&gpio7 4 0x4>; + enable-gpio = <&gpio6 25 0x4>; ++ ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <2900000>; ++ regulator-name = "mmci-reg"; ++ regulator-type = "voltage"; ++ ++ startup-delay-us = <100>; ++ enable-active-high; ++ ++ states = <1800000 0x1 ++ 2900000 0x0>; ++ ++ status = "disabled"; + }; + + // External Micro SD slot diff --git a/queue-4.0/drm-zero-out-invalid-vblank-timestamp-in-drm_update_vblank_count.patch b/queue-4.0/drm-zero-out-invalid-vblank-timestamp-in-drm_update_vblank_count.patch new file mode 100644 index 00000000000..f3a38dfcbe9 --- /dev/null +++ b/queue-4.0/drm-zero-out-invalid-vblank-timestamp-in-drm_update_vblank_count.patch @@ -0,0 +1,62 @@ +From fdb68e09bbb1c981f24608d7022c7d93cc47b326 Mon Sep 17 00:00:00 2001 +From: Mario Kleiner +Date: Tue, 7 Apr 2015 06:31:09 +0200 +Subject: drm: Zero out invalid vblank timestamp in drm_update_vblank_count. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Mario Kleiner + +commit fdb68e09bbb1c981f24608d7022c7d93cc47b326 upstream. + +Since commit 844b03f27739135fe1fed2fef06da0ffc4c7a081 we make +sure that after vblank irq off, we return the last valid +(vblank count, vblank timestamp) pair to clients, e.g., during +modesets, which is good. + +An overlooked side effect of that commit for kms drivers without +support for precise vblank timestamping is that at vblank irq +enable, when we update the vblank counter from the hw counter, we +can't update the corresponding vblank timestamp, so now we have a +totally mismatched timestamp for the new count to confuse clients. + +Restore old client visible behaviour from before Linux 3.17, but +zero out the timestamp at vblank counter update (instead of disable +as in original implementation) if we can't generate a meaningful +timestamp immediately for the new vblank counter. This will fix +this regression, so callers know they need to retry again later +if they need a valid timestamp, but at the same time preserves +the improvements made in the commit mentioned above. + +Signed-off-by: Mario Kleiner +Cc: #v3.17+ +Signed-off-by: Greg Kroah-Hartman + +Cc: Ville Syrjälä +Cc: Daniel Vetter +Signed-off-by: Dave Airlie + +--- + drivers/gpu/drm/drm_irq.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +--- a/drivers/gpu/drm/drm_irq.c ++++ b/drivers/gpu/drm/drm_irq.c +@@ -131,12 +131,11 @@ static void drm_update_vblank_count(stru + + /* Reinitialize corresponding vblank timestamp if high-precision query + * available. Skip this step if query unsupported or failed. Will +- * reinitialize delayed at next vblank interrupt in that case. ++ * reinitialize delayed at next vblank interrupt in that case and ++ * assign 0 for now, to mark the vblanktimestamp as invalid. + */ +- if (rc) { +- tslot = atomic_read(&vblank->count) + diff; +- vblanktimestamp(dev, crtc, tslot) = t_vblank; +- } ++ tslot = atomic_read(&vblank->count) + diff; ++ vblanktimestamp(dev, crtc, tslot) = rc ? t_vblank : (struct timeval) {0, 0}; + + smp_mb__before_atomic(); + atomic_add(diff, &vblank->count); diff --git a/queue-4.0/series b/queue-4.0/series index 71dc091c843..3cf66c77129 100644 --- a/queue-4.0/series +++ b/queue-4.0/series @@ -23,3 +23,16 @@ revert-dm-crypt-fix-deadlock-when-async-crypto-algorithm-returns-ebusy.patch block-destroy-bdi-before-blockdev-is-unregistered.patch blk-mq-fix-race-between-timeout-and-cpu-hotplug.patch blk-mq-fix-cpu-hotplug-handling.patch +arm-dts-omap3-n900-add-microphone-bias-voltages.patch +arm-dts-imx25-add-pwm-cells-to-pwm4.patch +arm-dts-imx6-phyflex-usb-vbus-control-is-active-high.patch +arm-dts-imx28-fix-auart4-tx-dma-interrupt-name.patch +arm-dts-imx23-olinuxino-fix-dr_mode-of-usb0.patch +arm-dts-imx23-olinuxino-fix-polarity-of-led-gpio.patch +arm-mvebu-armada-xp-openblocks-ax3-4-disable-internal-rtc.patch +arm-omap2-fix-omap-off-idle-power-consumption-creeping-up.patch +arm-net-fix-emit_udiv-for-bpf_alu-bpf_div-bpf_k-intruction.patch +arm-ux500-move-gpio-regulator-for-sd-card-into-board-dtss.patch +arm-ux500-enable-gpio-regulator-for-sd-card-for-href-boards.patch +arm-ux500-enable-gpio-regulator-for-sd-card-for-snowball.patch +drm-zero-out-invalid-vblank-timestamp-in-drm_update_vblank_count.patch -- 2.47.3