--- /dev/null
+From b01b0c0b6d266dabd0ae5d223777aa2483c2f385 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Sat, 5 Feb 2022 19:01:29 +0100
+Subject: [PATCH 2/2] Revert "drm/vc4: hdmi: Make sure the device is powered with CEC" again
+
+This reverts commit fbe1e801bc1fa0a4c34a5284abf6ad0ef887cdfc which is
+commit 20b0dfa86bef0e80b41b0e5ac38b92f23b6f27f9 upstream.
+
+It wasn't applied correctly, something went wrong with an attempt to fix
+it up again, so just revert the whole thing to be back at a clean state.
+
+Reported-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/20220205171238.GA3073350@roeck-us.net
+Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
+Link: https://lore.kernel.org/r/Yf5lNIJnvhP4ajam@kroah.com
+Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Cc: Maxime Ripard <maxime@cerno.tech>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
+@@ -1735,14 +1735,8 @@ static int vc4_hdmi_cec_adap_enable(stru
+ struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
+ /* clock period in microseconds */
+ const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
+- u32 val;
+- int ret;
++ u32 val = HDMI_READ(HDMI_CEC_CNTRL_5);
+
+- ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+- if (ret)
+- return ret;
+-
+- val = HDMI_READ(HDMI_CEC_CNTRL_5);
+ val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
+ VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
+ VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
+@@ -1888,8 +1882,6 @@ static int vc4_hdmi_cec_init(struct vc4_
+ if (ret < 0)
+ goto err_remove_handlers;
+
+- pm_runtime_put(&vc4_hdmi->pdev->dev);
+-
+ return 0;
+
+ err_remove_handlers:
--- /dev/null
+From cd0c1efaf55de281d89947d453b3c212e5bfd8a6 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Sat, 5 Feb 2022 19:01:20 +0100
+Subject: [PATCH 1/2] Revert "drm/vc4: hdmi: Make sure the device is powered with CEC"
+
+This reverts commit d5e81e3a3e0b15964a86c19b5c27397676d6fc1b which is
+commit 20b0dfa86bef0e80b41b0e5ac38b92f23b6f27f9 upstream.
+
+It wasn't applied correctly, something went wrong with an attempt to fix
+it up again, so just revert the whole thing to be back at a clean state.
+
+Reported-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/20220205171238.GA3073350@roeck-us.net
+Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
+Link: https://lore.kernel.org/r/Yf5lNIJnvhP4ajam@kroah.com
+Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Cc: Maxime Ripard <maxime@cerno.tech>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/vc4/vc4_hdmi.c | 25 ++++++++++++-------------
+ 1 file changed, 12 insertions(+), 13 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
+@@ -1738,18 +1738,18 @@ static int vc4_hdmi_cec_adap_enable(stru
+ u32 val;
+ int ret;
+
+- if (enable) {
+- ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
+- if (ret)
+- return ret;
++ ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
++ if (ret)
++ return ret;
+
+- val = HDMI_READ(HDMI_CEC_CNTRL_5);
+- val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
+- VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
+- VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
+- val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) |
+- ((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT);
++ val = HDMI_READ(HDMI_CEC_CNTRL_5);
++ val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
++ VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
++ VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
++ val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) |
++ ((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT);
+
++ if (enable) {
+ HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
+ VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
+ HDMI_WRITE(HDMI_CEC_CNTRL_5, val);
+@@ -1777,10 +1777,7 @@ static int vc4_hdmi_cec_adap_enable(stru
+ HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, VC4_HDMI_CPU_CEC);
+ HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
+ VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
+-
+- pm_runtime_put(&vc4_hdmi->pdev->dev);
+ }
+-
+ return 0;
+ }
+
+@@ -1891,6 +1888,8 @@ static int vc4_hdmi_cec_init(struct vc4_
+ if (ret < 0)
+ goto err_remove_handlers;
+
++ pm_runtime_put(&vc4_hdmi->pdev->dev);
++
+ return 0;
+
+ err_remove_handlers: