2 * Author......: Jens Steube <jens.steube@gmail.com>
8 int adl_init (ADL_PTR
*adl
)
10 if (!adl
) return (-1);
12 memset (adl
, 0, sizeof (ADL_PTR
));
15 adl
->lib
= hc_dlopen ("atiadlxx.dll");
19 adl
->lib
= hc_dlopen ("atiadlxy.dll");
22 adl
->lib
= hc_dlopen ("libatiadlxx.so", RTLD_NOW
);
27 //if (data.quiet == 0)
28 // log_info ("WARNING: load ADL library failed, proceed without ADL HWMon enabled.");
33 HC_LOAD_FUNC(adl
, ADL_Main_Control_Destroy
, ADL_MAIN_CONTROL_DESTROY
, ADL
, 0)
34 HC_LOAD_FUNC(adl
, ADL_Main_Control_Create
, ADL_MAIN_CONTROL_CREATE
, ADL
, 0)
35 HC_LOAD_FUNC(adl
, ADL_Adapter_NumberOfAdapters_Get
, ADL_ADAPTER_NUMBEROFADAPTERS_GET
, ADL
, 0)
36 HC_LOAD_FUNC(adl
, ADL_Adapter_AdapterInfo_Get
, ADL_ADAPTER_ADAPTERINFO_GET
, ADL
, 0)
37 HC_LOAD_FUNC(adl
, ADL_Display_DisplayInfo_Get
, ADL_DISPLAY_DISPLAYINFO_GET
, ADL
, 0)
38 HC_LOAD_FUNC(adl
, ADL_Adapter_ID_Get
, ADL_ADAPTER_ID_GET
, ADL
, 0)
39 HC_LOAD_FUNC(adl
, ADL_Adapter_VideoBiosInfo_Get
, ADL_ADAPTER_VIDEOBIOSINFO_GET
, ADL
, 0)
40 HC_LOAD_FUNC(adl
, ADL_Overdrive5_ThermalDevices_Enum
, ADL_OVERDRIVE5_THERMALDEVICES_ENUM
, ADL
, 0)
41 HC_LOAD_FUNC(adl
, ADL_Overdrive5_Temperature_Get
, ADL_OVERDRIVE5_TEMPERATURE_GET
, ADL
, 0)
42 HC_LOAD_FUNC(adl
, ADL_Overdrive6_Temperature_Get
, ADL_OVERDRIVE6_TEMPERATURE_GET
, ADL
, 0)
43 HC_LOAD_FUNC(adl
, ADL_Overdrive5_CurrentActivity_Get
, ADL_OVERDRIVE5_CURRENTACTIVITY_GET
, ADL
, 0)
44 HC_LOAD_FUNC(adl
, ADL_Overdrive5_FanSpeedInfo_Get
, ADL_OVERDRIVE5_FANSPEEDINFO_GET
, ADL
, 0)
45 HC_LOAD_FUNC(adl
, ADL_Overdrive5_FanSpeed_Get
, ADL_OVERDRIVE5_FANSPEED_GET
, ADL
, 0)
46 HC_LOAD_FUNC(adl
, ADL_Overdrive6_FanSpeed_Get
, ADL_OVERDRIVE6_FANSPEED_GET
, ADL
, 0)
47 HC_LOAD_FUNC(adl
, ADL_Overdrive5_FanSpeed_Set
, ADL_OVERDRIVE5_FANSPEED_SET
, ADL
, 0)
48 HC_LOAD_FUNC(adl
, ADL_Overdrive6_FanSpeed_Set
, ADL_OVERDRIVE6_FANSPEED_SET
, ADL
, 0)
49 HC_LOAD_FUNC(adl
, ADL_Overdrive5_FanSpeedToDefault_Set
, ADL_OVERDRIVE5_FANSPEEDTODEFAULT_SET
, ADL
, 0)
50 HC_LOAD_FUNC(adl
, ADL_Overdrive5_ODParameters_Get
, ADL_OVERDRIVE5_ODPARAMETERS_GET
, ADL
, 0)
51 HC_LOAD_FUNC(adl
, ADL_Overdrive5_ODPerformanceLevels_Get
, ADL_OVERDRIVE5_ODPERFORMANCELEVELS_GET
, ADL
, 0)
52 HC_LOAD_FUNC(adl
, ADL_Overdrive5_ODPerformanceLevels_Set
, ADL_OVERDRIVE5_ODPERFORMANCELEVELS_SET
, ADL
, 0)
53 HC_LOAD_FUNC(adl
, ADL_Overdrive6_PowerControlInfo_Get
, ADL_OVERDRIVE6_POWERCONTROLINFO_GET
, ADL
, 0)
54 HC_LOAD_FUNC(adl
, ADL_Overdrive6_PowerControl_Get
, ADL_OVERDRIVE6_POWERCONTROL_GET
, ADL
, 0)
55 HC_LOAD_FUNC(adl
, ADL_Overdrive6_PowerControl_Set
, ADL_OVERDRIVE6_POWERCONTROL_SET
, ADL
, 0)
56 HC_LOAD_FUNC(adl
, ADL_Adapter_Active_Get
, ADL_ADAPTER_ACTIVE_GET
, ADL
, 0)
57 //HC_LOAD_FUNC(adl, ADL_DisplayEnable_Set, ADL_DISPLAYENABLE_SET, ADL, 0)
58 HC_LOAD_FUNC(adl
, ADL_Overdrive_Caps
, ADL_OVERDRIVE_CAPS
, ADL
, 0)
59 HC_LOAD_FUNC(adl
, ADL_Overdrive6_PowerControl_Caps
, ADL_OVERDRIVE6_POWERCONTROL_CAPS
, ADL
, 0)
60 HC_LOAD_FUNC(adl
, ADL_Overdrive6_Capabilities_Get
, ADL_OVERDRIVE6_CAPABILITIES_GET
, ADL
, 0)
61 HC_LOAD_FUNC(adl
, ADL_Overdrive6_StateInfo_Get
, ADL_OVERDRIVE6_STATEINFO_GET
, ADL
, 0)
62 HC_LOAD_FUNC(adl
, ADL_Overdrive6_CurrentStatus_Get
, ADL_OVERDRIVE6_CURRENTSTATUS_GET
, ADL
, 0)
63 HC_LOAD_FUNC(adl
, ADL_Overdrive6_State_Set
, ADL_OVERDRIVE6_STATE_SET
, ADL
, 0)
64 HC_LOAD_FUNC(adl
, ADL_Overdrive6_TargetTemperatureData_Get
, ADL_OVERDRIVE6_TARGETTEMPERATUREDATA_GET
, ADL
, 0)
65 HC_LOAD_FUNC(adl
, ADL_Overdrive6_TargetTemperatureRangeInfo_Get
, ADL_OVERDRIVE6_TARGETTEMPERATURERANGEINFO_GET
, ADL
, 0)
70 void adl_close (ADL_PTR
*adl
)
75 hc_dlclose (adl
->lib
);
81 int hm_ADL_Main_Control_Destroy (ADL_PTR
*adl
)
83 if (!adl
) return (-1);
85 int ADL_rc
= adl
->ADL_Main_Control_Destroy ();
89 log_info ("WARN: %s: %d\n", "ADL_Main_Control_Destroy()", ADL_rc
);
95 int hm_ADL_Main_Control_Create (ADL_PTR
*adl
, ADL_MAIN_MALLOC_CALLBACK callback
, int iEnumConnectedAdapters
)
97 if (!adl
) return (-1);
99 int ADL_rc
= adl
->ADL_Main_Control_Create (callback
, iEnumConnectedAdapters
);
101 if (ADL_rc
!= ADL_OK
)
103 log_info ("WARN: %s: %d\n", "ADL_Main_Control_Create()", ADL_rc
);
109 int hm_ADL_Adapter_NumberOfAdapters_Get (ADL_PTR
*adl
, int *lpNumAdapters
)
111 if (!adl
) return (-1);
113 int ADL_rc
= adl
->ADL_Adapter_NumberOfAdapters_Get (lpNumAdapters
);
115 if (ADL_rc
!= ADL_OK
)
117 log_info ("WARN: %s: %d\n", "ADL_Adapter_NumberOfAdapters_Get()", ADL_rc
);
123 int hm_ADL_Adapter_AdapterInfo_Get (ADL_PTR
*adl
, LPAdapterInfo lpInfo
, int iInputSize
)
125 if (!adl
) return (-1);
127 int ADL_rc
= adl
->ADL_Adapter_AdapterInfo_Get (lpInfo
, iInputSize
);
129 if (ADL_rc
!= ADL_OK
)
131 log_info ("WARN: %s: %d\n", "ADL_Adapter_AdapterInfo_Get()", ADL_rc
);
137 int hm_ADL_Display_DisplayInfo_Get (ADL_PTR
*adl
, int iAdapterIndex
, int *iNumDisplays
, ADLDisplayInfo
**lppInfo
, int iForceDetect
)
139 if (!adl
) return (-1);
141 int ADL_rc
= adl
->ADL_Display_DisplayInfo_Get (iAdapterIndex
, iNumDisplays
, lppInfo
, iForceDetect
);
143 if (ADL_rc
!= ADL_OK
)
145 log_info ("WARN: %s: %d\n", "ADL_Display_DisplayInfo_Get()", ADL_rc
);
151 int hm_ADL_Adapter_ID_Get (ADL_PTR
*adl
, int iAdapterIndex
, int *lpAdapterID
)
153 if (!adl
) return (-1);
155 int ADL_rc
= adl
->ADL_Adapter_ID_Get (iAdapterIndex
, lpAdapterID
);
157 if (ADL_rc
!= ADL_OK
)
159 log_info ("WARN: %s: %d\n", "ADL_Adapter_ID_Get()", ADL_rc
);
165 int hm_ADL_Adapter_VideoBiosInfo_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLBiosInfo
*lpBiosInfo
)
167 if (!adl
) return (-1);
169 int ADL_rc
= adl
->ADL_Adapter_VideoBiosInfo_Get (iAdapterIndex
, lpBiosInfo
);
171 if (ADL_rc
!= ADL_OK
)
173 log_info ("WARN: %s: %d\n", "ADL_Adapter_VideoBiosInfo_Get()", ADL_rc
);
179 int hm_ADL_Overdrive_ThermalDevices_Enum (ADL_PTR
*adl
, int iAdapterIndex
, int iThermalControllerIndex
, ADLThermalControllerInfo
*lpThermalControllerInfo
)
181 if (!adl
) return (-1);
183 int ADL_rc
= adl
->ADL_Overdrive5_ThermalDevices_Enum (iAdapterIndex
, iThermalControllerIndex
, lpThermalControllerInfo
);
185 if (ADL_rc
!= ADL_OK
)
187 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_ThermalDevices_Enum()", ADL_rc
);
193 int hm_ADL_Overdrive5_Temperature_Get (ADL_PTR
*adl
, int iAdapterIndex
, int iThermalControllerIndex
, ADLTemperature
*lpTemperature
)
195 if (!adl
) return (-1);
197 int ADL_rc
= adl
->ADL_Overdrive5_Temperature_Get (iAdapterIndex
, iThermalControllerIndex
, lpTemperature
);
199 if (ADL_rc
!= ADL_OK
)
201 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_Temperature_Get()", ADL_rc
);
207 int hm_ADL_Overdrive6_Temperature_Get (ADL_PTR
*adl
, int iAdapterIndex
, int *iTemperature
)
209 if (!adl
) return (-1);
211 int ADL_rc
= adl
->ADL_Overdrive6_Temperature_Get (iAdapterIndex
, iTemperature
);
213 if (ADL_rc
!= ADL_OK
)
215 log_info ("WARN: %s: %d\n", "ADL_Overdrive6_Temperature_Get()", ADL_rc
);
221 int hm_ADL_Overdrive_CurrentActivity_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLPMActivity
*lpActivity
)
223 if (!adl
) return (-1);
225 int ADL_rc
= adl
->ADL_Overdrive5_CurrentActivity_Get (iAdapterIndex
, lpActivity
);
227 if (ADL_rc
!= ADL_OK
)
229 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_CurrentActivity_Get()", ADL_rc
);
235 int hm_ADL_Overdrive5_FanSpeedInfo_Get (ADL_PTR
*adl
, int iAdapterIndex
, int iThermalControllerIndex
, ADLFanSpeedInfo
*lpFanSpeedInfo
)
237 if (!adl
) return (-1);
239 int ADL_rc
= adl
->ADL_Overdrive5_FanSpeedInfo_Get (iAdapterIndex
, iThermalControllerIndex
, lpFanSpeedInfo
);
241 if (ADL_rc
!= ADL_OK
)
243 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_FanSpeedInfo_Get()", ADL_rc
);
249 int hm_ADL_Overdrive5_FanSpeed_Get (ADL_PTR
*adl
, int iAdapterIndex
, int iThermalControllerIndex
, ADLFanSpeedValue
*lpFanSpeedValue
)
251 if (!adl
) return (-1);
253 int ADL_rc
= adl
->ADL_Overdrive5_FanSpeed_Get (iAdapterIndex
, iThermalControllerIndex
, lpFanSpeedValue
);
255 if ((ADL_rc
!= ADL_OK
) && (ADL_rc
!= ADL_ERR_NOT_SUPPORTED
)) // exception allowed only here
257 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_FanSpeed_Get()", ADL_rc
);
263 int hm_ADL_Overdrive6_FanSpeed_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLOD6FanSpeedInfo
*lpFanSpeedInfo
)
265 if (!adl
) return (-1);
267 int ADL_rc
= adl
->ADL_Overdrive6_FanSpeed_Get (iAdapterIndex
, lpFanSpeedInfo
);
269 if ((ADL_rc
!= ADL_OK
) && (ADL_rc
!= ADL_ERR_NOT_SUPPORTED
)) // exception allowed only here
271 log_info ("WARN: %s: %d\n", "ADL_Overdrive6_FanSpeed_Get()", ADL_rc
);
277 int hm_ADL_Overdrive5_FanSpeed_Set (ADL_PTR
*adl
, int iAdapterIndex
, int iThermalControllerIndex
, ADLFanSpeedValue
*lpFanSpeedValue
)
279 if (!adl
) return (-1);
281 int ADL_rc
= adl
->ADL_Overdrive5_FanSpeed_Set (iAdapterIndex
, iThermalControllerIndex
, lpFanSpeedValue
);
283 if ((ADL_rc
!= ADL_OK
) && (ADL_rc
!= ADL_ERR_NOT_SUPPORTED
)) // exception allowed only here
285 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_FanSpeed_Set()", ADL_rc
);
291 int hm_ADL_Overdrive6_FanSpeed_Set (ADL_PTR
*adl
, int iAdapterIndex
, ADLOD6FanSpeedValue
*lpFanSpeedValue
)
293 if (!adl
) return (-1);
295 int ADL_rc
= adl
->ADL_Overdrive6_FanSpeed_Set (iAdapterIndex
, lpFanSpeedValue
);
297 if ((ADL_rc
!= ADL_OK
) && (ADL_rc
!= ADL_ERR_NOT_SUPPORTED
)) // exception allowed only here
299 log_info ("WARN: %s: %d\n", "ADL_Overdrive6_FanSpeed_Set()", ADL_rc
);
305 int hm_ADL_Overdrive5_FanSpeedToDefault_Set (ADL_PTR
*adl
, int iAdapterIndex
, int iThermalControllerIndex
)
307 if (!adl
) return (-1);
309 int ADL_rc
= adl
->ADL_Overdrive5_FanSpeedToDefault_Set (iAdapterIndex
, iThermalControllerIndex
);
311 if ((ADL_rc
!= ADL_OK
) && (ADL_rc
!= ADL_ERR_NOT_SUPPORTED
)) // exception allowed only here
313 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_FanSpeedToDefault_Set()", ADL_rc
);
319 int hm_ADL_Overdrive_ODParameters_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLODParameters
*lpOdParameters
)
321 if (!adl
) return (-1);
323 int ADL_rc
= adl
->ADL_Overdrive5_ODParameters_Get (iAdapterIndex
, lpOdParameters
);
325 if (ADL_rc
!= ADL_OK
)
327 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_ODParameters_Get()", ADL_rc
);
333 int hm_ADL_Overdrive_ODPerformanceLevels_Get (ADL_PTR
*adl
, int iAdapterIndex
, int iDefault
, ADLODPerformanceLevels
*lpOdPerformanceLevels
)
335 if (!adl
) return (-1);
337 int ADL_rc
= adl
->ADL_Overdrive5_ODPerformanceLevels_Get (iAdapterIndex
, iDefault
, lpOdPerformanceLevels
);
339 if (ADL_rc
!= ADL_OK
)
341 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_ODPerformanceLevels_Get()", ADL_rc
);
347 int hm_ADL_Overdrive_ODPerformanceLevels_Set (ADL_PTR
*adl
, int iAdapterIndex
, ADLODPerformanceLevels
*lpOdPerformanceLevels
)
349 if (!adl
) return (-1);
351 int ADL_rc
= adl
->ADL_Overdrive5_ODPerformanceLevels_Set (iAdapterIndex
, lpOdPerformanceLevels
);
353 if (ADL_rc
!= ADL_OK
)
355 log_info ("WARN: %s: %d\n", "ADL_Overdrive5_ODPerformanceLevels_Set()", ADL_rc
);
361 int hm_ADL_Overdrive_PowerControlInfo_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLOD6PowerControlInfo
*powertune
)
363 if (!adl
) return (-1);
365 int ADL_rc
= adl
->ADL_Overdrive6_PowerControlInfo_Get (iAdapterIndex
, powertune
);
370 int hm_ADL_Overdrive_PowerControl_Get (ADL_PTR
*adl
, int iAdapterIndex
, int *iCurrentValue
)
372 if (!adl
) return (-1);
374 int default_value
= 0;
376 int ADL_rc
= adl
->ADL_Overdrive6_PowerControl_Get (iAdapterIndex
, iCurrentValue
, &default_value
);
381 int hm_ADL_Overdrive_PowerControl_Set (ADL_PTR
*adl
, int iAdapterIndex
, int level
)
383 if (!adl
) return (-1);
385 int ADL_rc
= ADL_ERR
;
387 ADLOD6PowerControlInfo powertune
= {0, 0, 0, 0, 0};
389 if ((ADL_rc
= hm_ADL_Overdrive_PowerControlInfo_Get (adl
, iAdapterIndex
, &powertune
)) != ADL_OK
)
391 log_info ("WARN: %s\n", "ADL_Overdrive6_PowerControl_Get", ADL_rc
);
395 int min
= powertune
.iMinValue
;
396 int max
= powertune
.iMaxValue
;
397 int step
= powertune
.iStepValue
;
399 if (level
< min
|| level
> max
)
401 log_info ("WARN: ADL PowerControl level invalid");
405 if (level
% step
!= 0)
407 log_info ("WARN: ADL PowerControl step invalid");
412 ADL_rc
= adl
->ADL_Overdrive6_PowerControl_Set (iAdapterIndex
, level
);
418 int hm_ADL_Adapter_Active_Get (ADL_PTR
*adl
, int iAdapterIndex
, int *lpStatus
)
420 if (!adl
) return (-1);
422 int ADL_rc
= adl
->ADL_Adapter_Active_Get (iAdapterIndex
, lpStatus
);
424 if (ADL_rc
!= ADL_OK
)
426 log_info ("WARN: %s: %d\n", "ADL_Adapter_Active_Get()", ADL_rc
);
433 int hm_ADL_DisplayEnable_Set (ADL_PTR *adl, int iAdapterIndex, int *lpDisplayIndexList, int iDisplayListSize, int bPersistOnly)
435 if (!adl) return (-1);
437 int ADL_rc = adl->ADL_DisplayEnable_Set (iAdapterIndex, lpDisplayIndexList, iDisplayListSize, bPersistOnly);
439 if (ADL_rc != ADL_OK)
441 log_info ("WARN: %s: %d\n", "ADL_DisplayEnable_Set()", ADL_rc);
448 int hm_ADL_Overdrive_Caps (ADL_PTR
*adl
, int iAdapterIndex
, int *od_supported
, int *od_enabled
, int *od_version
)
450 if (!adl
) return (-1);
452 int ADL_rc
= adl
->ADL_Overdrive_Caps (iAdapterIndex
, od_supported
, od_enabled
, od_version
);
457 int hm_ADL_Overdrive6_PowerControl_Caps (ADL_PTR
*adl
, int iAdapterIndex
, int *lpSupported
)
459 if (!adl
) return (-1);
461 int ADL_rc
= adl
->ADL_Overdrive6_PowerControl_Caps (iAdapterIndex
, lpSupported
);
466 int hm_ADL_Overdrive_Capabilities_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLOD6Capabilities
*caps
)
468 if (!adl
) return (-1);
470 int ADL_rc
= adl
->ADL_Overdrive6_Capabilities_Get (iAdapterIndex
, caps
);
475 int hm_ADL_Overdrive_StateInfo_Get (ADL_PTR
*adl
, int iAdapterIndex
, int type
, ADLOD6MemClockState
*state
)
477 if (!adl
) return (-1);
479 int ADL_rc
= adl
->ADL_Overdrive6_StateInfo_Get (iAdapterIndex
, type
, state
);
481 if (ADL_rc
== ADL_OK
)
483 // check if clocks are okay with step sizes
484 // if not run a little hack: adjust the clocks to nearest clock size (clock down just a little bit)
486 ADLOD6Capabilities caps
;
488 if ((hm_ADL_Overdrive_Capabilities_Get (adl
, iAdapterIndex
, &caps
)) != ADL_OK
)
490 log_info ("ERROR: failed to get ADL device capabilities");
495 if (state
->state
.aLevels
[0].iEngineClock
% caps
.sEngineClockRange
.iStep
!= 0)
497 log_info ("WARN: ADL engine step size invalid for performance level 1");
498 state
->state
.aLevels
[0].iEngineClock
-= state
->state
.aLevels
[0].iEngineClock
% caps
.sEngineClockRange
.iStep
;
501 if (state
->state
.aLevels
[1].iEngineClock
% caps
.sEngineClockRange
.iStep
!= 0)
503 log_info ("WARN: ADL engine step size invalid for performance level 2");
504 state
->state
.aLevels
[1].iEngineClock
-= state
->state
.aLevels
[1].iEngineClock
% caps
.sEngineClockRange
.iStep
;
507 if (state
->state
.aLevels
[0].iMemoryClock
% caps
.sMemoryClockRange
.iStep
!= 0)
509 log_info ("WARN: ADL memory step size invalid for performance level 1");
510 state
->state
.aLevels
[0].iMemoryClock
-= state
->state
.aLevels
[0].iMemoryClock
% caps
.sMemoryClockRange
.iStep
;
513 if (state
->state
.aLevels
[1].iMemoryClock
% caps
.sMemoryClockRange
.iStep
!= 0)
515 log_info ("WARN: ADL memory step size invalid for performance level 2");
516 state
->state
.aLevels
[1].iMemoryClock
-= state
->state
.aLevels
[1].iMemoryClock
% caps
.sMemoryClockRange
.iStep
;
523 int hm_ADL_Overdrive_CurrentStatus_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLOD6CurrentStatus
*status
)
525 if (!adl
) return (-1);
527 int ADL_rc
= adl
->ADL_Overdrive6_CurrentStatus_Get (iAdapterIndex
, status
);
532 int hm_ADL_Overdrive_State_Set (ADL_PTR
*adl
, int iAdapterIndex
, int type
, ADLOD6StateInfo
*state
)
534 if (!adl
) return (-1);
538 ADLOD6Capabilities caps
;
540 if ((hm_ADL_Overdrive_Capabilities_Get (adl
, iAdapterIndex
, &caps
)) != ADL_OK
)
542 log_info ("ERROR: failed to get ADL device capabilities");
547 if (state
->aLevels
[0].iEngineClock
< caps
.sEngineClockRange
.iMin
|| state
->aLevels
[1].iEngineClock
> caps
.sEngineClockRange
.iMax
)
549 log_info ("WARN: ADL engine clock outside valid range");
554 if (state
->aLevels
[1].iEngineClock
% caps
.sEngineClockRange
.iStep
!= 0)
556 log_info ("WARN: ADL engine step size invalid");
561 if (state
->aLevels
[0].iMemoryClock
< caps
.sMemoryClockRange
.iMin
|| state
->aLevels
[1].iMemoryClock
> caps
.sMemoryClockRange
.iMax
)
563 log_info ("WARN: ADL memory clock outside valid range");
568 if (state
->aLevels
[1].iMemoryClock
% caps
.sMemoryClockRange
.iStep
!= 0)
570 log_info ("WARN: ADL memory step size invalid");
575 int ADL_rc
= adl
->ADL_Overdrive6_State_Set (iAdapterIndex
, type
, state
);
580 int hm_ADL_Overdrive6_TargetTemperatureData_Get (ADL_PTR
*adl
, int iAdapterIndex
, int *cur_temp
, int *default_temp
)
582 if (!adl
) return (-1);
584 int ADL_rc
= adl
->ADL_Overdrive6_TargetTemperatureData_Get (iAdapterIndex
, cur_temp
, default_temp
);
589 int hm_ADL_Overdrive6_TargetTemperatureRangeInfo_Get (ADL_PTR
*adl
, int iAdapterIndex
, ADLOD6ParameterRange
*lpTargetTemperatureInfo
)
591 if (!adl
) return (-1);
593 int ADL_rc
= adl
->ADL_Overdrive6_TargetTemperatureRangeInfo_Get (iAdapterIndex
, lpTargetTemperatureInfo
);