|
@@ -2017,7 +2017,6 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
|
|
|
/* We need musb_read/write functions initialized for PM */
|
|
|
pm_runtime_use_autosuspend(musb->controller);
|
|
|
pm_runtime_set_autosuspend_delay(musb->controller, 200);
|
|
|
- pm_runtime_irq_safe(musb->controller);
|
|
|
pm_runtime_enable(musb->controller);
|
|
|
|
|
|
/* The musb_platform_init() call:
|
|
@@ -2095,6 +2094,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
|
|
|
#ifndef CONFIG_MUSB_PIO_ONLY
|
|
|
if (!musb->ops->dma_init || !musb->ops->dma_exit) {
|
|
|
dev_err(dev, "DMA controller not set\n");
|
|
|
+ status = -ENODEV;
|
|
|
goto fail2;
|
|
|
}
|
|
|
musb_dma_controller_create = musb->ops->dma_init;
|
|
@@ -2218,6 +2218,12 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
|
|
|
|
|
|
pm_runtime_put(musb->controller);
|
|
|
|
|
|
+ /*
|
|
|
+ * For why this is currently needed, see commit 3e43a0725637
|
|
|
+ * ("usb: musb: core: add pm_runtime_irq_safe()")
|
|
|
+ */
|
|
|
+ pm_runtime_irq_safe(musb->controller);
|
|
|
+
|
|
|
return 0;
|
|
|
|
|
|
fail5:
|