Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lenovo Y570 missing dsm call #2

Closed
SimonSheehan opened this issue Jan 6, 2012 · 209 comments
Closed

Lenovo Y570 missing dsm call #2

SimonSheehan opened this issue Jan 6, 2012 · 209 comments

Comments

@SimonSheehan
Copy link

Update 2013-03-16: Linux 3.9-rc1 finally fixed the bug, everyone using 3.9-rc1 or newer can drop the acpi-handle-hack. ~L
Update 2013-03-29: Linux 3.8.5 also got the fix, you do not need any patching yourself for that kernel and newer!

Those who are looking for a solution, look at #2 (comment)


[17735.060526] bbswitch: No suitable _DSM call found.
[17773.660017] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.VGA_

Linux simon-fedora 3.1.6-1.fc16.x86_64 #1 SMP Wed Dec 21 22:41:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

Running Fedora 16

01:00.0 VGA compatible controller: nVidia Corporation Device 0deb (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Lenovo Device 3981
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 16
    Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=16M]
    Region 1: Memory at c0000000 (64-bit, prefetchable) [size=256M]
    Region 3: Memory at d0000000 (64-bit, prefetchable) [size=32M]
    Region 5: I/O ports at 2000 [size=128]
    Expansion ROM at f1000000 [disabled] [size=512K]
    Capabilities: <access denied>
    Kernel modules: nouveau, nvidiafb

@Lekensteyn
Copy link
Member

This is a known issue, if you're using nouveau, please try Bumblebee-Project/Bumblebee-old#149 (comment) and report back.

For the record: the Lenovo Ideapad Y470 has the same ACPI tables and is therefore affected as well.

@Lekensteyn
Copy link
Member

@SimonSheehan could you try the latest version?

@jm2
Copy link

jm2 commented Jan 17, 2012

@Lekensteyn here is the info you wanted from Reporting bugs:

http://pastebin.com/jb80Fyc1 (Lenovo Ideapad Y570)

@malibu66
Copy link

I have the same issue on IdeaPad Y570 with Ubuntu 11.10. I tried the 'known issue' link above but it is giving me a 404. Could someone please respond with the correct link?

@jm2
Copy link

jm2 commented Jan 21, 2012

@Lekensteyn
Copy link
Member

Commit 11ddd34 should have added support for the Lenovo Ideapad Y570. Could you try the module from develop?

@malibu66
Copy link

I tried the version from the test PPA, is there a newer one?

@broo2s
Copy link

broo2s commented Jan 23, 2012

Nothing here, Y570: http://pastebin.com/HnPMtyY9

@broo2s
Copy link

broo2s commented Jan 23, 2012

I can enable and disable Nvidia card without any problem using acpi_call. Is it helpful for you?

@Lekensteyn
Copy link
Member

@malibu66 Nope, it's in git, the PPA only contains stable releases.

@brutall Thanks for your feedback. Investigating.

@Lekensteyn
Copy link
Member

I found the issue, the commit checked for the NVIDIA DSM UUID where the Lenovo Y570 uses the new Optimus UUID. I'll fix it tomorrow.

Lekensteyn added a commit that referenced this issue Jan 24, 2012
This should finally support machines like the Lenovo Y570. WMMX methods should
be more reliable than direct DSM probing so let's try that before calling DSM
directly.
@Lekensteyn
Copy link
Member

Please test the new code from develop! On my machine (BTO P-BOOK 17CL34 a.k.a. Clevo B7130), the WMMX method works.

@broo2s
Copy link

broo2s commented Jan 24, 2012

Module loaded successfully :-), but seems PM doesn't work: http://pastebin.com/emrSCDP6 .

@Lekensteyn
Copy link
Member

@brutall Well, we've progressed then, at least the method is detected well. Could you join #bumblebee on Freenode IRC for faster feedback?

@Lekensteyn
Copy link
Member

Ugh... The method \_SB.PCI0.PEG0.VGA._PS3 is called where \_SB.PCI0.PEG0.PEGP._PS3 should be called instead.

@malibu66
Copy link

Is this fixed now? I'm trying to get the code from https://github.com/Bumblebee-Project/bbswitch. The latest I can find is 0.4.6 and I can't even load that version on my Y570.

@Lekensteyn
Copy link
Member

It's not fixed yet. I'll have to make a very hacky, specific workaround for this bug and am looking for a clean and compatible way to do this.

@Lekensteyn
Copy link
Member

On http://forums.lenovo.com/t5/IdeaPad-Y-and-U-series-Laptops/Y570-How-to-enable-Nvidia-Optimus-Technology/ta-p/479197 I see a switch. If this exists on the Y570 or Y470, please generate a new acpi_dump_info report as described in the README. (and mention whether it's a Y470 or Y570)

@jm2
Copy link

jm2 commented Jan 27, 2012

This switch does exist on the Y470; however it is a spring loaded switch that always returns to the same position and toggles whether the LED next to it is on (either switchable or integrated only) but it only has any effect on the LED in Windows 7, so I think it might be a software switch. Unfortunately I cannot test right now as the LCD on mine just died and I have to send it in for repairs.

@broo2s
Copy link

broo2s commented Jan 27, 2012

Yes, it exists, but it's a software switch, I think. I mean it isn't a two-state switch: you can push/press it (actually you drag it to right and then it returns to left), so discrete card is enabled/disabled. There is also a LED indicating current state of Optimus.

Switch/LED doesn't work outside of windows and this is the reason, why I think it's controlled by the software. In Ubuntu it lights all the time - no matter if you push the switch or disable discrete card using ascpi_call.

@malibu66
Copy link

I wasn't clear on whether this was confirmed on the Y570 or not, but yes it is on the Y570 as well. Behavior is the same as above. Would be great if it could be made to work in Linux!

@dragonreborn
Copy link

Yes its a 1 state switch. (Could be a button as well) It only works for sofware, The white led is always on in Linux *shows that GPU acceleration is enabled). No function for button yet In Linux Mint Lisa.
Owning a Y570 btw

@Lekensteyn
Copy link
Member

I'm about to report this issue on the kernel bugtracker. The wrong handle is being detected (that is arguable btw...). \_SB.PCI0.PEG0.VGA is being detected because it has a _DOS and _DOD method (as well as _PSx methods which are basically NOOP for the hardware). But the \_SB.PCI0.PEG0.PEGP handle contains the proper _DSM, _PSx and _ROM methods.
Can someone test bbswitch and/ or nouveau with the mainline kernel from http://kernel.org? Once the correct handle is being detected in the kernel, there should not be a need for changes in bbswitch.

@broo2s
Copy link

broo2s commented Jan 30, 2012

@Lekensteyn
Is it possible to easily hack bbswitch to work with Y570? I mean if you don't want to put hacks to the mainline of your tool, then maybe you could create a dirty patch and we will use it to build bbswitch for our laptops? Until the proper fix will be found.

@Lekensteyn
Copy link
Member

Well, the solution to Lenovo's buggy BIOS likely fixes the VBIOS/ROM issues of at least the nouveau driver. I'm already looking for possible ways to get the code patched for these laptops. I'm available on #bumblebee

@Lekensteyn
Copy link
Member

I've created a bug report for this: https://bugzilla.kernel.org/show_bug.cgi?id=42696

@dragonreborn
Copy link

If anyone finds out how to enable nvidia gpu (manually or with optimus) on y570, please let me know. I'm newb in linux, but thi but thi is the only thing that keeps me from porting over.
Thanks a lot.

Lekensteyn added a commit that referenced this issue Feb 2, 2012
@TheSiege
Copy link

for my y480 and @hadrons123 Y580 at least; yes

@presianbg
Copy link

My Y570 is working without any patches / hacks too :)

@hadrons123
Copy link

fixed in 3.8.5 upstream kernel too.

@presianbg
Copy link

Confirm that 3.8.5 - stable is working without any patches / hacks and etc. on Lenovo IdeaPad Y570

@ArchangeGabriel
Copy link
Member

Can we consider closing this issue now that it is fixed upstream?

@Lekensteyn
Copy link
Member

Sure, I have updated the nobody-READs-ME of the lenovo-hack branch already, so that should be informative enough.

@Lekensteyn
Copy link
Member

Guys, this patch caused an regression on #65. Can users of 3.8.5+, 3.9-rc1+ (and thus 3.10/3.11 are included) confirm that applying the following commits still work for you:

Without the first patch, I expect bbswitch to get broken again. However, with the second patch applied on top of the first, things should not break. Please confirm if it still works for you, otherwise v3.10/v3.11 will be a regression for you.

@TheSiege
Copy link

both patches on top of my 3.10 and everything still works

@Lekensteyn
Copy link
Member

@TheSiege Thank you for confirming!

@lantianyu
Copy link

@TheSiege, Could you test the following patch with commit c7d9ca9 which has been merged into v3.11-rc1? Check whether bbswitch works on your machine with them.
https://bugzilla.kernel.org/attachment.cgi?id=106909

commit c7d9ca9 link.
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=c7d9ca9

@TheSiege
Copy link

can't test rc1 doesn't boot for me

@lantianyu
Copy link

You also can test both patches on v3.10. Commit c7d9ca9 should be applied firstly.

@TheSiege
Copy link

reverting the previous patches and applying the newly suggested ones;
everything is still working for me

@lantianyu
Copy link

@TheSiege Great, Thanks for test.

@Lekensteyn
Copy link
Member

If you have time, please test https://bugzilla.kernel.org/attachment.cgi?id=107027&action=diff&format=raw and report any regressions (or none). I do not expect regressions though.

@TheSiege
Copy link

everything keeps working (tested on 3.11-rc2)

@Lekensteyn
Copy link
Member

@TheSiege Thank you for reporting back!

@Lekensteyn
Copy link
Member

Affected user of this bug, can you please test the patch in https://bugzilla.kernel.org/show_bug.cgi?id=60829#c12? It can be applied on top of 3.10.10+ or 3.11-rc1+. It should not introduce a regression for your laptop, but we would like to have a confirmation.

@TheSiege
Copy link

TheSiege commented Sep 9, 2013

all is well
kernel 3.11
Y480
just getting polluted with stuff like (a lot)

[  172.732210] ACPI Warning: \_SB_.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20130517/nsarguments-95)

@Lekensteyn
Copy link
Member

@TheSiege Just to be sure, did you apply the patch or just test 3.11 without patching?

For the _DSM warning, see ee0591b

@TheSiege
Copy link

TheSiege commented Sep 9, 2013

@Lekensteyn yes I indeed applied the patch

sorry for the confusion; wasn't used to geting these warnings; but they happen on unpatched as well

@Lekensteyn
Copy link
Member

Thank you for confirming.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests