[Intel-gfx] bad panel power sequencing delays, disabling panel

Seth Forshee seth.forshee at canonical.com
Wed Oct 24 17:17:42 CEST 2012


On Wed, Oct 24, 2012 at 09:51:15PM +0800, Daniel J Blueman wrote:
> >> > Is there a way to trigger re-enumeration of the panels after I
> >> > switcheroo to i915?
> >> >
> >> > I'm checking with Seth if the mux could be the issue, though the code
> >> > shows there would be an error message if switching failed.
> >>
> >> Iirc Dave Airlie has patches to delay the driver init until the mux code
> >> is all set up, so that the driver could request the mux to be switched
> >> while init is ongoing.
> >
> > Actually those were my patches, which Dave rejected. I haven't had the
> > time yet to try and find yet another way of getting switcheroo to work
> > on these machines.
> 
> Generally, this sounds like a needed approach so we can boot with eg
> video=igd (or module options to the same effect) in case we need to
> avoid certain userspace issues.

Some approach is needed. The following are the challenges we're facing
as I understand them.

 1. It looks like DRM seems to expect drivers to enumerate all possible
    connectors during initialization. So i915 can't say there's no eDP
    or LVDS connector during initialization and later add one.

 2. Macs generally don't supply a VBT for the integrated GPU, and
    sometimes when they do the informaton in the VBT is incorrect, so
    i915 can't reliably determine whether or not the machine should have
    LVDS or eDP if the mux is switched to the DGPU at boot.

 3. In order to switch the mux while i915 is initializing we need to
    ensure that the switcheroo handler is registered before this
    happens. Since the mux in this case is in a completely separate
    driver there's no obvious way of making this happen.

    Also, I'm not really familiar at all with DisplayPort. The solution
    of switching the mux during driver initialization assumes that we
    really only need to switch the i2c lines. If eDP requires also
    switching the display signals then that's obviously going to present
    a problem.

One way that I know can be made to work for LVDS is to add quirks for
each specific machine to supply the mode information. This has the
downside of requiring that new machines be quirked before switcheroo
will work, and I'm again uncertain of the viability of this solution for
eDP.

If anyone has suggestions, I'm all ears.

Seth




More information about the Intel-gfx mailing list