While reading radeonhd dev mailing list I stumbled upon a link to a modified version of radeontool that enables setting power saving registers on new radeon adapters. I've tested it with my Radeon 1950Pro, and sure enough, the card is much cooler when idle (about the same as in Windows).
This version changes a couple of settings in the CLKIND power saving registers of which I believe that the "Auto disable unused pipes' clk" (DYN_SCLK_PWMEN_PIPE in ATI documentation) bit is the most important . When running "./radeontool power low" my glx performance falls from about 12000 FPS to 7000FPS. I've changed the modified radeontool to only enable the 'Auto disable unused pipes clk" power saving bit, and the performance of glxgears came back to 12k FPS level, while retaining a cool device.
So I've put the radeontool binary in my /usr/local/sbin, did a chown root:root radeontool, and chmod +s radeontool, and made gnome to issue "radeontool power low" command when starting up to workaround the bug in the current fglrx driver.
Radeon tool commands:
radeontool power status - show the current status of the power saving registers
radeontool power low - enable power saving
I still don't know how to read the temperature sensor data from the card and if anybody knows the relevant registers or other way to access this info, please tell. I used Windows freshly booted after linux and my own fingers to see the temperature differences.
Temperature without using radeontool: 50 C
Temperature after using radeontool: 40-41 C
Link to the radeon hd mailing list:
Link to the discussion:
Direct link to the original modified radeon tool:
My modified version that only turns on disabling of the unused pipes is here EDIT updated version:
Relevant documentation from ATI: