From 7ffdae8c47e96d6e6e5859485c4b4caa32608fe0 Mon Sep 17 00:00:00 2001 From: RubenKelevra Date: Thu, 17 Jul 2025 07:39:51 +0200 Subject: [PATCH] hm1055: fix set_brightness error handling & logging The old code always wrote BRIGHT even if enabling ISPCTRL5 failed, while also overwriting the first error code. It also used `if (ret != 0)` to log/update status, so we reported success when the write actually failed. Guard the BRIGHT write behind a successful ISPCTRL5 write and only log / update `sensor->status.brightness` when both writes succeed. This keeps the original error, and prevents false success reports. --- sensors/hm1055.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sensors/hm1055.c b/sensors/hm1055.c index 66b9e4259a..97c6e082dc 100755 --- a/sensors/hm1055.c +++ b/sensors/hm1055.c @@ -449,8 +449,11 @@ static int set_brightness(sensor_t *sensor, int level) ispctrl5 |= 0x40; // enable brightness ret = write_reg(sensor->slv_addr, ISPCTRL5, ispctrl5); - ret = write_reg(sensor->slv_addr, BRIGHT, brightness); - if (ret != 0) + if (ret == 0) + { + ret = write_reg(sensor->slv_addr, BRIGHT, brightness); + } + if (ret == 0) { ESP_LOGD(TAG, "Set brightness to: %d", level); sensor->status.brightness = level;