Two omap regression fixes:
- Fix omap3 MUSB with DMA caused by driver core changes - Fix LCD DMA interrupt number for omap1 that did not get changed for sparse IRQ changes -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWMQmFAAoJEBvUPslcq6Vz0yEP/32OMPYtsJ/zic3zEl7yRTjc 3cTlQlerKrU1oP8Z6eg/Bgvi28yYQlNvuFDYzJ2cLWTbbjoaTjOHYLuoIaScIpM2 El/d/GvGCndET9HS4DMuMplj3OzXMsso38o6h5F6z51xVPtVpjitc36TcMxkeqD/ gQcXRORcvOIvVI7pdjfAm8UMd3r/kF/TsZ5nZhoXHd+UlQJ/boB0r/MmH0VXeI2x xNCoD9Xl/EaCMLVtWlcXU44CojOhncg5xrfsAsPDBL9aDGijwYRTvtcBatI5Phq/ 6fEO/hQhG503nH9Di9ozE+41c5ZjeLk9oGSIvkTjuttpvkvW6CeCLoqW4CuhmHrQ f8/Wj3TSJ4BBGdbEdPK13t4lXozvMsB1MvxlnoCnCANPIPNTt9DUCs27U4i4YWem PVLNcR5d7fxSa8mXgKswoRFMimhI9ZZN1MozI2ZwcxqftOgnbNejkmjd9kMwrXen X4lY1bMlE942zY+gzQvbFKmz6NM5QAAooF29LB/qJdWpLi3wZDU9bUXYGTlPQqC+ JzhfBFgPaEQnZJx+HxOpaWUmxeHyYQWmio2x+xi+0o/MfGnia9FYxtVCuoI8mCiR fyO4+T8jlnWTZEInm7s45OjsheFbw52PVWJysMWxoyWq0NLa/Af8lKFk/d0/5s8C /ditVCYYqxwCdWJe17Se =H1PE -----END PGP SIGNATURE----- Merge tag 'omap-for-v4.3/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Two omap regression fixes: - Fix omap3 MUSB with DMA caused by driver core changes - Fix LCD DMA interrupt number for omap1 that did not get changed for sparse IRQ changes * tag 'omap-for-v4.3/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: usb: musb: omap2430: Fix regression caused by driver core change ARM: OMAP1: fix incorrect INT_DMA_LCD Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
53dd186b3f
2 changed files with 24 additions and 7 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue