@krumplee: how do you use this undocumented function?
Download ADL SDK from
http://developer.amd.com/Downloads/ADL_SDK_3.0.zipIt is enough to copy adl_sdk.h into /usr/include
Save the following code as powercontrol.cpp
#include
#include
#include
using namespace std;
extern "C"
{
int ADL_Main_Control_Create (ADL_MAIN_MALLOC_CALLBACK, int);
int ADL_Adapter_NumberOfAdapters_Get(int *);
int ADL_Overdrive5_PowerControl_Set(int, int);
int ADL_Overdrive5_PowerControl_Get(int, int *, int *);
}
void* __stdcall Alloc ( int iSize )
{
void* lpBuffer = malloc ( iSize );
return lpBuffer;
}
void __stdcall ADL_Main_Memory_Free ( void** lpBuffer )
{
if ( NULL != *lpBuffer )
{
free ( *lpBuffer );
*lpBuffer = NULL;
}
}
int main()
{
int adapters, a=99, b=99;
if(ADL_Main_Control_Create (Alloc, 1) != ADL_OK)
{
cout << "ADL initialization error!" << endl;
return -1;
}
if(ADL_Adapter_NumberOfAdapters_Get(&adapters) != ADL_OK)
{
cout << "Cannot get the number of adapters!" << endl;
return -1;
}
cout << "Found " << adapters << " adapters" << endl;
for(int i=0; i {
if(ADL_Overdrive5_PowerControl_Set(i, 20) != ADL_OK)
{
cout << "Failed to set " << i << " power control" << endl;
return -1;
} else { cout << "Value set for " << i << endl; }
if(ADL_Overdrive5_PowerControl_Get(i, &a, &b) != ADL_OK)
{
cout << "Failed to get " << i << " power control" << endl;
return -1;
}
cout << "result: " << a << "%, b: " << b << endl;
}
return 0;
}
Finally compile:
g++ -DLINUX -o powercontrol powercontrol.cpp -latiadlxx