RadeonHD Driver Power Management Improves
While we just shared that there are now patches available that introduce HDMI audio support for the xf86-video-ati driver, the RadeonHD driver has picked up improvements for power management, an area where previously the xf86-video-ati driver was in a better position. Novell's Matthias Hopf added some power management support for an area of the AtomBIOS that he had reverse engineered, after AMD hadn't provided any public documentation on the matter.
With this new power management code, the xf86-video-radeonhd driver will attempt to read voltage and clock information from the AtomBIOS and then try to figure out the different combinations of voltages and frequencies that will work without leaving the card in a non-functioning state. There is code in place with the RadeonHD driver for controlling the engine clock, memory clock, and VDDC voltage, but right now it's just implemented for making engine clock adjustments.
Not only is it difficult to compute the combinations in which the clocks and voltages can run at in a stable manner, but then applying the changes is also difficult. In order to change the GPU clock, the GPU must first be idling. Similarly, there cannot be any GPU memory accesses performed when the memory clock is about to be changed. Additionally, everything must be idling when the voltage changes. As a result, this work is still far from complete and there is a lot of testing and verification work that needs to go on.
Meanwhile, work has been going into the competing xf86-video-ati driver for the past several months to down-clock the GPU, decrease the PCI Express bandwidth, and carry out other functions in order to conserve small amounts of power.
For those interested in the RadeonHD power management work that is going on, read this mailing list entry.
With this new power management code, the xf86-video-radeonhd driver will attempt to read voltage and clock information from the AtomBIOS and then try to figure out the different combinations of voltages and frequencies that will work without leaving the card in a non-functioning state. There is code in place with the RadeonHD driver for controlling the engine clock, memory clock, and VDDC voltage, but right now it's just implemented for making engine clock adjustments.
Not only is it difficult to compute the combinations in which the clocks and voltages can run at in a stable manner, but then applying the changes is also difficult. In order to change the GPU clock, the GPU must first be idling. Similarly, there cannot be any GPU memory accesses performed when the memory clock is about to be changed. Additionally, everything must be idling when the voltage changes. As a result, this work is still far from complete and there is a lot of testing and verification work that needs to go on.
Meanwhile, work has been going into the competing xf86-video-ati driver for the past several months to down-clock the GPU, decrease the PCI Express bandwidth, and carry out other functions in order to conserve small amounts of power.
For those interested in the RadeonHD power management work that is going on, read this mailing list entry.
10 Comments