From nobody Sun Jun 14 11:27:29 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3049315D49 for ; Thu, 2 Apr 2026 15:17:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775143057; cv=none; b=GqCkUGW9p+7O66ykMiMFyN9JptVECNP6R5Rk+OESeB7OsDmGFCyxNiCGFH7RGySLON/USjxv9o13nhaL6LbqqRiz5IB28qfb383kJ1eiQB9es8ZxjecstGlYt11aqPoNK+WMYWoVlLREB2B90FfafMb2uvGXiHbZn8SpgvM9DHQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775143057; c=relaxed/simple; bh=qqYIlX/ogMR1tiVGPxMuhx0CZ/IF8ISju/5h5Esyr1I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WLn+4po0rGDdJgYdAwKww/IX+TmzMEc4+2xZKU4LRvs5yuBzAHQwUxLV91rrALQUhsWHfgCGpfw9bSdgCp7jiDPIeuqRjZRW0bf71bcXF9jE6VUAMFyRiNTekZbizRStaKC/gCfyt9RFOixAh5MahHcyoSuWdVhL2/4XCNThC0M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mW8jz0bm; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mW8jz0bm" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4853c1ca73aso10106925e9.2 for ; Thu, 02 Apr 2026 08:17:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775143054; x=1775747854; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QjcxZkjC7ao4lhP5f+c/QRvePzRlIefpoXPLd+zFiP8=; b=mW8jz0bmh1zLoXxZ0dPp2SCFixZPHKNDUEkBZ13cA01rttAILLKaLcdHm4OF4Y5ETu zxoOMEWUwg+y+UkfqWvbhPj78pTC4n2vjVptI72Qfhd4rikET4L0dEFF2E1rw+/zelrM SauNq3hGZUHD1Cywt0C8dFByAHG6grnMSgMb19zYdfwL1mWoN7KWCjR2TShR+RxDJAzn oMb9UPYEbH0FttryUY9peXcdrqioZ0E9lB61WNxYKsuD0odqvke3mSEH/Es4H/h5F28n yVWJ4iWEKrTPVq+I1ngj0NWC5+DXLCu6bRQAWmff2s0UybTmLh/x9hEUrz/EV/cj3/PJ XQiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775143054; x=1775747854; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QjcxZkjC7ao4lhP5f+c/QRvePzRlIefpoXPLd+zFiP8=; b=V93EfQaTr+12DERM04jQCBNjIqiuVf9RajZL8TU5zop5HyXgwUpazGbznbiFeaBGut 13Xpp4I2IBnx0Z0QTHdjNP4/smMvqsb19pjemAErOe8HHAr6VZArAGQ37yFeEMxkUqWZ jb6bRmjQorf3izQhr1wZ5TKJFgMpWKn+TP4yt0RmPD3m/nManC++YTPl5XqGFlR8xYYq JCJ5HiLbwNV8tHQ1y1fQgd5D+ZbZoVArzqPwdAtJQgrsjdK3RTDQLZX+9WO8I/FIPCm+ CCm6+EgS+2l/pXj7ATmHS1T/D7Wq80xYdI5lX8nBiaaGoZm7EdehFZdhwekitkEbXYZG QKkg== X-Forwarded-Encrypted: i=1; AJvYcCV4Vkh8SORq9VgjiS7L9S/kQhDg/0TgUv3vVOcO9IZR5zWNvLNMUMiI1JxfIOsk6BlmTu82FLZm4SwXvD0=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/8szDIF8VnypScWXBs1qoBLOItU51G+YxRSLCQbmcS5J5MvzA 1GkelokkosgpnqWElzwoFHKwRZ1Rf856xcSIMyowCQRjxy5nA1OPBSpv X-Gm-Gg: ATEYQzwuLCgmOC0Rhuudb8MbNaerR1DJq0m3AIP1/70dnQAOIiTvuOBuL2mMu4/EVLp y5GvAVxlKE57zq+DFmnRfbsTvYWcraAlciNe1VN0L8gBQEsoZTgGMWBqm2pdBhA8MHuk+v7aBmd 3RuTNTGne1aK/bF3IWuakKj2LZCoZuOmK2BPmwxkN/ktesFUx3TdEvxyCqtt1vsZ4EYEvSYupQp i5bklRyD0sILSUqa6XS1Cmv9yKet4jx1WTaBNNVKyjVwVl+LI59qP0g8jiBtSjRMjV1g4LVOmyK JH1kTma+pgnvpKL4U8zNqFWjxTXm44MWL5/JjPMFxUQIg7eSWTo2FeEaGAUEvZViTogWZk4Nap9 zFxyUXyncXQR2ITcEeyqzzJfkfgynU3i8aNao28DxTV98/8y6lnITKOkaIrLbHXsIRMKMk79YMd Uj/yGiEvNKHOT4QfHL5hmyu7le3trmYcmrHxCdsPbHDL1wjXk7u9D+ X-Received: by 2002:a05:600c:34c1:b0:480:69b6:dfed with SMTP id 5b1f17b1804b1-4888359dc50mr132126455e9.24.1775143054090; Thu, 02 Apr 2026 08:17:34 -0700 (PDT) Received: from aldo-conte-t14.tailf68ad9.ts.net ([217.61.173.50]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4887e80a616sm327405075e9.2.2026.04.02.08.17.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 08:17:33 -0700 (PDT) From: Aldo Conte To: jic23@kernel.org Cc: ktsai@capellamicro.com, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, daniel.baluta@intel.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, skhan@linuxfoundation.org, me@brighamcampbell.com, linux-kernel-mentees@lists.linux.dev Subject: [PATCH 1/2] iio: light: cm3323: fix reg_conf not being initialized correctly Date: Thu, 2 Apr 2026 17:17:29 +0200 Message-ID: <20260402151730.18901-2-aldocontelk@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402151730.18901-1-aldocontelk@gmail.com> References: <20260402151730.18901-1-aldocontelk@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The code stores the return value of i2c_smbus_write_word_data() in data->reg_conf; however, this value represents the result of the write operation and not the value actually written to the configuration register. This meant that the contents of data->reg_conf did not truly reflect the contents of the hardware register. Instead, save the value of the register before the write and use this value in the I2C write. The bug was found by code inspection: i2c_smbus_write_word_data() returns 0 on success, not the value written to the register. Tested using i2c-stub on a Raspberry Pi 3B running a custom 6.19.10 kernel. Before loading the driver , the configuration register 0x00 CM3323_CMD_CONF was populated with 0x0030 using i2cset -y 11 0x10 0x00 0x0030 w, encoding an integration time of 320ms in bits[6:4]. Due to the error into the initialization of data->reg_conf in cm3323_init(), the print of integration_time returns 0.040000 instead of the expected 0.320000. This happens because the read of the integration_time depends on cm3323_get_it_bits() that is based on the value of data->reg_conf, which is erroneously set to 0. With this fix applied, data->reg_conf correctly saves 0x0030 after init and the successive integration_time reports 0.320000 as expected. Fixes: 8b0544263761 ("iio: light: Add support for Capella CM3323 color sens= or") Signed-off-by: Aldo Conte --- drivers/iio/light/cm3323.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/iio/light/cm3323.c b/drivers/iio/light/cm3323.c index 79ad6e2209ca..0fe61b8a7029 100644 --- a/drivers/iio/light/cm3323.c +++ b/drivers/iio/light/cm3323.c @@ -89,15 +89,14 @@ static int cm3323_init(struct iio_dev *indio_dev) =20 /* enable sensor and set auto force mode */ ret &=3D ~(CM3323_CONF_SD_BIT | CM3323_CONF_AF_BIT); + data->reg_conf =3D ret; =20 - ret =3D i2c_smbus_write_word_data(data->client, CM3323_CMD_CONF, ret); + ret =3D i2c_smbus_write_word_data(data->client, CM3323_CMD_CONF, data->re= g_conf); if (ret < 0) { dev_err(&data->client->dev, "Error writing reg_conf\n"); return ret; } =20 - data->reg_conf =3D ret; - return 0; } =20 --=20 2.53.0 From nobody Sun Jun 14 11:27:29 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E3D133F8CA for ; Thu, 2 Apr 2026 15:17:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775143059; cv=none; b=csaKVouqrEUt3k/hDrHb1MqO28O2IznsSVhweiY6CJ5MbvhDOtYY2mifzR7xDgtzSX4D/8ql9vbJV8D8CJ1Pg2ELPk3lTXqgR0d017w+o4222a7SfplJBLaAmyS8RrH/9ncWncKHjm1Y0af74pM0/Z9fSrlPRAOaqzkusl2FTpw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775143059; c=relaxed/simple; bh=3kdxjSUeVf/FuGDAAytGCSHU0OdWoSD8W7W/mC21/jE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ivVIxtrzOIHENjm5p63RxPKxVt0x0163ouJXcATaMo5A495As7nuuApPxrBH6yfkGutffGRnqOshPAWuOluc4I3efPwz0NyJVVtnLGVcaMxW+HncqknmuTccZxfY2Dsq3ZmmoFan6A3yLtMImbodn/UDfiQwhiZZMNKhYutHeUs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b8g/HXzk; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b8g/HXzk" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4853e1ce427so11961925e9.3 for ; Thu, 02 Apr 2026 08:17:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775143056; x=1775747856; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FdvV3uoZ82XkebWsgkeF8rl2q6Pk7QwD6xIvmUVJSs0=; b=b8g/HXzkuW57S1g27j3U6XsBR6y73flgCWQbnHkJ0Y4u0qUlQsQujlm65dlJRI+Ite 1ABQ9x2DlBfUkrzINqclmopelene2a/0YRr1XE6DfjkUsq4VNurw3ulnqqrUz8Y0ENJX Bgq1pL9kOvCrtndMdscTvJn/ZBpn8C5Gw0wdu4RsizAaiREtKTzTF8/Izck4vYwYn99i SVmu/AHfFAHPEJLN1QI8BRcnT3qxpdSSH7c/vPtm4Gh6rGjlTTmpvoK9VDRh72qRrHWq KBOMu2Ju5oxmnctdqzeFuSqSrRuUdw+bXh7ag1NlY1pPogHeSO5ci3Zeywfy9FK1vQw6 rQqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775143056; x=1775747856; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=FdvV3uoZ82XkebWsgkeF8rl2q6Pk7QwD6xIvmUVJSs0=; b=hck/SOHJlfLGCWazNZeKC7s0EtCMpEfhJIEdT3m6xSE92VNvXkTD39mEcHwSgoHqFO 4jHlgsBmg/TWfIzRRyHTam+DpcpNNzCIEmEEMVr2iIx32VvGmdPSNtfIcWoIcsq9y3v+ 7V9Fwf3KXNGpiNovC2LkcEroG8Uv0X/Tpzj1ze5vlbDOAli82Ma7JF3Bazyp7N9kNtex PPhcYvSZbGLhDm3tghCYzr71uPKiaQQUXIi8CG/mEYr8I9CFaS2GLG48BinNpO6ZhopC SWWR3J7WjT6yyDlfcJK5lPll3rEUgNX/ZVkVMMeaQ/deojlcSHMkPYdcHgFI3i6BNXnp nh7g== X-Forwarded-Encrypted: i=1; AJvYcCVgH7G/3JwbHA+RVFen7eFLPBPVO2SICUnDsV29V2GVOhky2pFnvuERo1/YeMP9Dvh97Iw4PV2d9eXvJak=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6QvyrskzQWYVrdluNTc/6/jmofqexqLjDYZrPjl/WPbZ9F6CT F5tdb5eNIIotzA31bCBwdTSeQTiqo2+jfX+QjLDdF4P7/w74UPG+QjVEyJQm4A== X-Gm-Gg: ATEYQzyydwi8qdk3TmvyXxHCFM/01JsuV/KFBi/aOH7RXrd8/4H0hrP12+xGbJCAOeo HaanT/tS0sHtfUtzzbuGh2+RhiRxFaeIgUBm7fDdIpfjSNuUjQu5Unq6Ip6zNSstNX4vh+DUhkK nUpnkcYczWU9oBnNE5Pdhpc1Fd9hodTm93/gcIODfIJnPzlLDYO8VZE8l3zBRPP7LIo+GakKcCv hha/Fc7y/kj9u/DeqsbDVmDuDrVq06IF5+K1YXjZinTSiIdXVaSmEcQYUl5OQWYaShxiDrMJD6+ UL6jU14AQ35f0jwYqXPABneCrgYnZhlFK9G9GXACJMgfZCz5JFXzQkM7gYEMKFDlu1b65CPN086 5AZsm3qvrzwSF4zWBPg3oeUU/OnDp0spmwr7Ty5Jn7tpvV6YpVvrGiZQupmwJ0QLn1ubeLGNdoI tgEbloCqNEPDx6fWh+qPuSMGBZTV5DNfdXDq0l69J+u2Y1pj1R9zhK X-Received: by 2002:a05:600c:c107:b0:487:59c:2bad with SMTP id 5b1f17b1804b1-488835954f3mr96635585e9.24.1775143055669; Thu, 02 Apr 2026 08:17:35 -0700 (PDT) Received: from aldo-conte-t14.tailf68ad9.ts.net ([217.61.173.50]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4887e80a616sm327405075e9.2.2026.04.02.08.17.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 08:17:34 -0700 (PDT) From: Aldo Conte To: jic23@kernel.org Cc: ktsai@capellamicro.com, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, daniel.baluta@intel.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, skhan@linuxfoundation.org, me@brighamcampbell.com, linux-kernel-mentees@lists.linux.dev Subject: [PATCH 2/2] iio: light: cm3323: use dev_err_probe() in probe path Date: Thu, 2 Apr 2026 17:17:30 +0200 Message-ID: <20260402151730.18901-3-aldocontelk@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402151730.18901-1-aldocontelk@gmail.com> References: <20260402151730.18901-1-aldocontelk@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace dev_err() calls with dev_err_probe() in cm3323_init() and cm3323_probe(). cm3323_init() is called by cm3323_probe() , so using dev_err_probe() ensures that deferred probing is handled correctly and simplifies error paths. Remove the redundant error message in cm3323_probe(). Tested on a Raspberry Pi 3B using i2c-stub. The driver probes successfully and successfully read integration_time after this change. Signed-off-by: Aldo Conte --- drivers/iio/light/cm3323.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/iio/light/cm3323.c b/drivers/iio/light/cm3323.c index 0fe61b8a7029..43c2929fc724 100644 --- a/drivers/iio/light/cm3323.c +++ b/drivers/iio/light/cm3323.c @@ -82,20 +82,18 @@ static int cm3323_init(struct iio_dev *indio_dev) struct cm3323_data *data =3D iio_priv(indio_dev); =20 ret =3D i2c_smbus_read_word_data(data->client, CM3323_CMD_CONF); - if (ret < 0) { - dev_err(&data->client->dev, "Error reading reg_conf\n"); - return ret; - } + if (ret < 0) + return dev_err_probe(&data->client->dev, ret, + "Error reading reg_conf\n"); =20 /* enable sensor and set auto force mode */ ret &=3D ~(CM3323_CONF_SD_BIT | CM3323_CONF_AF_BIT); data->reg_conf =3D ret; =20 ret =3D i2c_smbus_write_word_data(data->client, CM3323_CMD_CONF, data->re= g_conf); - if (ret < 0) { - dev_err(&data->client->dev, "Error writing reg_conf\n"); - return ret; - } + if (ret < 0) + return dev_err_probe(&data->client->dev, ret, + "Error writing reg_conf\n"); =20 return 0; } @@ -236,10 +234,9 @@ static int cm3323_probe(struct i2c_client *client) indio_dev->modes =3D INDIO_DIRECT_MODE; =20 ret =3D cm3323_init(indio_dev); - if (ret < 0) { - dev_err(&client->dev, "cm3323 chip init failed\n"); + if (ret < 0) return ret; - } + =20 ret =3D devm_add_action_or_reset(&client->dev, cm3323_disable, indio_dev); if (ret < 0) --=20 2.53.0