Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53dd186b authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'omap-for-v4.3/fixes-rc7' of...

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: default avatarOlof Johansson <olof@lixom.net>
parents 4db7062c 8f2279d5
Loading
Loading
Loading
Loading
+23 −6
Original line number Original line Diff line number Diff line
@@ -391,9 +391,20 @@ static int omap2430_musb_init(struct musb *musb)
	}
	}
	musb->isr = omap2430_musb_interrupt;
	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);
	status = pm_runtime_get_sync(dev);
	if (status < 0) {
	if (status < 0) {
		dev_err(dev, "pm_runtime_get_sync FAILED %d\n", status);
		dev_err(dev, "pm_runtime_get_sync FAILED %d\n", status);
		pm_runtime_put_sync(glue->dev);
		goto err1;
		goto err1;
	}
	}


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


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


err1:
err1:
@@ -626,7 +638,11 @@ static int omap2430_probe(struct platform_device *pdev)
		goto err2;
		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);
	ret = platform_device_add(musb);
	if (ret) {
	if (ret) {
@@ -675,11 +691,12 @@ static int omap2430_runtime_resume(struct device *dev)
	struct omap2430_glue		*glue = dev_get_drvdata(dev);
	struct omap2430_glue		*glue = dev_get_drvdata(dev);
	struct musb			*musb = glue_to_musb(glue);
	struct musb			*musb = glue_to_musb(glue);


	if (musb) {
	if (!musb)
		return -EPROBE_DEFER;

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


	return 0;
	return 0;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -17,7 +17,7 @@


#include <linux/platform_device.h>
#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 OMAP1_DMA_TOUT_IRQ		(1 << 0)
#define OMAP_DMA_DROP_IRQ		(1 << 1)
#define OMAP_DMA_DROP_IRQ		(1 << 1)