On Sun, May 15, 2011 at 4:47 AM, Tais Plougmann Hansen <[email protected]> wrote: > True, this was while X was running. Without X I get "client 1 refused > switch". :) > Even though I have no experience with DSDT, I've been trying to read > thedisassembly anyway and this is what I've come up with for the ThinkPad > W520 with Nvidia Quadro 2000M: > _DSM > {0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0} > 0x100 0x1A {0x0,0x0,0x0,0x0} > First argument seems to be a buffer compare with the 16 specified bytes. > Second argument has to be 0x100 or what looks like an error code will be > returned. > The third argument seems to be either 0x00, 0x10, 0x1A or 0x1B. > I can't figure out the fourth one. > I don't know if I need to call any other methods before/after this.
The format of the _DSM is defined in the ACPI spec. The first argument is 16 byte UUID, identifying the interface the DSM provides. The second argument is a version number. The third argument is the function within the DSM to invoke. Function 0 is defined in the ACPI spec to return a bitmap of supported functions. This allows a way to query the interface and see if it's available. The fourth argument is the parameters for the call. Technically the fourth parameter should be an ACPI package, but acpi_call doesn't support that. The nouveau switcheroo driver uses an integer, which only works on a small subset of implementations. Using a buffer should provide reasonable compatibility. As to what functions 0x10, 0x1A, and 0x1B do in your DSDT... I don't know. Thanks, Alex _______________________________________________ Mailing list: https://launchpad.net/~hybrid-graphics-linux Post to : [email protected] Unsubscribe : https://launchpad.net/~hybrid-graphics-linux More help : https://help.launchpad.net/ListHelp

