|
@@ -483,17 +483,6 @@ static int ipu_get_resources(struct ipu_crtc *ipu_crtc,
|
|
|
goto err_out;
|
|
|
}
|
|
|
|
|
|
- ipu_crtc->irq = ipu_idmac_channel_irq(ipu, ipu_crtc->ipu_ch,
|
|
|
- IPU_IRQ_EOF);
|
|
|
- ret = devm_request_irq(ipu_crtc->dev, ipu_crtc->irq, ipu_irq_handler, 0,
|
|
|
- "imx_drm", ipu_crtc);
|
|
|
- if (ret < 0) {
|
|
|
- dev_err(ipu_crtc->dev, "irq request failed with %d.\n", ret);
|
|
|
- goto err_out;
|
|
|
- }
|
|
|
-
|
|
|
- disable_irq(ipu_crtc->irq);
|
|
|
-
|
|
|
return 0;
|
|
|
err_out:
|
|
|
ipu_put_resources(ipu_crtc);
|
|
@@ -504,6 +493,7 @@ err_out:
|
|
|
static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
|
|
|
struct ipu_client_platformdata *pdata)
|
|
|
{
|
|
|
+ struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent);
|
|
|
int ret;
|
|
|
|
|
|
ret = ipu_get_resources(ipu_crtc, pdata);
|
|
@@ -522,6 +512,17 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
|
|
|
goto err_put_resources;
|
|
|
}
|
|
|
|
|
|
+ ipu_crtc->irq = ipu_idmac_channel_irq(ipu, ipu_crtc->ipu_ch,
|
|
|
+ IPU_IRQ_EOF);
|
|
|
+ ret = devm_request_irq(ipu_crtc->dev, ipu_crtc->irq, ipu_irq_handler, 0,
|
|
|
+ "imx_drm", ipu_crtc);
|
|
|
+ if (ret < 0) {
|
|
|
+ dev_err(ipu_crtc->dev, "irq request failed with %d.\n", ret);
|
|
|
+ goto err_put_resources;
|
|
|
+ }
|
|
|
+
|
|
|
+ disable_irq(ipu_crtc->irq);
|
|
|
+
|
|
|
return 0;
|
|
|
|
|
|
err_put_resources:
|