Add support for zetSysmanTemperatureGetState API

Change-Id: I8c41cec6e2c7e69489882df7fc05352caef503c7
Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
This commit is contained in:
Jitendra Sharma 2020-05-21 17:29:11 +05:30 committed by sys_ocldev
parent b156393615
commit 1780cc01e3
7 changed files with 23 additions and 3 deletions

View File

@ -13,6 +13,10 @@ ze_result_t LinuxTemperatureImp::getSensorTemperature(double *pTemperature) {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
bool LinuxTemperatureImp::isTempModuleSupported() {
return false;
}
LinuxTemperatureImp::LinuxTemperatureImp(OsSysman *pOsSysman) {
LinuxSysmanImp *pLinuxSysmanImp = static_cast<LinuxSysmanImp *>(pOsSysman);
pSysfsAccess = &pLinuxSysmanImp->getSysfsAccess();

View File

@ -17,6 +17,7 @@ namespace L0 {
class LinuxTemperatureImp : public OsTemperature, public NEO::NonCopyableClass {
public:
ze_result_t getSensorTemperature(double *pTemperature) override;
bool isTempModuleSupported() override;
LinuxTemperatureImp(OsSysman *pOsSysman);
LinuxTemperatureImp() = default;
~LinuxTemperatureImp() override = default;
@ -24,4 +25,4 @@ class LinuxTemperatureImp : public OsTemperature, public NEO::NonCopyableClass {
protected:
SysfsAccess *pSysfsAccess = nullptr;
};
} // namespace L0
} // namespace L0

View File

@ -15,8 +15,9 @@ struct OsSysman;
class OsTemperature {
public:
virtual ze_result_t getSensorTemperature(double *pTemperature) = 0;
virtual bool isTempModuleSupported() = 0;
static OsTemperature *create(OsSysman *pOsSysman);
virtual ~OsTemperature() = default;
};
} // namespace L0
} // namespace L0

View File

@ -27,6 +27,10 @@ ze_result_t TemperatureImp::temperatureGetState(double *pTemperature) {
return pOsTemperature->getSensorTemperature(pTemperature);
}
void TemperatureImp::init() {
this->initSuccess = pOsTemperature->isTempModuleSupported();
}
TemperatureImp::TemperatureImp(OsSysman *pOsSysman) {
pOsTemperature = OsTemperature::create(pOsSysman);

View File

@ -25,6 +25,6 @@ class TemperatureImp : public NEO::NonCopyableClass, public Temperature {
~TemperatureImp() override;
OsTemperature *pOsTemperature = nullptr;
void init() {}
void init();
};
} // namespace L0

View File

@ -12,12 +12,17 @@ namespace L0 {
class WddmTemperatureImp : public OsTemperature {
public:
ze_result_t getSensorTemperature(double *pTemperature) override;
bool isTempModuleSupported() override;
};
ze_result_t WddmTemperatureImp::getSensorTemperature(double *pTemperature) {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
bool WddmTemperatureImp::isTempModuleSupported() {
return false;
}
OsTemperature *OsTemperature::create(OsSysman *pOsSysman) {
WddmTemperatureImp *pWddmTemperatureImp = new WddmTemperatureImp();
return static_cast<OsTemperature *>(pWddmTemperatureImp);

View File

@ -40,6 +40,11 @@ class SysmanTemperatureFixture : public DeviceFixture, public ::testing::Test {
DeviceFixture::TearDown();
}
};
TEST_F(SysmanTemperatureFixture, GivenValidOSTempHandleWhenCheckingForTempSupportThenExpectFalseToBeReturned) {
EXPECT_FALSE(pOsTemperature->isTempModuleSupported());
}
TEST_F(SysmanTemperatureFixture, GivenComponentCountZeroWhenCallingZetSysmanTemperatureGetThenZeroCountIsReturnedAndVerifySysmanTemperatureGetCallSucceeds) {
uint32_t count = 0;
ze_result_t result = zetSysmanTemperatureGet(hSysman, &count, NULL);