[Nouveau] [Bug 58556] MacBook Pro 5, 1 with nVidia 9400m and 9600m, scrambled screen

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Jul 24 06:17:29 PDT 2013


https://bugs.freedesktop.org/show_bug.cgi?id=58556

--- Comment #7 from Emil Velikov <emil.l.velikov at gmail.com> ---
Hi Joanand

(In reply to comment #0)
> Resolution for kernels < 3.4.9: I made use of gpupwr to disable the discrete
> adapter and then loaded nouveau (without any parameters). The system was
> "programmed" to use 9400m as it starts. This worked quite fine over long
> time.
> 
"Worked" with our without acceleration ?

> Temporary resolution for 3.7.1: Use MacOSX to change the default adapter to
> the one which is "not" desired. Reboot, load nouveau with noaccel=1 (now
> screen gets scrambled), switch to the other device (in my case "echo DIGD >
> /sys/kernel/debug/vgaswitcheroo/switch"). Voila you have a readable screen.

Did you had the chance to narrow down what caused the change (<3.4.9 vs 3.7.1)
? It may be due to nouveau, vgaswitcheroo and/or other kernel driver


(In reply to comment #6)
> (In reply to comment #5)
> > Great find Matyas
> > 
> > If you're interested in cutting short the sequence you can forcepost the
> > card, thus it should have you the suspend/resume trick. Use
> > nouveau.config=NvForcePost=1
> > 
> > Curious if the above will give you acceleration or only a working
> > output/monitor
> > (ie. try it with and without noaccel=1)
> > 
> > Cheers
> 
> Hi,
> On my MBP, if I do not use noaccel=1, then the whole system crashes.
> 
> I have tried NvForcePost=1 with noaccel, the result was a switched off
> screen, but system seems to boot.
> With accel, screen switches off and crashes.
> 
> Is there any config which would activate accel for 9400 but no accel for
> 9600? This would be very helpful for me.
> 
> Thanks.

There has been a brief discussion what is the best way to handle this (passing
nouveau params to specific card, disabling certain card etc.) although
implementation may be far off ;(

Meanwhile add a hack for your card by checking the PCI and returning early
rather than initialising the card - not sure which location is better
nouveau_drm_probe or nouveau_drm_load. Keep in mind to keep is symmetric (ie.
handle the case in nouveau_drm_remove/nouveau_drm_unload)

Your code will look something similar to

if ((pdev->bus == xx) &&
    (pdev->dev == xx) &&
    (pdev->func == xx)) {
      return 0; // you can also try return -E*
}

Cheers
Emil

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20130724/52341a3d/attachment.html>


More information about the Nouveau mailing list