From 393dc15427d164acb1bba19270d6613d89023646 Mon Sep 17 00:00:00 2001 From: chenchong Date: Tue, 9 Nov 2021 11:39:56 +0800 Subject: [PATCH] modify_code Signed-off-by: chenchong --- model/sensor/driver/als/sensor_als_driver.c | 4 ++-- model/sensor/driver/chipset/als/als_bh1745.c | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/model/sensor/driver/als/sensor_als_driver.c b/model/sensor/driver/als/sensor_als_driver.c index 5208a28e4..e2b1c3f95 100755 --- a/model/sensor/driver/als/sensor_als_driver.c +++ b/model/sensor/driver/als/sensor_als_driver.c @@ -300,7 +300,7 @@ BASE_CONFIG_EXIT: (void)memset_s(&drvData->alsCfg->sensorInfo, sizeof(struct SensorBasicInfo), 0, sizeof(struct SensorBasicInfo)); (void)memset_s(&drvData->alsCfg->busCfg, sizeof(struct SensorBusCfg), 0, sizeof(struct SensorBusCfg)); (void)memset_s(&drvData->alsCfg->sensorAttr, sizeof(struct SensorAttr), 0, sizeof(struct SensorAttr)); - return NULL; + return drvData->alsCfg; } void AlsReleaseCfgData(struct SensorCfgData *alsCfg) @@ -346,7 +346,7 @@ void AlsReleaseDriver(struct HdfDeviceObject *device) struct AlsDrvData *drvData = (struct AlsDrvData *)device->service; CHECK_NULL_PTR_RETURN(drvData); - if (drvData->detectFlag) { + if (drvData->detectFlag && drvData->alsCfg != NULL) { AlsReleaseCfgData(drvData->alsCfg); } diff --git a/model/sensor/driver/chipset/als/als_bh1745.c b/model/sensor/driver/chipset/als/als_bh1745.c index b1fc82fc6..2832402e4 100755 --- a/model/sensor/driver/chipset/als/als_bh1745.c +++ b/model/sensor/driver/chipset/als/als_bh1745.c @@ -190,7 +190,8 @@ int32_t Bh1745InitDriver(struct HdfDeviceObject *device) } drvData->sensorCfg = AlsCreateCfgData(device->property); - if (drvData->sensorCfg == NULL) { + if (drvData->sensorCfg == NULL || drvData->sensorCfg->root == NULL) { + HDF_LOGD("%s: Creating alscfg failed because detection failed", __func__); return HDF_ERR_NOT_SUPPORT; } @@ -218,8 +219,10 @@ void Bh1745ReleaseDriver(struct HdfDeviceObject *device) struct Bh1745DrvData *drvData = (struct Bh1745DrvData *)device->service; CHECK_NULL_PTR_RETURN(drvData); - AlsReleaseCfgData(drvData->sensorCfg); - drvData->sensorCfg = NULL; + if (drvData->sensorCfg != NULL) { + AlsReleaseCfgData(drvData->sensorCfg); + drvData->sensorCfg = NULL; + } OsalMemFree(drvData); } -- Gitee