Re: Explicitly putting a PCI device to ACPI D0

From: Alex Deucher
Date: Wed Sep 16 2009 - 12:34:13 EST


On Wed, Sep 16, 2009 at 12:09 PM, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote:
> On Wed, 16 Sep 2009 09:10:24 +0200
> Michal Witkowski <neuro@xxxxx> wrote:
>
>> Hi,
>>
>> I've been searching for my answer for a while now, and since I
>> haven't found it anywhere, I've decided to post to LKML, hoping that
>> someone here can help me.
>>
>> First, I'll explain the background of my problem. My grief is the
>> switchable GPU in my Lenovo Ideapad U330. The BIOS supports two
>> options "Discrete only" (only the ATI card is visible on the BUS) and
>> "Switchable" (both ATI and Intel card visible on the bus). The
>> problem is the lack of a third option "Integrated", in which only the
>> Intel card would be powered off. Lenovo refused to introduce such an
>> option into the BIOS, stating that it's a feature request and not a
>> bug.
>>
>> To save battery power I'd like to be able to run on the Intel card.
>> However, with the "Switchable" option, powertop indicates huge power
>> usage (24W), which can only be explained by the fact that both cards
>> draw power.
>>
>> Thus, my question is the following:
>> Is there a way to explicitly put a device into ACPI D0? I would like
>> to do that to the ATI card on boot.
>>
>> I've tried the following code:
>> http://ftp.chg.ru/pub/parallel/scyld/diag/pci-config.c
>> But it didn't work (the ATI card was still on).
>
> Your best bet might be to load a driver for the ATI card that puts it
> into PCI D3 state until used.  There may be other ways to save power on
> the disabled part as well...
>
> Alex, is this something you've looked at at all?

The xf86-video-ati ddx can turn off the displays and reduce the clocks
and pcie lanes, but I haven't sorted out all the D3 stuff yet. As for
the switchable graphics, you might find the page below useful. No
idea if it will work or fry your hardware:
http://ubuntuforums.org/showthread.php?p=7944950

Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/