Video cards and PCI power states

From: Matthew Garrett
Date: Mon Feb 14 2005 - 15:28:34 EST


Radeons need certain registers set in order to power down fully when set
to D3 state. This support has been added to radeonfb, but it would be
nice to be able to support this with text consoles as well. I've written
a small userspace application that sets the registers correctly, but the
device still needs to be put into D3 during suspend. The kernel won't do
this as no module is loaded to claim the device. In theory, it's
possible to do this from userspace. I've written an app to set a device
to D3 state, and it seems to work in most cases.

However, if I try to run it against a Radeon in a Thinkpad, the device
seems to power itself back up again immediately. A similar effect can be
produced if I provide a dummy module that does nothing other than bind
to the device and provide suspend and resume functions - echo -n 3
>power/state doesn't actually seem to power the device down. However,
this module /is/ sufficient to power it down correctly on suspend.

Does anyone know why it appears impossible to power down the device
while the system is running, while doing so during suspend results in
correct functionality?
--
Matthew Garrett | mjg59@xxxxxxxxxxxxx

-
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/