mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-03 11:43:03 +09:00
drm/bridge/synopsys: Move cec_notifier_set_phys_addr out of rxsense setup
If put cec_notifier_set_phys_addr in rxsense setup, hdmi->mutex may become deadlock. Because cec_notifier_set_phys_addr will call dw_hdmi_cec_enable which cause hdmi->mutex become deadlock. Change-Id: I4fed641c9e9d7674451402a973196ef0efeb198f Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
This commit is contained in:
@@ -320,6 +320,7 @@ static void repo_hpd_event(struct work_struct *p_work)
|
||||
|
||||
if (hdmi->bridge.dev)
|
||||
drm_helper_hpd_irq_event(hdmi->bridge.dev);
|
||||
|
||||
#ifdef CONFIG_SWITCH
|
||||
if (hdmi->hpd_state)
|
||||
switch_set_state(&hdmi->switchdev, 1);
|
||||
@@ -2809,14 +2810,13 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
|
||||
if (phy_stat & HDMI_PHY_HPD)
|
||||
hdmi->rxsense = true;
|
||||
|
||||
if (!(phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)))
|
||||
cec_notifier_set_phys_addr(hdmi->cec_notifier,
|
||||
0xffff);
|
||||
|
||||
dw_hdmi_update_power(hdmi);
|
||||
dw_hdmi_update_phy_mask(hdmi);
|
||||
}
|
||||
mutex_unlock(&hdmi->mutex);
|
||||
if (!(phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)))
|
||||
cec_notifier_set_phys_addr(hdmi->cec_notifier,
|
||||
CEC_PHYS_ADDR_INVALID);
|
||||
}
|
||||
|
||||
check_hdmi_irq(hdmi, intr_stat, phy_int_pol);
|
||||
|
||||
Reference in New Issue
Block a user