aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-11-01 00:36:07 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-11-01 00:36:07 -0400
commit56ef9db24633cf6528d2ce736de0985eb125a3c1 (patch)
tree5651fa975dce33809537d34884e3d9d26b7f98d2
parent060b85b0d3064032b6810928973f8c7a15ab9c11 (diff)
parent53dd186b3fb7254ae0cb4d6648abb5589aaa8c2d (diff)
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson: "This should be our final batch of fixes for 4.3: - A patch from Sudeep Holla that fixes annotation of wakeup sources properly, old unused format seems to have spread through copying. - Two patches from Tony for OMAP. One dealing with MUSB setup problems due to runtime PM being enabled too early on the parent device. The other fixes IRQ numbering for OMAP1" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: usb: musb: omap2430: Fix regression caused by driver core change ARM: OMAP1: fix incorrect INT_DMA_LCD ARM: dts: fix gpio-keys wakeup-source property
-rw-r--r--arch/arm/boot/dts/emev2-kzm9d.dts8
-rw-r--r--arch/arm/boot/dts/ste-snowball.dts10
-rw-r--r--arch/arm64/boot/dts/arm/juno-motherboard.dtsi12
-rw-r--r--drivers/usb/musb/omap2430.c29
-rw-r--r--include/linux/omap-dma.h2
5 files changed, 39 insertions, 22 deletions
diff --git a/arch/arm/boot/dts/emev2-kzm9d.dts b/arch/arm/boot/dts/emev2-kzm9d.dts
index 955c24ee4a8c..8c24975e8f9d 100644
--- a/arch/arm/boot/dts/emev2-kzm9d.dts
+++ b/arch/arm/boot/dts/emev2-kzm9d.dts
@@ -35,28 +35,28 @@
35 35
36 button@1 { 36 button@1 {
37 debounce_interval = <50>; 37 debounce_interval = <50>;
38 wakeup = <1>; 38 wakeup-source;
39 label = "DSW2-1"; 39 label = "DSW2-1";
40 linux,code = <KEY_1>; 40 linux,code = <KEY_1>;
41 gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; 41 gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
42 }; 42 };
43 button@2 { 43 button@2 {
44 debounce_interval = <50>; 44 debounce_interval = <50>;
45 wakeup = <1>; 45 wakeup-source;
46 label = "DSW2-2"; 46 label = "DSW2-2";
47 linux,code = <KEY_2>; 47 linux,code = <KEY_2>;
48 gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; 48 gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
49 }; 49 };
50 button@3 { 50 button@3 {
51 debounce_interval = <50>; 51 debounce_interval = <50>;
52 wakeup = <1>; 52 wakeup-source;
53 label = "DSW2-3"; 53 label = "DSW2-3";
54 linux,code = <KEY_3>; 54 linux,code = <KEY_3>;
55 gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; 55 gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
56 }; 56 };
57 button@4 { 57 button@4 {
58 debounce_interval = <50>; 58 debounce_interval = <50>;
59 wakeup = <1>; 59 wakeup-source;
60 label = "DSW2-4"; 60 label = "DSW2-4";
61 linux,code = <KEY_4>; 61 linux,code = <KEY_4>;
62 gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>; 62 gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts
index 32a5ccb14e7e..e80e42163883 100644
--- a/arch/arm/boot/dts/ste-snowball.dts
+++ b/arch/arm/boot/dts/ste-snowball.dts
@@ -47,35 +47,35 @@
47 47
48 button@1 { 48 button@1 {
49 debounce_interval = <50>; 49 debounce_interval = <50>;
50 wakeup = <1>; 50 wakeup-source;
51 linux,code = <2>; 51 linux,code = <2>;
52 label = "userpb"; 52 label = "userpb";
53 gpios = <&gpio1 0 0x4>; 53 gpios = <&gpio1 0 0x4>;
54 }; 54 };
55 button@2 { 55 button@2 {
56 debounce_interval = <50>; 56 debounce_interval = <50>;
57 wakeup = <1>; 57 wakeup-source;
58 linux,code = <3>; 58 linux,code = <3>;
59 label = "extkb1"; 59 label = "extkb1";
60 gpios = <&gpio4 23 0x4>; 60 gpios = <&gpio4 23 0x4>;
61 }; 61 };
62 button@3 { 62 button@3 {
63 debounce_interval = <50>; 63 debounce_interval = <50>;
64 wakeup = <1>; 64 wakeup-source;
65 linux,code = <4>; 65 linux,code = <4>;
66 label = "extkb2"; 66 label = "extkb2";
67 gpios = <&gpio4 24 0x4>; 67 gpios = <&gpio4 24 0x4>;
68 }; 68 };
69 button@4 { 69 button@4 {
70 debounce_interval = <50>; 70 debounce_interval = <50>;
71 wakeup = <1>; 71 wakeup-source;
72 linux,code = <5>; 72 linux,code = <5>;
73 label = "extkb3"; 73 label = "extkb3";
74 gpios = <&gpio5 1 0x4>; 74 gpios = <&gpio5 1 0x4>;
75 }; 75 };
76 button@5 { 76 button@5 {
77 debounce_interval = <50>; 77 debounce_interval = <50>;
78 wakeup = <1>; 78 wakeup-source;
79 linux,code = <6>; 79 linux,code = <6>;
80 label = "extkb4"; 80 label = "extkb4";
81 gpios = <&gpio5 2 0x4>; 81 gpios = <&gpio5 2 0x4>;
diff --git a/arch/arm64/boot/dts/arm/juno-motherboard.dtsi b/arch/arm64/boot/dts/arm/juno-motherboard.dtsi
index 637e046f0e36..3c386680357e 100644
--- a/arch/arm64/boot/dts/arm/juno-motherboard.dtsi
+++ b/arch/arm64/boot/dts/arm/juno-motherboard.dtsi
@@ -61,42 +61,42 @@
61 61
62 button@1 { 62 button@1 {
63 debounce_interval = <50>; 63 debounce_interval = <50>;
64 wakeup = <1>; 64 wakeup-source;
65 linux,code = <116>; 65 linux,code = <116>;
66 label = "POWER"; 66 label = "POWER";
67 gpios = <&iofpga_gpio0 0 0x4>; 67 gpios = <&iofpga_gpio0 0 0x4>;
68 }; 68 };
69 button@2 { 69 button@2 {
70 debounce_interval = <50>; 70 debounce_interval = <50>;
71 wakeup = <1>; 71 wakeup-source;
72 linux,code = <102>; 72 linux,code = <102>;
73 label = "HOME"; 73 label = "HOME";
74 gpios = <&iofpga_gpio0 1 0x4>; 74 gpios = <&iofpga_gpio0 1 0x4>;
75 }; 75 };
76 button@3 { 76 button@3 {
77 debounce_interval = <50>; 77 debounce_interval = <50>;
78 wakeup = <1>; 78 wakeup-source;
79 linux,code = <152>; 79 linux,code = <152>;
80 label = "RLOCK"; 80 label = "RLOCK";
81 gpios = <&iofpga_gpio0 2 0x4>; 81 gpios = <&iofpga_gpio0 2 0x4>;
82 }; 82 };
83 button@4 { 83 button@4 {
84 debounce_interval = <50>; 84 debounce_interval = <50>;
85 wakeup = <1>; 85 wakeup-source;
86 linux,code = <115>; 86 linux,code = <115>;
87 label = "VOL+"; 87 label = "VOL+";
88 gpios = <&iofpga_gpio0 3 0x4>; 88 gpios = <&iofpga_gpio0 3 0x4>;
89 }; 89 };
90 button@5 { 90 button@5 {
91 debounce_interval = <50>; 91 debounce_interval = <50>;
92 wakeup = <1>; 92 wakeup-source;
93 linux,code = <114>; 93 linux,code = <114>;
94 label = "VOL-"; 94 label = "VOL-";
95 gpios = <&iofpga_gpio0 4 0x4>; 95 gpios = <&iofpga_gpio0 4 0x4>;
96 }; 96 };
97 button@6 { 97 button@6 {
98 debounce_interval = <50>; 98 debounce_interval = <50>;
99 wakeup = <1>; 99 wakeup-source;
100 linux,code = <99>; 100 linux,code = <99>;
101 label = "NMI"; 101 label = "NMI";
102 gpios = <&iofpga_gpio0 5 0x4>; 102 gpios = <&iofpga_gpio0 5 0x4>;
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 70f2b8a2e6cf..1bd9232ff76f 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -391,9 +391,20 @@ static int omap2430_musb_init(struct musb *musb)
391 } 391 }
392 musb->isr = omap2430_musb_interrupt; 392 musb->isr = omap2430_musb_interrupt;
393 393
394 /*
395 * Enable runtime PM for musb parent (this driver). We can't
396 * do it earlier as struct musb is not yet allocated and we
397 * need to touch the musb registers for runtime PM.
398 */
399 pm_runtime_enable(glue->dev);
400 status = pm_runtime_get_sync(glue->dev);
401 if (status < 0)
402 goto err1;
403
394 status = pm_runtime_get_sync(dev); 404 status = pm_runtime_get_sync(dev);
395 if (status < 0) { 405 if (status < 0) {
396 dev_err(dev, "pm_runtime_get_sync FAILED %d\n", status); 406 dev_err(dev, "pm_runtime_get_sync FAILED %d\n", status);
407 pm_runtime_put_sync(glue->dev);
397 goto err1; 408 goto err1;
398 } 409 }
399 410
@@ -426,6 +437,7 @@ static int omap2430_musb_init(struct musb *musb)
426 phy_power_on(musb->phy); 437 phy_power_on(musb->phy);
427 438
428 pm_runtime_put_noidle(musb->controller); 439 pm_runtime_put_noidle(musb->controller);
440 pm_runtime_put_noidle(glue->dev);
429 return 0; 441 return 0;
430 442
431err1: 443err1:
@@ -626,7 +638,11 @@ static int omap2430_probe(struct platform_device *pdev)
626 goto err2; 638 goto err2;
627 } 639 }
628 640
629 pm_runtime_enable(&pdev->dev); 641 /*
642 * Note that we cannot enable PM runtime yet for this
643 * driver as we need struct musb initialized first.
644 * See omap2430_musb_init above.
645 */
630 646
631 ret = platform_device_add(musb); 647 ret = platform_device_add(musb);
632 if (ret) { 648 if (ret) {
@@ -675,11 +691,12 @@ static int omap2430_runtime_resume(struct device *dev)
675 struct omap2430_glue *glue = dev_get_drvdata(dev); 691 struct omap2430_glue *glue = dev_get_drvdata(dev);
676 struct musb *musb = glue_to_musb(glue); 692 struct musb *musb = glue_to_musb(glue);
677 693
678 if (musb) { 694 if (!musb)
679 omap2430_low_level_init(musb); 695 return -EPROBE_DEFER;
680 musb_writel(musb->mregs, OTG_INTERFSEL, 696
681 musb->context.otg_interfsel); 697 omap2430_low_level_init(musb);
682 } 698 musb_writel(musb->mregs, OTG_INTERFSEL,
699 musb->context.otg_interfsel);
683 700
684 return 0; 701 return 0;
685} 702}
diff --git a/include/linux/omap-dma.h b/include/linux/omap-dma.h
index e5a70132a240..88fa8af2b937 100644
--- a/include/linux/omap-dma.h
+++ b/include/linux/omap-dma.h
@@ -17,7 +17,7 @@
17 17
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19 19
20#define INT_DMA_LCD 25 20#define INT_DMA_LCD (NR_IRQS_LEGACY + 25)
21 21
22#define OMAP1_DMA_TOUT_IRQ (1 << 0) 22#define OMAP1_DMA_TOUT_IRQ (1 << 0)
23#define OMAP_DMA_DROP_IRQ (1 << 1) 23#define OMAP_DMA_DROP_IRQ (1 << 1)