[PATCH RFC 27/46] imx-drm: convert to componentised device support

Russell King - ARM Linux
2014-01-08T21:40:12Z

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@pengutronix.de>
> 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@pengutronix.de>
> ---
> 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".