Rockchip: linux: rework CEC-fix

This commit is contained in:
Alex Bee 2021-10-25 20:04:20 +02:00
parent cfe5b35af9
commit d0d10afbd1

View File

@ -3674,7 +3674,7 @@ depending on sink's implementation.
Signed-off-by: Alex Bee <knaerzche@gmail.com> Signed-off-by: Alex Bee <knaerzche@gmail.com>
--- ---
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 16 ++++++++-------- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-) 1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index d798846579f5..184a4a47558e 100644 index d798846579f5..184a4a47558e 100644
@ -3700,13 +3700,14 @@ index d798846579f5..184a4a47558e 100644
if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
enum drm_connector_status status = phy_int_pol & HDMI_PHY_HPD enum drm_connector_status status = phy_int_pol & HDMI_PHY_HPD
? connector_status_connected ? connector_status_connected
@@ -3077,6 +3070,13 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) @@ -3077,6 +3070,14 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
drm_helper_hpd_irq_event(hdmi->bridge.dev); drm_helper_hpd_irq_event(hdmi->bridge.dev);
drm_bridge_hpd_notify(&hdmi->bridge, status); drm_bridge_hpd_notify(&hdmi->bridge, status);
} }
+ +
+ if (status == connector_status_disconnected && + if (status == connector_status_disconnected &&
+ (phy_stat & HDMI_PHY_RX_SENSE)) { + (phy_stat & HDMI_PHY_RX_SENSE) &&
+ (phy_int_pol & HDMI_PHY_RX_SENSE)) {
+ mutex_lock(&hdmi->cec_notifier_mutex); + mutex_lock(&hdmi->cec_notifier_mutex);
+ cec_notifier_phys_addr_invalidate(hdmi->cec_notifier); + cec_notifier_phys_addr_invalidate(hdmi->cec_notifier);
+ mutex_unlock(&hdmi->cec_notifier_mutex); + mutex_unlock(&hdmi->cec_notifier_mutex);