Re: [Patch v3] apple-gmux: lock iGP IO to protect from vgaarb changes

Michael Marineau
2015-05-27T06:28:19Z

On Tue, May 26, 2015 at 10:53 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> Hi Michael,
>
> On Tue, 26 May 2015 21:47:49 -0700 Darren Hart wrote:
>> On Tue, May 26, 2015 at 12:10:48PM -0700, Michael Marineau wrote:
>> > FYI, this actually broke backlight controls on my MBP11,3 because the
>> > assumption the patch makes that gmux is always loaded before graphics
>> > drivers didn't hold true. At least for me dracut included the nouveau
>> > module in the initrd but not gmux, ensuring the ordering was wrong. No
>> > errors were reporting, and gmux still offered the backlight device, it
>> > just became inoperable. I worked around this for my kernel by building
>> > gmux into vmlinuz instead of as a module but that isn't going to in
>> > more general configs because there is an apple backlight driver which
>> > cannot be built at all in that configuration.
>>
>> Thank you for reporting this Michael,
>>
>> That is tough as nouveau doesn't have an explicit dependency on gmux, so we
>> could do something like a passive request_module(), but if it isn't in the
>> initrd image, it would still fail as you describe.
>>
>> > Is there a way to make the ordering between nouveau and gmux more
>> > explicit/reliable? Can gmux complain loudly if the ordering is ever
>> > wrong?
>>
>> It should print an error if the probe fails due to the IO already being in use
>> or if it can't be allocated. The disabled IO case is only info level though,
>> perhaps that should be higher priority. Printing something when failing to probe
>> seems like a reasonable thing to do.
>>
>> Michael, which message do you get if you boot with "debug" or "loglevel=6" when
>> apple-gmux is not built-in?
>
> A full kernel log up to including post-initrd loading of gmux would be
> useful.
>
> As far as I have seen nouveau should not be doing unneeded vgaarb
> operations by itself (though userspace might be) as opposed to closed
> nvidia driver.
>
> If your systems allows, try booting to init=/bin/bash, then check for
> backlight, load nouveau, check for backlight and finally load gmux and
> check backlight (putting i915 in the mix where initrd/userspace puts
> it would be nice).

Both before and after loading nouveau there is a working acpi_video
backlight control. Then after loading gmux it is the only backlight
control and it doesn't do anything.