On Tue, Jan 07, 2014 at 05:29:55PM +0100, Philipp Zabel wrote: > Thanky you. This is what I came up with so far: > > From: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> > Subject: [PATCH 1/2] staging: imx-hdmi: use RX_SENSE0 for plug detection if > HPD is unreliable > > On some boards HPD might not reliably detect DVI monitors. Allow to use > RX_SENSE0 as a workaround. > > Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> > --- > drivers/staging/imx-drm/imx-hdmi.c | 45 +++++++++++++++++++++++++++++--------- > 1 file changed, 35 insertions(+), 10 deletions(-) > > diff --git a/drivers/staging/imx-drm/imx-hdmi.c b/drivers/staging/imx-drm/imx-hdmi.c > index 7779337..cc305f3 100644 > --- a/drivers/staging/imx-drm/imx-hdmi.c > +++ b/drivers/staging/imx-drm/imx-hdmi.c > @@ -139,6 +139,7 @@ struct imx_hdmi { > > struct regmap *regmap; > struct i2c_adapter *ddc; > + bool hpd_unreliable; > void __iomem *regs; > > unsigned int sample_rate; > @@ -1309,6 +1310,14 @@ static int imx_hdmi_setup(struct imx_hdmi *hdmi, struct drm_display_mode *mode) > /* Wait until we are registered to enable interrupts */ > static int imx_hdmi_fb_registered(struct imx_hdmi *hdmi) > { > + int stat_bit = HDMI_IH_PHY_STAT0_HPD; > + int mask_bits = ~HDMI_PHY_HPD; > + > + if (hdmi->hpd_unreliable) { > + stat_bit = HDMI_IH_PHY_STAT0_RX_SENSE0; > + mask_bits = ~HDMI_PHY_RX_SENSE0; > + } > + How about storing these in imx_hdmi instead, so we don't have to compute them in each interrupt? Maybe "sink_detect_status" and "sink_detect_mask"? Thanks. -- FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up. Estimation in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad. Estimate before purchase was "up to 13.2Mbit". _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel