IOPlatformPWMFanControl.cpp [plain text]
#include "IOPlatformPWMFanControl.h"
#define super IOPlatformControl
OSDefineMetaClassAndStructors(IOPlatformPWMFanControl, IOPlatformControl)
IOReturn IOPlatformPWMFanControl::initPlatformControl( const OSDictionary *dict )
{
IOReturn status;
const OSNumber * ticks;
if ((status = super::initPlatformControl(dict)) != kIOReturnSuccess)
return status;
if ((ticks = OSDynamicCast(OSNumber, dict->getObject("ticks-per-cycle"))) != NULL && ticks != 0)
{
ticksPerCycle = ticks->unsigned32BitValue();
}
else
{
ticksPerCycle = 255;
}
CONTROL_DLOG("IOPlatformPWMFanControl::initPlatformControl ticksPerCycle = %u\n", ticksPerCycle);
return status;
}
ControlValue IOPlatformPWMFanControl::applyTargetValueTransform( ControlValue hwReading )
{
ControlValue pluginReading;
pluginReading = (hwReading * 100) / ticksPerCycle;
return pluginReading;
}
ControlValue IOPlatformPWMFanControl::applyTargetValueInverseTransform( ControlValue pluginReading )
{
ControlValue hwReading;
hwReading = (pluginReading * ticksPerCycle) / 100;
return hwReading;
}