Re: [PATCH] drm/i915: Retry port as HDMI if dp_is_edp turns out to be false

Ville Syrjälä
2015-08-12T14:29:05Z

On Wed, Aug 12, 2015 at 03:14:53PM +0100, Chris Wilson wrote:
> On Wed, Aug 12, 2015 at 04:45:39PM +0300, Ville Syrjälä wrote:
> > > - /*
> > > - * For eDP we always set the encoder type to INTEL_OUTPUT_EDP, but
> > > - * for DP the encoder type can be set by the caller to
> > > - * INTEL_OUTPUT_UNKNOWN for DDI, so don't rewrite it.
> > > - */
> > > - if (type == DRM_MODE_CONNECTOR_eDP)
> > > - intel_encoder->type = INTEL_OUTPUT_EDP;
> >
> > aux (and IIRC pps setup on vlv/chv) needs is_edp() to work. So I think
> > this would break stuff.
>
> Hmm, I was hoping that all the additional setup we do in init for edp
> would be enough for it to use any and all sidebands as necessary.

It might work by accident at least on some machines since BIOSen seem to
leave the vdd force enabled for eDP panels even if the port isn't
active. But if that's not the case, then we'd fail to power up the panel
before attempting the initial aux communication, and the eDP probe
would fail.

>
> The fallout will be that we simply cannot reuse the false eDP link as a
> plain DP and just establish one HDMI connector for the port. Or maybe it
> is still recoverable?

If we can keep is_edp() returning true during the edp init, things should
work OK.

For vlv/chv we might need to poke at the pps (maybe just
vlv_detach_power_sequencer() would be enough) to make normal DP work
without the pps preventing the port from powering up. That should be
testable by pretending the VBT is lying about a DP port being an eDP port.

--
Ville Syrjälä
Intel OTC