From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) (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 8D4571A683A for ; Fri, 10 Apr 2026 16:15:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775837720; cv=none; b=raJLOciYesRXGTVMtuNMVE4BPkrj2PzcbF80+DYCvrAhBjXH7HmZZ1GdDmKzMIk+0QqaSEQzCoIN1WMn2PeLlJSDBUXXQnfvJSSau8PUVhJ/xWNZ8H51XRLfj3C1/Yyt4KyhXdIAKj0wqUXXphmqbCB9Lp8idGylf6GmHgvwhQ0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775837720; c=relaxed/simple; bh=v2rZtfsGEcqvkNleqRX3XjmSo2Lct8wNsREjYiEreN4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FaDdBzl4VfQYg5ZItabwkKUrSGNqazmk9rc6Pg9xYN4vUB8PjNffLlD8mCW4ONeYrRiXfJyLPnP9y8/WXOyUPaUcSQkyf/+3S10o/S0irHhB3R1YzTXpYb4J69KU469m3htse6Je0rmeAoeDLmAzL4xcgH9ekeqGWY81O7WKQTc= 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=lhzgmgzY; arc=none smtp.client-ip=209.85.128.172 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="lhzgmgzY" Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-7982c3b7dfcso22888017b3.0 for ; Fri, 10 Apr 2026 09:15:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775837718; x=1776442518; 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=lhzgmgzY/A9HvmJaGznZK/ej1FVUiAgO5bQA6uhJCSD9943x3pKKhRakg/66gHIRaL 4AUa2NEDyTOXSU7gcUp5etiIUfLFwnSoBSX4ZYIzQrOVNOoNYlplIxbNelxDsOpVILTX Ad1YZqkaFno7905TYVjP4uiGFMfEVVpoR6P5ljO5174N0xJrQaAyl3P/n3gRVAmRWGwq 1JHlp1HCDEY88VLlaPRJ5jj6VehjfOy1MmoUnh1VjQMRPh7qYc3uNQMlrtmNN7blGsUq bNq7DGo9OxSQGHqsxR2/RYOApAd930TKrM5Dtg01LG28lheztpv+0+nc5msx3cG0ROmv fEMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775837719; x=1776442519; 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=FidarPt1AF5h0wxYBiTqd01DXWsGr1RKwC0hbtRx9fM35TWG7cuLZpp32B3n7i7Vmq gB1hVr/U5PETNbvcVBJJSqjAvQEtF6S3KHF3z7jtP7AP5cJ9I/cnpA1twUFtihqfD0M7 ciRF75bwgAeiXXt5tIlaQ+2+IZ62/lUZj+Vog7SJmuBUvyH/uXne//Y0bS0oSSpRv8US cVgBdYTeb5lZxhPMh02tGPeUStTvDgulqTk0g1rb9wPjzPxqX/uDU0F18ggz+gxN+3HR z3Pt3JD31JXp0LOBqD7R05+/YJq72mEcaDp5hdkpGmeKqOX+jCrnt3SFjgP6CSDNe30+ hi6A== X-Forwarded-Encrypted: i=1; AJvYcCWf8rsQoUjxk+FdGBg3A/nRBA5PAuLy3u+SQlgGY+G2OJIU6rNGmN1LLJOXhqWsurjVqT0MFg5SxJOVU90=@vger.kernel.org X-Gm-Message-State: AOJu0Yydx8yrBr0dF9ULrWVIytySF7y4w/CDU7xCoWk4hU1GF84kRraT lq9MMG2iVzbMHLe4zGBNs2AC6+MP95gmO+QoKCwIn5OAtTpO0nox7v9r X-Gm-Gg: AeBDiesN67BgU7wteKiN7klKyLOcJCKUcEa6+sFN9RWpVNeTxxmduXQIJfKoLPHJz9g f80kgQasmD280GztrUh/So6Vm2IE7i4oqpvxyfMWdS3kvbPlIEr7V8+R1Qgqpli8bN/4uMG+33d oVMjAcu1ltJp01eRA59Kac+puE+qU+9z1xLaY2uPO7prInBdB2HhNfIciXsoeskLoaxIJu8PucT sOqVi9CDnmScbakfMzWfG1ydIk/jRD1PoGbz9z7Rfh1++bUrUOl/qXgZ2Y4uy/qNS0Wz5OBQa+h odY2Ri3DlkoZfqBD3VFRpWoDVu6mCklN8AxwUWg/+PoZyW0Esiy/vXTv8jCkpQMrHYSVyFFMjBW y2ecNzIybvAKp9Mrah5wK8GNsAJdh1aF1EHo3J7eubvJWS9U6c6gdUd+5MtlszeWgLfIXv9NJNk l67CQ5QlYadrywpnLwHxOamxzXcSSXGjvWnEuQ X-Received: by 2002:a05:690c:6b01:b0:79d:67bd:53f9 with SMTP id 00721157ae682-7af6ec4c6e4mr40745757b3.4.1775837718433; Fri, 10 Apr 2026 09:15:18 -0700 (PDT) Received: from [192.168.0.39] ([79.133.247.80]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7af3fa05b48sm15408337b3.33.2026.04.10.09.13.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2026 09:15:17 -0700 (PDT) From: Erikas Bitovtas Date: Fri, 10 Apr 2026 19:11:17 +0300 Subject: [PATCH v3 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: <20260410-vcnl4000-drop-enum-v3-1-2ea2bc6f5dfb@gmail.com> References: <20260410-vcnl4000-drop-enum-v3-0-2ea2bc6f5dfb@gmail.com> In-Reply-To: <20260410-vcnl4000-drop-enum-v3-0-2ea2bc6f5dfb@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.1 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