Skip to content

Commit

Permalink
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel…
Browse files Browse the repository at this point in the history
…/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
  • Loading branch information
torvalds committed Nov 1, 2015
2 parents 060b85b + 53dd186 commit 56ef9db
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 22 deletions.
8 changes: 4 additions & 4 deletions arch/arm/boot/dts/emev2-kzm9d.dts
Original file line number Diff line number Diff line change
Expand Up @@ -35,28 +35,28 @@

button@1 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
label = "DSW2-1";
linux,code = <KEY_1>;
gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
};
button@2 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
label = "DSW2-2";
linux,code = <KEY_2>;
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
};
button@3 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
label = "DSW2-3";
linux,code = <KEY_3>;
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
};
button@4 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
label = "DSW2-4";
linux,code = <KEY_4>;
gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
Expand Down
10 changes: 5 additions & 5 deletions arch/arm/boot/dts/ste-snowball.dts
Original file line number Diff line number Diff line change
Expand Up @@ -47,35 +47,35 @@

button@1 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <2>;
label = "userpb";
gpios = <&gpio1 0 0x4>;
};
button@2 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <3>;
label = "extkb1";
gpios = <&gpio4 23 0x4>;
};
button@3 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <4>;
label = "extkb2";
gpios = <&gpio4 24 0x4>;
};
button@4 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <5>;
label = "extkb3";
gpios = <&gpio5 1 0x4>;
};
button@5 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <6>;
label = "extkb4";
gpios = <&gpio5 2 0x4>;
Expand Down
12 changes: 6 additions & 6 deletions arch/arm64/boot/dts/arm/juno-motherboard.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -61,42 +61,42 @@

button@1 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <116>;
label = "POWER";
gpios = <&iofpga_gpio0 0 0x4>;
};
button@2 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <102>;
label = "HOME";
gpios = <&iofpga_gpio0 1 0x4>;
};
button@3 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <152>;
label = "RLOCK";
gpios = <&iofpga_gpio0 2 0x4>;
};
button@4 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <115>;
label = "VOL+";
gpios = <&iofpga_gpio0 3 0x4>;
};
button@5 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <114>;
label = "VOL-";
gpios = <&iofpga_gpio0 4 0x4>;
};
button@6 {
debounce_interval = <50>;
wakeup = <1>;
wakeup-source;
linux,code = <99>;
label = "NMI";
gpios = <&iofpga_gpio0 5 0x4>;
Expand Down
29 changes: 23 additions & 6 deletions drivers/usb/musb/omap2430.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,20 @@ static int omap2430_musb_init(struct musb *musb)
}
musb->isr = omap2430_musb_interrupt;

/*
* Enable runtime PM for musb parent (this driver). We can't
* do it earlier as struct musb is not yet allocated and we
* need to touch the musb registers for runtime PM.
*/
pm_runtime_enable(glue->dev);
status = pm_runtime_get_sync(glue->dev);
if (status < 0)
goto err1;

status = pm_runtime_get_sync(dev);
if (status < 0) {
dev_err(dev, "pm_runtime_get_sync FAILED %d\n", status);
pm_runtime_put_sync(glue->dev);
goto err1;
}

Expand Down Expand Up @@ -426,6 +437,7 @@ static int omap2430_musb_init(struct musb *musb)
phy_power_on(musb->phy);

pm_runtime_put_noidle(musb->controller);
pm_runtime_put_noidle(glue->dev);
return 0;

err1:
Expand Down Expand Up @@ -626,7 +638,11 @@ static int omap2430_probe(struct platform_device *pdev)
goto err2;
}

pm_runtime_enable(&pdev->dev);
/*
* Note that we cannot enable PM runtime yet for this
* driver as we need struct musb initialized first.
* See omap2430_musb_init above.
*/

ret = platform_device_add(musb);
if (ret) {
Expand Down Expand Up @@ -675,11 +691,12 @@ static int omap2430_runtime_resume(struct device *dev)
struct omap2430_glue *glue = dev_get_drvdata(dev);
struct musb *musb = glue_to_musb(glue);

if (musb) {
omap2430_low_level_init(musb);
musb_writel(musb->mregs, OTG_INTERFSEL,
musb->context.otg_interfsel);
}
if (!musb)
return -EPROBE_DEFER;

omap2430_low_level_init(musb);
musb_writel(musb->mregs, OTG_INTERFSEL,
musb->context.otg_interfsel);

return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion include/linux/omap-dma.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

#include <linux/platform_device.h>

#define INT_DMA_LCD 25
#define INT_DMA_LCD (NR_IRQS_LEGACY + 25)

#define OMAP1_DMA_TOUT_IRQ (1 << 0)
#define OMAP_DMA_DROP_IRQ (1 << 1)
Expand Down

0 comments on commit 56ef9db

Please sign in to comment.