[Intel-gfx] [PATCH] i915: Enable SDVO hotplug interrupts for HDMI and DVI

Simon Farnsworth simon.farnsworth at onelan.co.uk
Tue Sep 20 11:38:57 CEST 2011


On Tuesday 20 September 2011, Keith Packard <keithp at keithp.com> wrote:
> On Wed, 17 Aug 2011 10:52:21 +0100, Simon Farnsworth 
<simon.farnsworth at onelan.co.uk> wrote:
> >  static bool
> >  intel_sdvo_multifunc_encoder(struct intel_sdvo *intel_sdvo)
> > 
> > @@ -2062,7 +2053,10 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo,
> > int device)
> > 
> >  	intel_connector = &intel_sdvo_connector->base;
> >  	connector = &intel_connector->base;
> > 
> > -	connector->polled = DRM_CONNECTOR_POLL_CONNECT |
> > DRM_CONNECTOR_POLL_DISCONNECT; +	if
> > (intel_sdvo_supports_hotplug(intel_sdvo) & (1 << device))
> > +		connector->polled = DRM_CONNECTOR_POLL_HPD;
> > +	else
> > +		connector->polled = DRM_CONNECTOR_POLL_CONNECT |
> > DRM_CONNECTOR_POLL_DISCONNECT;
> > 
> >  	encoder->encoder_type = DRM_MODE_ENCODER_TMDS;
> >  	connector->connector_type = DRM_MODE_CONNECTOR_DVID;
> > 
> > @@ -2587,6 +2581,11 @@ bool intel_sdvo_init(struct drm_device *dev, int
> > sdvo_reg)
> > 
> >  						    &intel_sdvo->pixel_clock_max))
> >  		
> >  		goto err;
> > 
> > +        if (intel_sdvo_supports_hotplug(intel_sdvo)) {
> > +		intel_encoder->hot_plug = intel_sdvo_do_hotplug;
> > +		intel_sdvo_set_hotplug(intel_sdvo);
> > +	}
> > +
> 
> This all looks quite reasonable, about the only thing I would suggest is
> that you avoid calling intel_sdvo_supports_hotplug twice in
> intel_sdvo_init and simply look at connector->polled to see if the HPD
> bit is set.

V2 patch coming up - I'll check connector->polled in intel_sdvo_init, and rely 
on the call to intel_sdvo_output_setup calling a connector-specific output 
function (in my case, intel_sdvo_dvi_init) that sets it correctly.
-- 
Simon Farnsworth
Software Engineer
ONELAN Limited
http://www.onelan.com/



More information about the Intel-gfx mailing list