dw-hdmi: Fix Oops regression from rc1 (Neil)
Cc: Neil Armstrong <narmstrong@baylibre.com> -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEfxcpfMSgdnQMs+QqlvcN/ahKBwoFAlsO5KoACgkQlvcN/ahK BwozAwgAqjrZkyJPT6qQ+vxqzrxvECswznwQuBG//HVUPWANlIm1JjVrXC7tuXZX U2qAMG8MWCuNDe5vu2ZLLI0Gca3gg8y5snlBamwqtRJdG6vri0MLQiEwxOJce6YW oLWNcFXbg/qBXVUXJQhWSxPayy3nmmoJZGsnC5lTerywZrjr1dUb1cDWHycfPgJf zn/bXKJ5evQZyCb7RubLbXdUFAJtC+2TdTR1t0LclqlOkI9CWNiK9slTFB5VoZ9D RyBBsOWhhU+uTWDYzh4D8IxO3+FsfFee40A3GimLN3yvsNi1iNkWtstK8HqNxXAO W8imBhFqCXPo3z/ilFpG6uvjVjo3+A== =5Cwz -----END PGP SIGNATURE----- Merge tag 'drm-misc-fixes-2018-05-30' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes dw-hdmi: Fix Oops regression from rc1 (Neil) Cc: Neil Armstrong <narmstrong@baylibre.com> * tag 'drm-misc-fixes-2018-05-30' of git://anongit.freedesktop.org/drm/drm-misc: drm/bridge/synopsys: dw-hdmi: fix dw_hdmi_setup_rx_sense
This commit is contained in:
commit
0e333751cf
|
@ -2077,7 +2077,7 @@ static irqreturn_t dw_hdmi_hardirq(int irq, void *dev_id)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense)
|
void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense)
|
||||||
{
|
{
|
||||||
mutex_lock(&hdmi->mutex);
|
mutex_lock(&hdmi->mutex);
|
||||||
|
|
||||||
|
@ -2103,13 +2103,6 @@ void __dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense)
|
||||||
}
|
}
|
||||||
mutex_unlock(&hdmi->mutex);
|
mutex_unlock(&hdmi->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dw_hdmi_setup_rx_sense(struct device *dev, bool hpd, bool rx_sense)
|
|
||||||
{
|
|
||||||
struct dw_hdmi *hdmi = dev_get_drvdata(dev);
|
|
||||||
|
|
||||||
__dw_hdmi_setup_rx_sense(hdmi, hpd, rx_sense);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(dw_hdmi_setup_rx_sense);
|
EXPORT_SYMBOL_GPL(dw_hdmi_setup_rx_sense);
|
||||||
|
|
||||||
static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
|
static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
|
||||||
|
@ -2145,9 +2138,9 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
|
||||||
*/
|
*/
|
||||||
if (intr_stat &
|
if (intr_stat &
|
||||||
(HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD)) {
|
(HDMI_IH_PHY_STAT0_RX_SENSE | HDMI_IH_PHY_STAT0_HPD)) {
|
||||||
__dw_hdmi_setup_rx_sense(hdmi,
|
dw_hdmi_setup_rx_sense(hdmi,
|
||||||
phy_stat & HDMI_PHY_HPD,
|
phy_stat & HDMI_PHY_HPD,
|
||||||
phy_stat & HDMI_PHY_RX_SENSE);
|
phy_stat & HDMI_PHY_RX_SENSE);
|
||||||
|
|
||||||
if ((phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)) == 0)
|
if ((phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)) == 0)
|
||||||
cec_notifier_set_phys_addr(hdmi->cec_notifier,
|
cec_notifier_set_phys_addr(hdmi->cec_notifier,
|
||||||
|
|
|
@ -529,7 +529,7 @@ static irqreturn_t dw_hdmi_top_thread_irq(int irq, void *dev_id)
|
||||||
if (stat & HDMITX_TOP_INTR_HPD_RISE)
|
if (stat & HDMITX_TOP_INTR_HPD_RISE)
|
||||||
hpd_connected = true;
|
hpd_connected = true;
|
||||||
|
|
||||||
dw_hdmi_setup_rx_sense(dw_hdmi->dev, hpd_connected,
|
dw_hdmi_setup_rx_sense(dw_hdmi->hdmi, hpd_connected,
|
||||||
hpd_connected);
|
hpd_connected);
|
||||||
|
|
||||||
drm_helper_hpd_irq_event(dw_hdmi->encoder.dev);
|
drm_helper_hpd_irq_event(dw_hdmi->encoder.dev);
|
||||||
|
|
|
@ -151,7 +151,7 @@ struct dw_hdmi *dw_hdmi_bind(struct platform_device *pdev,
|
||||||
struct drm_encoder *encoder,
|
struct drm_encoder *encoder,
|
||||||
const struct dw_hdmi_plat_data *plat_data);
|
const struct dw_hdmi_plat_data *plat_data);
|
||||||
|
|
||||||
void dw_hdmi_setup_rx_sense(struct device *dev, bool hpd, bool rx_sense);
|
void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense);
|
||||||
|
|
||||||
void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate);
|
void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate);
|
||||||
void dw_hdmi_audio_enable(struct dw_hdmi *hdmi);
|
void dw_hdmi_audio_enable(struct dw_hdmi *hdmi);
|
||||||
|
|
Loading…
Reference in New Issue