Check the temperature with:
aticonfig --adapter=0 --od-gettemperature
and fan speed with
aticonfig --pplib-cmd "get fanspeed 0"
If the temperature is too high, try setting the fan speed like this:
aticonfig --pplib-cmd "set fanspeed 0 80"
In Windows world they have all those fancy GUIs 
my problem is I get
PPLIB command execution has failed!
ati_pplib_cmd: execute "get" failed!
and with cgminer i have no problem with these cards runing at 70% fan speed with 76 degree
thanks for all your help!!
Since aticonfig doesnt allow me to control the fan at the 290 cards, I use now following solution to protect against the temperature run to 94 degree.
I first start cgminer and when card reaches arround 76 degree and 60-70% fan rotation I quickly switch to memory coin miner and the fan stays at that rotation speed.
It seems to me the auto speed of the cards is set way too low around 43 % fan rotation.
Another option is get the source of AMDOverDriveCtrl and patch is as follow:
diff --git a/src/adl.cpp b/src/adl.cpp │
index ffb1dea..b9631a1 100644 │
--- a/src/adl.cpp │
+++ b/src/adl.cpp │
@@ -740,9 +740,9 @@ int ADL::UpdateData() │
mODParameters.iSize = sizeof(ADLODParameters); │
if (SAVE_CALL(ADL_Overdrive5_ODParameters_Get)(mGPUIndex, &mODParameters) == ADL_OK) │
{ │
- if (mODParameters.sEngineClock.iMin == mODParameters.sEngineClock.iMax || │
+ if (/*mODParameters.sEngineClock.iMin == mODParameters.sEngineClock.iMax || │
mODParameters.sMemoryClock.iMin == mODParameters.sMemoryClock.iMax || │
- mODParameters.sVddc.iMin == mODParameters.sVddc.iMax || │
+ mODParameters.sVddc.iMin == mODParameters.sVddc.iMax || */ │
mODParameters.sEngineClock.iMin > mODParameters.sEngineClock.iMax || │
mODParameters.sMemoryClock.iMin > mODParameters.sMemoryClock.iMax || │
mODParameters.sVddc.iMin > mODParameters.sVddc.iMax) │