From nobody Sun Jun 14 18:59:20 2026 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (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 055033630B8 for ; Tue, 7 Apr 2026 15:17:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775575030; cv=none; b=RsHLsCPpCmwg6qT5IN57sgJO7elaMg1U2TrDGfgFVQntz8W6r6HZ2yCBmWtxn7nUNjWS4AXqsFlz3i+Khj0r790Y4+D1gnJdZdzFUYZXsunwuzrHZjziD6h02cLBTBx7Rz9Hc/G3E8Pnby+r4K+k5Y8dQ7O+Ruq3ZCH5Bmio2k8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775575030; c=relaxed/simple; bh=bMBU/Sp/Hd+8dWJzIBSChhEWAq6h8QnFVVi6t0Td8CM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LJmoUP21GEFPDb+fUfPt/kB+s2LES06e09DF2HiWSEhZz/35kYXAmsZW8FOr0yaUYebruN4Ic8fwv7N9odRPNIWW68Fy3Ys41yTyrZwls48oMbxIdg9Jfgoqlomwlo6fGRjamrvYlcrckPPkonOY71oQN4gLJocAbz220SyyYqA= 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=lSnqMTS9; arc=none smtp.client-ip=209.85.221.43 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="lSnqMTS9" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-43b8e8e7432so4219334f8f.1 for ; Tue, 07 Apr 2026 08:17:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775575027; x=1776179827; 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=I7ul7R4AdJ4kZnhxBsfC1ozDk40Au8wWcQ7o5oSGrE0=; b=lSnqMTS9+wbM/oBZcgbxOGZKhLCkCDXgnvavJHOE9jyx/nW+DTT+BCCST0DniaCA5Q 6zerFEx/9u2aCoAIX0ZZDQZev8zma9nXtPpJUuyMIz1Bd11wpUEqB8uTMKQsVX9UFiCJ XjD7tKnXTRivw8RuMaqrTG+vshmSfz+y+y/brYyC9RqnhFkmNrCpbp2Lo6LyyR0VoBJT sciA2G1FZrxGBso3A1VKI0X14bMmojSl6BmarLJVo8pPUXxDy0dlF5GNtm7RPIltSyE9 grminKiiqxe6iCSnUeHsHmNhPOVAulunqHprRnKa50fiIgTdVsUn7y1IAxpv3UtGMrit +itw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775575027; x=1776179827; 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=I7ul7R4AdJ4kZnhxBsfC1ozDk40Au8wWcQ7o5oSGrE0=; b=GRlkYUV8iOECziMzBvs3cfH5t29t7+F9js6KYkmhq3VLT+39UsnsGC0H/evHlFdUKw uLiIuJFS9oXeUpRTOOSF128sLPUYeEC/N4QNpg9jKr8DWstV9JBWQKMFsKmwgfvwjRSg 40A0GUL3j1OIIahSTHX6GH55rLS+ICKAKSYlu5xc/TbcKxgcStWk+5GMAinnRgJ/SvTd jmib7vem8U5r1pjZJk5DooW1bQEgC/CMoX4uC1zxqjp363oTtlR5M0JSwtIOGVo5PrQD gP/NGJ/zD3cw9pDyyzF0p6MVEYI8FMqE4SV1wsYE/ZpyqsT6lhYYALjmox8/ydwZ9uk8 I7SA== X-Forwarded-Encrypted: i=1; AJvYcCXB7jVcQrYNzLOLP+eIjQX/FwT6qsFXYBL0cVfRIkVLi+8pkGO6Lvi1HpM8VE6qNcib8elpCwFQ2oadqAY=@vger.kernel.org X-Gm-Message-State: AOJu0YwprYC6jvsq8SXKDwVSS59PBWxfGV/eNAVJ8q2gRu6b39a1FxUc 42dqN4CIwOlLahoMTfBmuqVtzMQkX2zkmIVh7/btB0Tx6T5VdWkCgkbZ X-Gm-Gg: AeBDietpKESTSUme18DBSPkuIxpRF1ldlR1R8at5gg2ILcfYUvTzoLwOQXc1svBnhM2 GZ4iU/v9em0KhmNZv5IyEYONtgLGrYb1884h6f8/nSo4/hHvlP4ffPBiq/AsinDj9kSlA7w7hbe xVL0PSPa9y9V4c+FDvHhZjT4sV5QYPwbYrGSjZd7vRaB16Ft6W1cjLVoXPPCq9+MZ4xnXtCHlTd FWvM61BH/DmgYBvlMdo+cOZgF2B7Rx4tN3WnoAFNN0fMdqg8TsN6PKQYTrJMCn7Ci5y26D5yBhh q0l5KEAAy+5797QvfUUFCJP0L/zNPGMQCsdNHWuUYGb7annwrWtkmEZnHyw7+1yM9Mhh7iuFUkv yYu8LehZVassXB8qlS+qszq60QjGHA1kzEnNBi8Np1eNTc6CwSGD55LvRRgA23OjTjtjdjkz/GJ f94kPbuGjHzZoMwldod9Dd3xqGezykIpgxd+6ysLhVe/2fOQHW260= X-Received: by 2002:a05:6000:184d:b0:43d:61:652a with SMTP id ffacd0b85a97d-43d292e8ab6mr25974359f8f.40.1775575027008; Tue, 07 Apr 2026 08:17:07 -0700 (PDT) Received: from aldo-conte-t14.tailf68ad9.ts.net ([37.163.52.91]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2a6f13sm51924922f8f.3.2026.04.07.08.17.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 08:17:06 -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 v4 1/2] iio: light: cm3323: fix reg_conf not being initialized correctly Date: Tue, 7 Apr 2026 17:17:01 +0200 Message-ID: <20260407151702.15208-2-aldocontelk@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260407151702.15208-1-aldocontelk@gmail.com> References: <20260407151702.15208-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 incorrect 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") Cc: stable@vger.kernel.org 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 18:59:20 2026 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (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 6995736402C for ; Tue, 7 Apr 2026 15:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775575031; cv=none; b=KZM3Z2kt2VL8FQZVOdOSBq6TfQOgXwF5+eXbuE6tS03M55IHbcKKmk+SqqKXpx1oa/k33AqnjthBzb0N/wx6iAQ737N93eW4M4J08xLlSxrT5VW74NNy4zU2E+wmxOdImSwRH6jnrXS0z4HYHNIuv5naeQhg8cnp9JQE5FiR7T4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775575031; c=relaxed/simple; bh=UpzQeOIgo32bTfZF9bCVO05d7AFWMI6EAflnf4kcCto=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=De9fsZZW0y5qBB92p6BxzZgWWTHGGQwd3QbYvJrUemT0pwgQH6ikoaAP03QlRTaG99Sm5M3wR6/mJ/4h+v93FjUhk0RBKRsMNmacApka0WXPcL4y47K+MbiJMxQXyCFRm06OdX5m9bz/NOtvli3NexCAPFMQ14bJRN9tJ1gDLyg= 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=gs28txXF; arc=none smtp.client-ip=209.85.221.46 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="gs28txXF" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-43cf5ad500fso4446037f8f.0 for ; Tue, 07 Apr 2026 08:17:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775575029; x=1776179829; 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=WDXxiHNfIFx/blBavOrxi008CsS+1VUvxTy8fmtLmJo=; b=gs28txXFXIKxp8oukFwdJdZHTzL5aOfa+ky6rcCrQqqKgQZQbnsbf7jftoq5nFPsUu hfObjhuSMmWAN3T66XKMasyw6gt4lg5pukXTWOfEhXDupK7pu5yyyDwJTxWgOToiWd4o EKM8zHLjcrHjrQ3qsSWp4t2TG8NJ8dGJZc11hWwzboIyRMjqEoe7ut1VjAZXQkRkcqn1 FgAjUhjLjDwfGnWXKG1mc9zb2FF9c0WIJZBKGDTFppl/6f3LNHDBcMN5ALgLlvjhGZL6 kj4JLAbG41xzS1NgbPFLP+2AJdJ02pjbnkm/HJmG5JrOn+I4bfcO1oklXavbcEeBEK1T UC9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775575029; x=1776179829; 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=WDXxiHNfIFx/blBavOrxi008CsS+1VUvxTy8fmtLmJo=; b=mUjps7gaHhoja//Y52o3IhJHtyxYm2LD4OqMB4IIxTQ9EAM5Ky2BSIsr9VZkuYjD79 u6My4hTVLt/NpimzknbmaRnjenBGwQGw6VQx6n2SIGP1CaW2/A58AgRdrphE/uwqz8Oj 712k0JBHn9w7RENveexv4Ezj4EUzbXRp1bR5DJz3m5FlK1ZJ/65x7yr2qPQO2IPQxM5G 7PvnyQC4ShZ9JWV6VFml0BPQN9G1woWpNV+pti3KpbwM9t3Sl28C2v/TAGEG20kcxxuc ajN9WC5Xh6Ja75437ULjaQZALaT0u5HaGuoWX3kWhNRt2Zc7PO46B7DrLMJpA4MoEFyu tsDA== X-Forwarded-Encrypted: i=1; AJvYcCWF2Ur591MtGYUvkPjTz8nQ1Y2LZBiZi2Mmsb2X7B972UhJR3/bQK/C+iVSl9ZpnWQJVzt/P5EqSjJvej4=@vger.kernel.org X-Gm-Message-State: AOJu0YzmznNiRf2iSbPPT1tn1km0k6ngjKMVJo4fXfF8CdcxXOBgaDiE euBOLHBQL3QQP9jjavAnemenlgTLy3G8Mx4IYsgqfYuOIwnhbjVEqCT6 X-Gm-Gg: AeBDieuMZwfwDelYb86dNYoX1k4DuxQxX0/ak+iVujM290o//+MSio+F6JWsEpGsEhI Kpx7yH0VeFCXD1kxTPd3u/KU8FTBsC9BtrAmaZ5HwfWtl609xaUM/sqvDewqpz6oSNplOht3ULe RKsUjW12UG8pwg8sPyJmLv/mJXfTS7fjFOBU7vfWFb8VZkBA54jJClXAUobDLnymOATatRrUY3X 61jSscr/49K8XLab5x54c7uakpmdYk7gkMgG8INWTUe9NWh/xR6uJ8aXgJrUbmP+M5nfRY6TcR8 3bm2HfVGjuyD7jikjSurdijl7TauZukYy0E0f/SgPxM6NZyk7Ab8r71qJZt9gx6ErVv+0S78XA0 9KV3m18wlCw6qpzzOxzuJLoGp1xdvEw8WdokoOLwdWxtb4r/y6ChAe7/FCPPt5RXDEZkPGjWzyV I+k5HoUkz22usQAFEe+Lg8X+hG8t6BoIMwrCMaEUjWlMlahTugK9w= X-Received: by 2002:a05:6000:2303:b0:439:bd70:6114 with SMTP id ffacd0b85a97d-43d292ec01cmr23778032f8f.38.1775575028749; Tue, 07 Apr 2026 08:17:08 -0700 (PDT) Received: from aldo-conte-t14.tailf68ad9.ts.net ([37.163.52.91]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2a6f13sm51924922f8f.3.2026.04.07.08.17.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 08:17:08 -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 v4 2/2] iio: light: cm3323: use dev_err_probe() in probe path Date: Tue, 7 Apr 2026 17:17:02 +0200 Message-ID: <20260407151702.15208-3-aldocontelk@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260407151702.15208-1-aldocontelk@gmail.com> References: <20260407151702.15208-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. Reviewed-by: Andy Shevchenko Suggested-by: Andy Shevchenko Signed-off-by: Aldo Conte --- Changes in v4: - Add Reviewed-by tag from Andy Shevchenko Changes in v3: - Remove extra blank line after cm3323_init() error path in cm3323_probe() =20 Changes in v2: - Add struct device *dev local variable to shorten dev_err_probe() calls to one-liners (suggested by Andy Shevchenko) =20 drivers/iio/light/cm3323.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/iio/light/cm3323.c b/drivers/iio/light/cm3323.c index 0fe61b8a7029..c8112685e415 100644 --- a/drivers/iio/light/cm3323.c +++ b/drivers/iio/light/cm3323.c @@ -80,22 +80,19 @@ static int cm3323_init(struct iio_dev *indio_dev) { int ret; struct cm3323_data *data =3D iio_priv(indio_dev); + struct device *dev =3D &data->client->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(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(dev, ret, "Error writing reg_conf\n"); =20 return 0; } @@ -236,10 +233,8 @@ 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