From nobody Mon Jun 15 00:02:31 2026 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (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 59D163921D9 for ; Tue, 7 Apr 2026 07:01:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775545271; cv=none; b=hVtu7f6HzliTP2lqG4D0aSHMy/8ovzb+xLwLUJdsRgtFPEg8XrkePh9M2ZADkvxR7HCzIFqsiSeiFN7dRIUIPcNvxsGQ/1iLG59xxCUfmp2MHPjVqsP0GxrSzMQoDrh+4/Vh+rGdwNMKO7p23S6uwq/iu5V+BSkEhnemWCeoWj0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775545271; c=relaxed/simple; bh=bMBU/Sp/Hd+8dWJzIBSChhEWAq6h8QnFVVi6t0Td8CM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GSGTUK2cymTFd310b33EnCSovIEHVA7IMaNJ8vuCp8XE9DFo8o1i3sVVn30G1k1vVIyOSc4GAwqIfHu4tSZDZbdIGroIum6qhoVV1L8f951bqJ618J5iog5EesO7CPVqb6E0eDx3z9YngW53gY8J+uYoqP61az/SJqxd65R7rqM= 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=jv4wGLU3; arc=none smtp.client-ip=209.85.221.50 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="jv4wGLU3" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-43d17bb1c1dso4041783f8f.2 for ; Tue, 07 Apr 2026 00:01:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775545269; x=1776150069; 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=jv4wGLU3E6ICSsU2CxpV9f9xARYR1eLI45GQ5MTNBsltAIWvElmcKi7oALKp7lss9G ybbGsnTtNMoYP2sZ5aoDW8BICJ+pkenoUq8/L7P1y9jJIf2oGYIV5GI6FSAcZ+AoPVL2 NieuXzVKXIK6GX8nRD+KlxqgdtPdbhmIV0KuQpvmGGqtIqIO1lzCQwLaKvdyAR3bTAUm r0nC11tmEM9p2BDm5sm5i/85/Q9VZvmTa05R/wjQuMypo7oCVb2E5N30ZJvo5biWEMjm eniaxydYeq5dFC6yEBjz9m5wHOsdlV721IJuPOkTDc7xu5jfPF1J9S+aWn+XoTEiaK8W 1ogA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775545269; x=1776150069; 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=RlAUuDaJiTxTsLLcCtgeAumLc8h93ypq/6L6A9IlXGLbQzEPlWVR9QAPf2a+EJMsmz oouwbR/TucPGO2PZYxmUbZ4CSTnWevkHorgci3J/z7lz9IJ5YsxJ/xixtvBTj9LdU9vn Wl4zYeS6m2s7DjKfCaT6wOk1hG/gxcPuQc2rxO+WF3XulCEPvPMcNrZsl58r4eurA30O saWfdpU348pVZepo+CPHYzfuBePwsgoTEuN7PtqX/GSSD5FddTzZty2kIA5XQLEOkbHt IDM9JLP4ZWG8Fo672KUKGwmh3FmBasnSEra+h6cit9W6S7I0zhQxfbScUPgKRR6xGkOt SpYQ== X-Forwarded-Encrypted: i=1; AJvYcCX1536i7JSs70Xt7xK7FQrQzzjXhCWVfys4Nv2wz9ayozzIUGeggZ8+des3QD+WF/sdm5ptzfJDo8R+HFA=@vger.kernel.org X-Gm-Message-State: AOJu0YxDLs0Fx21yWrEiLRbwnQX7khvdnOu3eJB5KGfPOVMBI535yC8M PLCcyUVEH5pyJxl6IEUW6XEjf50fIHeBd8nUVzQR0Ebfc2xLWLsDP5Vn X-Gm-Gg: AeBDiet79d5jBDrutACbhI4X3BSVdVBeUkrfEZlXsX8vUIK8evI0P7cASWgnRBUSI8N RjWAkgrPlk3FAs3dU6ISr8S4zCkTebPhjiLUNrT5+C5fpmCO7oSoXRIAohFKLNYcfcM7TTQeBY6 BF4SWN3h/1emud44SzZGDZ8m6NX/i4OJEb9oOhJ4iVxYbSGVniIm7/209vnXaiH0lbrGptphtIl Sxj5qyMwcQCx30XrLx8p/q3zQsiBVb/xc1EVBpjnHZ5QHveoN6eQH07AiWPrZO5FgeBebH5kZ5b y4SiG5vCzSRQhbIw3vfuMVr3ck8pnj3qP2UJS2aEUXFD6d16c2KyV3MlDP25rDD3T6m8puCi0wC gryXbXmTh5WFvywkgLeON6DJkzYxFkfn6f5Xdy9QdN8UJGH9dsmY/uXSu5ee7OFEhIr+rCBgfyu PY4ERC+yDOiNfQi66p5Zjqu4IVE484iEWNZKd6Rb4BAue0XyymG8iF X-Received: by 2002:a05:6000:400e:b0:43c:ef4f:79dc with SMTP id ffacd0b85a97d-43d2927ff7bmr22786558f8f.8.1775545268585; Tue, 07 Apr 2026 00:01:08 -0700 (PDT) Received: from aldo-conte-t14.tailf68ad9.ts.net ([217.61.173.50]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c5253sm42167576f8f.9.2026.04.07.00.01.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 00:01: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 v3 1/2] iio: light: cm3323: fix reg_conf not being initialized correctly Date: Tue, 7 Apr 2026 09:00:52 +0200 Message-ID: <20260407070053.9359-2-aldocontelk@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260407070053.9359-1-aldocontelk@gmail.com> References: <20260407070053.9359-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 Mon Jun 15 00:02:31 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 70221391838 for ; Tue, 7 Apr 2026 07:01:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775545276; cv=none; b=JWeAmI6DJpG0/4iv5PRVfWSK4rdhqSA3xrE5CABrSkDWm62m2F9kt8zE6qzPw4YG3T4feWcq5l4xKUbd7qgOU3swyRw555Z7MxYjSYFNo97i74mRJFI800I/B36E0e5SpBEggkuEgPGeFpu91rym3NT7BxCNROSfV/l5p+BeGLM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775545276; c=relaxed/simple; bh=iwbsvmn3sjRQhDJhAvMknBCPz/j6ukdKjlnQ+9EnffU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VWjC7v0E5mjTSlTWDUabvYkJ0aMXKo9Abv+zzgwDr5Np9yKgANZqAEwaD5cLTO2V0J9wR7kL9KkONB2razlmkcOiT0tpI+cG8cD0mTDzwdHYIBqSJdwv8VKLlXuT5wV2ePwpecd3RRbgI9gAmjdkl0lKcHMVsxYetRMWwXF0f5M= 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=kySZzEWu; arc=none smtp.client-ip=209.85.221.53 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="kySZzEWu" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-43d01d6b50cso4367515f8f.1 for ; Tue, 07 Apr 2026 00:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775545274; x=1776150074; 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=Pbshjy6ArGT5S+r1Sisv2NuM+Q/whiMd15xYasDn+5I=; b=kySZzEWuOpWN7lx6loaW/LiFTz0WsTWZg7Va8olfykOQMJuOgpIQ/cdvRuPSCtglm2 Yac+lVX2qs01f2Lbjv5kMJgY8hoE3YjTaOkV72aLdEgi/asCT791x1v35Pu32+080HCT 0lK67TmwwD2QP3Nz1gf3XzFNxLtWRMatDo/oTQcy17RJSuiDjMF6c6/aFqTQHzaBCk/y /Pi23mh17IGyt6LHD5dvIj85LvW76Ms9o+t6gTfx8B31S2T3kqpo5wb04BkIHakSqfSd WOXLs3djoHwPnWOYUpQtISJQURH8TzOvvkJheqoPgqybHH8TdCaPpPDFzn+eTl+akdIk FcnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775545274; x=1776150074; 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=Pbshjy6ArGT5S+r1Sisv2NuM+Q/whiMd15xYasDn+5I=; b=g8HnYO0lr4QlrjfsGYHV9yZcB7DgBhU1pKy/fOiTgnpYGYr/o281uTmapQFirZd9/X TkkB/UgOATDmpr1FMgudNDLvzfcp5VRue6RgmYp7H+mfGKM4ZE2SprsClVOhHdlib4jq NZ9OcTL/HQGs0LrcApd/WLOPgei57O9KJ+lyIvR6FxCslL0aerZnLhEMs6KkHgHzajmc 8bGbdX5RiXPV2ziir5qZIBK8y/utQlY93yvjKKwBQSLAl1K6kfGurKc/DQWBsD7+cZSL 7wtUs+mkhG1ly8E9ysHEV26F16nR/Ub0WU6ppbNMZdDayJuVtSlhcgRmm1P7s6rrrLFV DZ0A== X-Forwarded-Encrypted: i=1; AJvYcCUQ5YUjRSe5wX1UplhrZpgdVb+qIbOLj3lEc1BnXAQn8HXARX7s+kLx5PCS4qXI+ZKeLlF17/pZYXIBJcs=@vger.kernel.org X-Gm-Message-State: AOJu0Yy0s9MfEtR5AohvMyqQR0Bjx2/ZEbODQGR1nWMbxo8EQvn5YH29 k3ATZxfxiA4BaS+2cHOR97p+g1qAcHZo1zwHVTgGS7pRHp/VKxcZKyNg X-Gm-Gg: AeBDiesoxo0xoBs0B1dV7SB4ZuDc1nWAm4Q0rxZE84oZ62DxhpY6Wt/Enoc56Qk7Gpl /NLvDvwLddo58tL1SQcyhC09Sjn4vNjgYvFYnhvXcM21xm7KoQgKhUO/FhJuVqAUX8SE+GG+Uyp WgQTU4HId6FCWckmCONX4pS4u2OxN7FPLMb7k1xtdEX8GnxKJGJnGww7BWWcQOTeekljn3gVApg khG2uaX+1DkwF6uVY7Th9cZA+BbqYX+6Dt4JnUMAedeINsNMRLSbumnsR9bEuws2EvCZSSehEfS hS5KMj7XMMQgwnhIBIv6bIefUdOgYmTl9Hyi3z/9Y7ptJdRiUiEIr2+2zFiyaEPXpclBwHQeMCa Or38lmLlTdy4aPTjpXvVhuFPG40mLHyF9e3yFhymLEwfMBwjQFv54miH/yEvcRXuVEXdRk7/HTl TIBm5vJODxrA/kjrv8Q64J3ahZFIoRc1BgAd8gLFTOJ7+HgN3ofF3SJtrIgDI3EDc= X-Received: by 2002:adf:fc4d:0:b0:43d:3083:4ea0 with SMTP id ffacd0b85a97d-43d30834f01mr11736517f8f.8.1775545273582; Tue, 07 Apr 2026 00:01:13 -0700 (PDT) Received: from aldo-conte-t14.tailf68ad9.ts.net ([217.61.173.50]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c5253sm42167576f8f.9.2026.04.07.00.01.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 00:01:13 -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 v3 2/2] iio: light: cm3323: use dev_err_probe() in probe path Date: Tue, 7 Apr 2026 09:00:53 +0200 Message-ID: <20260407070053.9359-3-aldocontelk@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260407070053.9359-1-aldocontelk@gmail.com> References: <20260407070053.9359-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. Suggested-by: Andy Shevchenko Signed-off-by: Aldo Conte --- 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