|
@@ -25,57 +25,43 @@ Signed-off-by: Maxime Ripard <[email protected]>
|
|
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
|
-@@ -1902,40 +1902,49 @@ static int vc4_hdmi_cec_init(struct vc4_
|
|
|
+@@ -1896,25 +1896,23 @@ static int vc4_hdmi_cec_init(struct vc4_
|
|
|
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
|
|
|
|
|
|
if (vc4_hdmi->variant->external_irq_controller) {
|
|
|
- ret = devm_request_threaded_irq(&pdev->dev,
|
|
|
- platform_get_irq_byname(pdev, "cec-rx"),
|
|
|
-- vc4_cec_irq_handler_rx_bare,
|
|
|
-- vc4_cec_irq_handler_rx_thread, 0,
|
|
|
-- "vc4 hdmi cec rx", vc4_hdmi);
|
|
|
+ ret = request_threaded_irq(platform_get_irq_byname(pdev, "cec-rx"),
|
|
|
-+ vc4_cec_irq_handler_rx_bare,
|
|
|
-+ vc4_cec_irq_handler_rx_thread, 0,
|
|
|
-+ "vc4 hdmi cec rx", vc4_hdmi);
|
|
|
+ vc4_cec_irq_handler_rx_bare,
|
|
|
+ vc4_cec_irq_handler_rx_thread, 0,
|
|
|
+ "vc4 hdmi cec rx", vc4_hdmi);
|
|
|
if (ret)
|
|
|
goto err_delete_cec_adap;
|
|
|
|
|
|
- ret = devm_request_threaded_irq(&pdev->dev,
|
|
|
- platform_get_irq_byname(pdev, "cec-tx"),
|
|
|
-- vc4_cec_irq_handler_tx_bare,
|
|
|
-- vc4_cec_irq_handler_tx_thread, 0,
|
|
|
-- "vc4 hdmi cec tx", vc4_hdmi);
|
|
|
+ ret = request_threaded_irq(platform_get_irq_byname(pdev, "cec-tx"),
|
|
|
-+ vc4_cec_irq_handler_tx_bare,
|
|
|
-+ vc4_cec_irq_handler_tx_thread, 0,
|
|
|
-+ "vc4 hdmi cec tx", vc4_hdmi);
|
|
|
+ vc4_cec_irq_handler_tx_bare,
|
|
|
+ vc4_cec_irq_handler_tx_thread, 0,
|
|
|
+ "vc4 hdmi cec tx", vc4_hdmi);
|
|
|
if (ret)
|
|
|
- goto err_delete_cec_adap;
|
|
|
+ goto err_remove_cec_rx_handler;
|
|
|
-+
|
|
|
} else {
|
|
|
HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, 0xffffffff);
|
|
|
|
|
|
- ret = devm_request_threaded_irq(&pdev->dev, platform_get_irq(pdev, 0),
|
|
|
-- vc4_cec_irq_handler,
|
|
|
-- vc4_cec_irq_handler_thread, 0,
|
|
|
-- "vc4 hdmi cec", vc4_hdmi);
|
|
|
+ ret = request_threaded_irq(platform_get_irq(pdev, 0),
|
|
|
-+ vc4_cec_irq_handler,
|
|
|
-+ vc4_cec_irq_handler_thread, 0,
|
|
|
-+ "vc4 hdmi cec", vc4_hdmi);
|
|
|
- if (ret)
|
|
|
- goto err_delete_cec_adap;
|
|
|
- }
|
|
|
+ vc4_cec_irq_handler,
|
|
|
+ vc4_cec_irq_handler_thread, 0,
|
|
|
+ "vc4 hdmi cec", vc4_hdmi);
|
|
|
+@@ -1924,10 +1922,20 @@ static int vc4_hdmi_cec_init(struct vc4_
|
|
|
|
|
|
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
|
|
|
if (ret < 0)
|
|
|
- goto err_delete_cec_adap;
|
|
|
+ goto err_remove_handlers;
|
|
|
|
|
|
- pm_runtime_put(&vc4_hdmi->pdev->dev);
|
|
|
-
|
|
|
return 0;
|
|
|
|
|
|
+err_remove_handlers:
|
|
@@ -91,7 +77,7 @@ Signed-off-by: Maxime Ripard <[email protected]>
|
|
|
err_delete_cec_adap:
|
|
|
cec_delete_adapter(vc4_hdmi->cec_adap);
|
|
|
|
|
|
-@@ -1944,6 +1953,15 @@ err_delete_cec_adap:
|
|
|
+@@ -1936,6 +1944,15 @@ err_delete_cec_adap:
|
|
|
|
|
|
static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi)
|
|
|
{
|