From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (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 C142C3E639E for ; Tue, 14 Apr 2026 12:37:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776170246; cv=none; b=ES0/n3tfJSIzH4WHFM+PDvVDNDjApLkfLDvi3wFb9uyZ5DtWbs5Lka+/pH03SJBJ3md1EzfsmhDBHIH8ggpUkVQtutHefUpAOJLght43LkqNZ1Y3msrgsocYmlyZrJK/1BobTSENd/d4dyDKf1U8ZNlmMvOUYfh7loflepKlUYE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776170246; c=relaxed/simple; bh=v2rZtfsGEcqvkNleqRX3XjmSo2Lct8wNsREjYiEreN4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fotd6dtRHYeffUdRMYGxGixull1oDbGRVuq+jn+fcLM/Sv7QFka+cj7zQpvmWPo+VRopNHLi2vgCNGCfFab8xS2RvvUaMnjJTAjxml7TRu3dWubb+ofurqfwpcTK/7NBprKvQXKMxatQASp0UtKWoP5ARzZ5yG1RC09bw5j2yQE= 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=Xs0p5rNi; arc=none smtp.client-ip=209.85.221.48 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="Xs0p5rNi" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-43d7650202fso1767555f8f.2 for ; Tue, 14 Apr 2026 05:37:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776170242; x=1776775042; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=AdS8fPV/eM7tvbU7iuT8bTWahQQCYtva+pfa9FZ/WIw=; b=Xs0p5rNiLVrqhDV8+XTIZeXZcEQ2sjMpUhG/t1I8Nyp7zrvD1fJs3E8SSHJ7B+d0bL tkKtbYMN/ZSAHifB0Xs2tJ6PFi3TaAeVqCPr3Vim3avhyuAxo+BCUNsfqzdO6FJSf84c a+lWNUFFmK/UYMTAfWHuxLraa6BOuQcFZIejfiteOL2sIhPvbEeAu25amGW+eMm+Yqho nz5OuC6zOT+rbONvMnU0HNaC0ypB7w0nifi4CSt6vJQApuoJC4UiR+8lFpGjHLo76C5C Oj9zwG3rNwnR5v1+3I5p4l2GAJVsyc6r19Gtd8Vi4E46qwLBHIzqujMRkm4g2hMAC0hc p0ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776170242; x=1776775042; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AdS8fPV/eM7tvbU7iuT8bTWahQQCYtva+pfa9FZ/WIw=; b=s3EXaYUf6YcKrk25fQLDoOByoCwkwLZ3sOtQGOQZOJXcAInFeMaWlhkgsMy55cZUPF uf+jUJKl4DJ+iHAN0QoH8+4qIQCkKPGPjboU8MZIaAn2x+LUODll4SnAXoENsO1PC0Ts dIsBqI9LMc96J5gNQ16eXO1bacv9wIutzNlg/d6hflURL7pDFO7lflZkiCCD9C4VgnQw KchSzvjcTX3N+NBhZGJG5csfmsvge7njX8EZHu289nsHV16DDmKT4Sfch+5NNWd3u/2i A8pHnI8Sn76simgyVGHr16O1QnzUBuDMKeOExlFBoQ4tFm8b3bN+xjbJMcWYgcBleFza kozA== X-Forwarded-Encrypted: i=1; AFNElJ9J/2fgSFqsi+xC/leNMrTVp65+EbbV2aCg+CXN3/+uOm1mp1IpmBZCzItTEJEelMDOx5EjZ7/VyJM3nYc=@vger.kernel.org X-Gm-Message-State: AOJu0YwmdvfsAvsUN55oezwSv8etaLMFS/qezHiD5mGGSaAj5OawkX8t y5IR+eQcl2654G1zbkU+sVIA3RQ6SELPFpCFxuYtauE8bvCQuAnQ/FvQhspqEw== X-Gm-Gg: AeBDieui3qdpZKGa3AMam61P8ui4YsySnjWdHxm68c0LoltrUorY4dZNlIGmeIBsadI s7hhdFj5guXuozHDrpj1+PVN6r3BiKgUlwqnx56IYDulIOwI162r/PiU/5FespoFRhsqlB9ouDy tDranqek5uUc5Wfmy6KVufztPGu15iIKx2DZrCBz7ajyaClps7kbrJdYPcilZeDOo2ggyll5c1t 9onDOjVysCOk8wIT5F159EivQMfoW1fCpVrB35TRsavBrxmi11AKMyN8qcBrqHxY7fQdgtx5FI7 4X4jjT7xtuewHwfTjbz9ikDBKK2GLqfhZlzajhbE0DcY/srTQdf3wYz5fVYtp/r8yY01rccNk8n WIqVOZ0eHe6ZcQbWl8eV+KXQ4xFp8aoQIyBE/hAb1A9Hcp0O/xbFKC345FiYjuveJYBIXMTE8qy mxWXL2VNv5mV8+sS5gbUSOu4VjFZmD/54NxK3CwNWx X-Received: by 2002:a05:6000:1acd:b0:43d:c2bc:21b4 with SMTP id ffacd0b85a97d-43dc2bc220emr5518320f8f.16.1776170241076; Tue, 14 Apr 2026 05:37:21 -0700 (PDT) Received: from [192.168.8.79] ([2a00:f502:260:5bd3:9217:8960:5f33:aaab]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d63e46a85sm41552729f8f.24.2026.04.14.05.37.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2026 05:37:20 -0700 (PDT) From: Erikas Bitovtas Date: Tue, 14 Apr 2026 15:37:17 +0300 Subject: [PATCH v4 1/6] iio: light: vcnl4000: validate device by prod ID instead of table ID Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260414-vcnl4000-drop-enum-v4-1-59fde2932a0f@gmail.com> References: <20260414-vcnl4000-drop-enum-v4-0-59fde2932a0f@gmail.com> In-Reply-To: <20260414-vcnl4000-drop-enum-v4-0-59fde2932a0f@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Erikas Bitovtas , Andy Shevchenko X-Mailer: b4 0.15.2 Add a new field for vcnl4000_chip_spec and check if we have the right device by that instead of the index from enum table. This leaves the enum table being used only for picking the right vcnl4000_chip_spec, allowing us to drop it later on. Reviewed-by: Andy Shevchenko Signed-off-by: Erikas Bitovtas --- drivers/iio/light/vcnl4000.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c index 9650dbc41f2b..72d68d54864e 100644 --- a/drivers/iio/light/vcnl4000.c +++ b/drivers/iio/light/vcnl4000.c @@ -234,6 +234,7 @@ struct vcnl4000_chip_spec { const int(*als_it_times)[][2]; const int num_als_it_times; const unsigned int ulux_step; + const int prod_id; }; static const struct i2c_device_id vcnl4000_id[] = { @@ -265,12 +266,12 @@ static int vcnl4000_init(struct vcnl4000_data *data) prod_id = ret >> 4; switch (prod_id) { case VCNL4000_PROD_ID: - if (data->id != VCNL4000) + if (data->chip_spec->prod_id != VCNL4000_PROD_ID) dev_warn(&data->client->dev, "wrong device id, use vcnl4000"); break; case VCNL4010_PROD_ID: - if (data->id != VCNL4010) + if (data->chip_spec->prod_id != VCNL4010_PROD_ID) dev_warn(&data->client->dev, "wrong device id, use vcnl4010/4020"); break; @@ -1901,6 +1902,7 @@ static const struct vcnl4000_chip_spec vcnl4000_chip_spec_cfg[] = { .int_reg = VCNL4040_INT_FLAGS, .ps_it_times = &vcnl4040_ps_it_times, .num_ps_it_times = ARRAY_SIZE(vcnl4040_ps_it_times), + .prod_id = VCNL4040_PROD_ID, }, [VCNL4000] = { .prod = "VCNL4000", @@ -1911,6 +1913,7 @@ static const struct vcnl4000_chip_spec vcnl4000_chip_spec_cfg[] = { .channels = vcnl4000_channels, .num_channels = ARRAY_SIZE(vcnl4000_channels), .info = &vcnl4000_info, + .prod_id = VCNL4000_PROD_ID, }, [VCNL4010] = { .prod = "VCNL4010/4020", @@ -1924,6 +1927,7 @@ static const struct vcnl4000_chip_spec vcnl4000_chip_spec_cfg[] = { .irq_thread = vcnl4010_irq_thread, .trig_buffer_func = vcnl4010_trigger_handler, .buffer_setup_ops = &vcnl4010_buffer_ops, + .prod_id = VCNL4010_PROD_ID, }, [VCNL4040] = { .prod = "VCNL4040", @@ -1941,6 +1945,7 @@ static const struct vcnl4000_chip_spec vcnl4000_chip_spec_cfg[] = { .als_it_times = &vcnl4040_als_it_times, .num_als_it_times = ARRAY_SIZE(vcnl4040_als_it_times), .ulux_step = 100000, + .prod_id = VCNL4040_PROD_ID, }, [VCNL4200] = { .prod = "VCNL4200", @@ -1958,6 +1963,7 @@ static const struct vcnl4000_chip_spec vcnl4000_chip_spec_cfg[] = { .als_it_times = &vcnl4200_als_it_times, .num_als_it_times = ARRAY_SIZE(vcnl4200_als_it_times), .ulux_step = 24000, + .prod_id = VCNL4200_PROD_ID, }, }; -- 2.53.0