[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