From nobody Mon Sep 28 02:58:58 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 5961C3515D9 for ; Thu, 27 Aug 2026 20:16:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861784; cv=none; b=PSyq6IrFnawsUIrFmMquAFc87H8Jjm6LP6DUXAVc6oQmumpFEVJwIkN2EASqZCemx6rSUDXcsI5YXisiVftmpJ8rtVOmja72CqRoqApvAo+rVtbKUu3e22WIp/GRGlhaIoDrRq9lc25AC16DK7BIAZarerRPvGkRmR8POdaFrXY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861784; c=relaxed/simple; bh=jUqW7Lvb2oXV+UUSZ9bSqCz/FTS7stp6+FctKytiSHY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kXWmSpvUzYFzwYRQ8L9Auur/s66iY8bEv+UIYcAYsvEadrjK5RMNujrFl13XLc4nYXr3OoEbvPDDOfSGUOXVOM5gDH8FgxKqSCI+huxXOfeH2Zf/HFOg/VJfhD9WG+51EsfCYtpg/A/2wM6MQ8ihwqoiAbQXcL0me3A5QcGUTXk= 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=OqNbzFM0; arc=none smtp.client-ip=209.85.128.41 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="OqNbzFM0" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4995b0343c1so1266695e9.3 for ; Thu, 27 Aug 2026 13:16:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787861780; x=1788466580; 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:content-type; bh=WOVWqLZCrjPxNklY1CcQgFe9W8y6HPeVsIwMdTSzBsw=; b=OqNbzFM0JaTZwVDs876ZvtRwkOMe1zmqN9RCnSSoSRAQ1en5UX9yikWApa6Wt7YISS gaC1/8hfhPZk5pzUvW/B66liylws9wYUWJsfqPMzb1H7Tk1DCqXllaLKyKYwdecpmw0u k59VJXj+9KF2r5rcZO7sncoTYBsgfWuyAcMW8F3enswlqraiJXTUD/Yy+AdXvdqEMlTG YGOmxl3HzCB85G+7jOEUszKrscm3vh5EQVgAlNSkHdlfC+J31AyqtX0ZSylUUthMJliW UiUE8xJVPg7mriWin0vtdW3finRttkCaaxRXI7j/kQFK0iGLmWRPqEMN9Si+L2ACEGy8 m5MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787861780; x=1788466580; 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:content-type; bh=WOVWqLZCrjPxNklY1CcQgFe9W8y6HPeVsIwMdTSzBsw=; b=AMzJi02gSWOidEnN8cPNJ+RziJ/wwV5kOo2bQDFHDneC2tbvw9NCtQvJfndG9EaiSF eRYqBjVrfTt3XEoRf1HymxGzCVjO8PMve92aB2vlZYpUT8zM6vFedfc4WAkGXhHXHGOa W9/PtP0wadiWKpksqvWVfSJaiOyU54fhY8KKYldkuZ1Husdh5HXRicTkHlu8SCAek28l rQdYY2Z4YOgy0tpnZqV5ZMYUVeEssaDv0QnCJgsijwO+QA2cg9QyU3Ro6+7kNXdFd02E S8bvEWFz8qCJ+AQopUjbZZZDRX0FpI54gasNs6gwas175c1g35RWWU0BVphqOFhhTuz5 6swg== X-Gm-Message-State: AFuF++mrNaGG2iAIHqV2BozbPssm9JkPL9BUhesqSgSO8cQMI+t1N6kW N0HWPubrFHUYwnPWbNZaW1wetQ90+tbflNKxRcgZDk7G7qHPNH5fx1hciheNfKDtFb1iCA== X-Gm-Gg: AR+sD10+VWykDjLW6dnbR5sM1UXXH94u/O40kLuxW899htavchILeF1j8UJZ8NSsbNX r98SZ1pn9R0fB8qTMYTz0+a5MPjdHNY9JJ2tWec5H0mbhXlU6pT3VDyVuchw6uGtOMrsElZlRrN ZdetaUgZXCPi6o0EvbxFBFXi0ELs0WrDnUL3ZwwET6S9jhKb+MPBQKx3z3dXUUrJRCXkxcr/737 qfNeBi/j3jQlzrwetd8APjIb1wevMejIrnArBw7hKhYZhZx58VqnC7/M5NLCsaCIPBXJTReg3Z4 ER2cnR6fpv6cL7lk80uZ0+J2tJAfJJzKGDdFCx6DuL3j5xWfvVqMH/kyNg/zwbd2bUaC72Htxqf jbLszyv4+J0+rgn1NM5BIvLHtK9MHU1coSWRmSJ2TEuHsWKPkfG6qSZunCcibW5APNEQWUblGqY Q+wMPfdrzJ6lr3kvN5wyeT4lG95ln9DtZ4hL4yOOV7h4DUDMjTcExPXsKsNkxyZCX4DcY= X-Received: by 2002:a05:600c:1908:b0:49b:9113:e03c with SMTP id 5b1f17b1804b1-49b91c26365mr19410945e9.8.1787861780506; Thu, 27 Aug 2026 13:16:20 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:8824:7cb0:614c:86fd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49b4961004bsm91899855e9.4.2026.08.27.13.16.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 13:16:20 -0700 (PDT) From: Thierry Chatard To: linux-kernel@vger.kernel.org Cc: hansg@kernel.org, lee@kernel.org, platform-driver-x86@vger.kernel.org, ilpo.jarvinen@linux.intel.com, djrscally@gmail.com, linux-media@vger.kernel.org, mchehab@kernel.org, sakari.ailus@linux.intel.com, jacopo.mondi@ideasonboard.com, nicholas@rothemail.net, andriy.shevchenko@intel.com, v.vitovt@gmail.com, Thierry Chatard Subject: [PATCH v9 1/6] mfd: intel-lpss: add resource conflict quirk for Dell Latitude 5285 Date: Thu, 27 Aug 2026 22:16:06 +0200 Message-ID: <20260827201611.99825-2-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260827201611.99825-1-tchatard@gmail.com> References: <20260827201611.99825-1-tchatard@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 Dell Latitude 5285 2-in-1 has a BIOS bug where the ACPI GEXP device and the I2C4 controller (INT3446) both claim the same MMIO region via the shared SB04 variable. This causes intel_lpss_acpi to fail binding to I2C4 with -EBUSY, preventing the front camera (OV5670) sensor from being registered. Match the affected machine by DMI and the affected device by ACPI ID, carrying QUIRK_IGNORE_RESOURCE_CONFLICTS in the ACPI match data and applying it to the per-device info in probe. This follows the quirk organisation used by the PCI counterpart. Reviewed-by: Andy Shevchenko Signed-off-by: Thierry Chatard --- drivers/mfd/intel-lpss-acpi.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/drivers/mfd/intel-lpss-acpi.c b/drivers/mfd/intel-lpss-acpi.c index 63406026d..1ac1dcc41 100644 --- a/drivers/mfd/intel-lpss-acpi.c +++ b/drivers/mfd/intel-lpss-acpi.c @@ -8,7 +8,9 @@ * Mika Westerberg */ =20 +#include #include +#include #include #include #include @@ -172,6 +174,27 @@ static const struct acpi_device_id intel_lpss_acpi_ids= [] =3D { }; MODULE_DEVICE_TABLE(acpi, intel_lpss_acpi_ids); =20 +/* + * Devices that need a quirk applied only on the machines matched by + * intel_lpss_quirk_dmi[] below. The quirk to apply is carried in the + * matching entry's driver_data. + */ +static const struct acpi_device_id intel_lpss_acpi_quirk_ids[] =3D { + /* Dell Latitude 5285: ACPI GEXP device conflicts with I2C4 (INT3446) */ + { "INT3446", QUIRK_IGNORE_RESOURCE_CONFLICTS }, + { } +}; + +static const struct dmi_system_id intel_lpss_quirk_dmi[] =3D { + { + .matches =3D { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Latitude 5285"), + }, + }, + { } +}; + static int intel_lpss_acpi_probe(struct platform_device *pdev) { const struct intel_lpss_platform_info *data; @@ -186,6 +209,15 @@ static int intel_lpss_acpi_probe(struct platform_devic= e *pdev) if (!info) return -ENOMEM; =20 + /* Apply per-device quirks that are only needed on certain machines */ + if (dmi_check_system(intel_lpss_quirk_dmi)) { + const struct acpi_device_id *id; + + id =3D acpi_match_device(intel_lpss_acpi_quirk_ids, &pdev->dev); + if (id) + info->quirks |=3D id->driver_data; + } + /* No need to check mem and irq here as intel_lpss_probe() does it for us= */ info->mem =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); info->irq =3D platform_get_irq(pdev, 0); --=20 2.53.0 From nobody Mon Sep 28 02:58:58 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 4465F357D02 for ; Thu, 27 Aug 2026 20:16:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861788; cv=none; b=h7FfCQ6UQiMtkkEK5+fMKPMmacV8UCTdDYUI6lEWWplthp9P6Mwu7QxtE857SVxhhYk2agplbZI21H5Go/uKcUcKm2wdSCAMgAem5cSb3E6nfy2PZvhYUBmBobGIUL+WzjOGXTpd3pNMlTCq21BHzS81xyPqp5JCkkatS865pf8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861788; c=relaxed/simple; bh=av/RqU4IhFO21IwA44CfzNfwbz1VFP6HnDY1tUunHXc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E8UfOJDj6wJ27+E4X1b9Q1mdY7Hem1gmdAeMrDBjridtRnAze9fFG7Dw99+Of6eRCpt5y9+lpU0DlYXV6E4xaYd48ozJBz9CCrjn/uu/uhhjzIvJRkJmhDb42ikqioQFH8pDPOZR6WOf+ZLtkH+Q7AQltLhUNRB7vYU/+dLnxaw= 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=dNdabwCQ; arc=none smtp.client-ip=209.85.128.44 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="dNdabwCQ" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-49b0dd3c9a0so1236425e9.1 for ; Thu, 27 Aug 2026 13:16:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787861783; x=1788466583; 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:content-type; bh=S5qf5AyR14QicTi51SyKC35gs+EjRCOBvh+lO2Jaq7c=; b=dNdabwCQs7dSM4BQL6a+tjdEAxd3W1nT5yT5K/t/F54qmLtIXbn2dPTo1oL8lxSNMJ SOzpqQfEDmj+5RTzE+SYMM3SoNqo+yLUltAKfd4snqmWTii/G1ck3qLo9ahQnOsh852A qBggPWd/h4m+XBZNLYzfGUlXb+eRrgpUC34AI9SAIvT21myiPkDabdAE9k2oitkFqKds jTm5dXGT1/wcFryGt9EgXjRW43/OU0yOKg4JN5dCE5zsDeq+0IRi3g41kfFUZi76Vjzz kL7IpAYk656c8mp3ReKOOgfoqtcWFJzvXYhv7PHRE595mwapk+JwlHW52/0GpUANMe5l Ry8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787861783; x=1788466583; 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:content-type; bh=S5qf5AyR14QicTi51SyKC35gs+EjRCOBvh+lO2Jaq7c=; b=jlq/5ER/sRcUbtxjbNPKOUHyFBMpvF6d8fjqnn3zzRx8NV4UkoZr88WutzcgasdHhW 28qnbDnfJR+upEvZIbG6pYn4Cw2Vclpcmw5nIJNRu3R5UICXtRVj2oijaEFdjojkdauW pBG62hAvq5fp+lCLxAZN69U9PXVRdGg3g6XvvCJVIOnNmB8zmJ5yxpFEFr+FXoJHS1tr HmAy3IhjMdGSCcRGlAMMJPngsWHJfDPb+d6zi+X5P2Pkw9rMx+nkmN3UH0ejZWTbm8MP mJC3kXBzjkxmReiIQYEcahFFxVvRrIvYmtO5D8dLq3kV6Q80V/7gp+8L5XXnKppoIYY6 PhAQ== X-Gm-Message-State: AFuF++mG+eUaS3hO14i/hkxVWi7iLVCgTTxOLzu11k2Xd3TP5qjxxs7e GBHDe/mBm+26D5UUMcFdCbcyqEDnezJxN++P1HRrIAhpl7clYy8QpYKxc1Zo2ikPF04kfA== X-Gm-Gg: AR+sD11QC0Nka/TTx1O25Utcwp8O1dsncch6W1vEZyFEaJG5u+yOq/4uZp7MCaJAJfL OY0OKDjgCsq8MbnXY0HGy3/Q2ZkxAk65ldSboUTbtu8WpIS6Z5IJbAhyLmO1it5KpKkE7urbV83 FfM80zcRANgWJZ2pNMAcheWMx8u946sl00af2skG8S2WLIVeP81D1rYwGvjoAUWDQFReFKOXsOD 9Wlgyf+1/Sj9/AJkLmB1fpuTqB9UAb+0WWmHiXg1xOMCffCKEMiRmv812A3131HN7iQW2Gfb81H CWkyP0qf1xvBICEGtFajssrmGdWNx4LprqoUDaAKXZfVmaTjNKBYcmt5FBykM5s5ZTouIvyR3Vm Ymwam9QXDwHWUuysYS7e1qv/bEkiCszP1fRrtTooJxgurSzmDXO1Ca2OC63ivJrSc/Ib+OyIvHm uzbuZTAYwdVNyQ+l7Qk0Fool0GA4S8wI4G0NEKz9t0F2JdyA9SGIuJBZeI X-Received: by 2002:a05:600c:1c26:b0:499:a79a:694d with SMTP id 5b1f17b1804b1-49b91c265fdmr24699285e9.4.1787861782563; Thu, 27 Aug 2026 13:16:22 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:8824:7cb0:614c:86fd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49b4961004bsm91899855e9.4.2026.08.27.13.16.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 13:16:22 -0700 (PDT) From: Thierry Chatard To: linux-kernel@vger.kernel.org Cc: hansg@kernel.org, lee@kernel.org, platform-driver-x86@vger.kernel.org, ilpo.jarvinen@linux.intel.com, djrscally@gmail.com, linux-media@vger.kernel.org, mchehab@kernel.org, sakari.ailus@linux.intel.com, jacopo.mondi@ideasonboard.com, nicholas@rothemail.net, andriy.shevchenko@intel.com, v.vitovt@gmail.com, Thierry Chatard , Andy Shevchenko Subject: [PATCH v9 2/6] platform/x86: int3472: tps68470: use unsigned int for GPIO lookup loop counters Date: Thu, 27 Aug 2026 22:16:07 +0200 Message-ID: <20260827201611.99825-3-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260827201611.99825-1-tchatard@gmail.com> References: <20260827201611.99825-1-tchatard@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 GPIO lookup table loops in the probe and remove paths iterate up to board_data->n_gpiod_lookups, which is unsigned int. Use unsigned int for the loop counters to match and avoid a signed/unsigned comparison. No functional change. Suggested-by: Andy Shevchenko Signed-off-by: Thierry Chatard Reviewed-by: Andy Shevchenko --- drivers/platform/x86/intel/int3472/tps68470.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platfo= rm/x86/intel/int3472/tps68470.c index a496075c0..5baed848a 100644 --- a/drivers/platform/x86/intel/int3472/tps68470.c +++ b/drivers/platform/x86/intel/int3472/tps68470.c @@ -149,8 +149,8 @@ static int skl_int3472_tps68470_probe(struct i2c_client= *client) struct regmap *regmap; int n_consumers; int device_type; + unsigned int i; int ret; - int i; =20 if (!adev) return -ENODEV; @@ -233,7 +233,7 @@ static int skl_int3472_tps68470_probe(struct i2c_client= *client) static void skl_int3472_tps68470_remove(struct i2c_client *client) { const struct int3472_tps68470_board_data *board_data; - int i; + unsigned int i; =20 board_data =3D int3472_tps68470_get_board_data(dev_name(&client->dev)); if (board_data) { --=20 2.53.0 From nobody Mon Sep 28 02:58:58 2026 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 70E2B353A9E for ; Thu, 27 Aug 2026 20:16:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861791; cv=none; b=NLI5vKx1yfXvQDVnU0sLW3t65p/q25vnNuDHdK0GHYprPBNHdRSkgatkzwm9EK/B5WLsYfw/KwdJr6NfLWFCDar93FXNLNSjQDrm6ZUR2X4Gl1jbTKX4QZmBcxaXg0zBhhkhKXKd9a/v268pn7v7dt1Jy87aH1pXBuvC/zpF6tU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861791; c=relaxed/simple; bh=vNuwUj/mX1I2dCPd9YQdszRmwxME2mWk4VVqsZlPGjY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VVL26zIFQFOnMsGlsy7mRhGtUJmNk4sF/St/jp5LGbSkb3NMTRFfq0x+IVpQ9whhLWSbu8L9t9lpPFnsLKrEbh+SRIx31fKzoL0svlntd2l5g4ynrt1yCIpk3dxpD+duVnDUWAjAJ/zSaIdITLqTPsRqSKLJrnJbtyYcwsh8X5Q= 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=D4AEqHtT; arc=none smtp.client-ip=209.85.221.41 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="D4AEqHtT" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-482dbc9a00bso992763f8f.1 for ; Thu, 27 Aug 2026 13:16:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787861785; x=1788466585; 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:content-type; bh=v6E50MuFruFxc4u2sjZ0zpI88/7CpGxeczTeAdNIzYY=; b=D4AEqHtTePzn6Pib4uhF0kHsn3k9eMvPETuo6bueBgiQogJ73L8MOx+xtkxM/3JwBk 1ibp7/YCmBUOPVKz47dz9TIyVUoGQGj0n1cABUQ5VxzaOsL25J7BG19BZ3iY/l5d3nuv RhmRI0OQ+OWchV2WRimmOB02GfKQufhxehnjAZZE/JVccBgA85yT91DSu5AO9l3cX13c 4nIHDigKIcGUMcYh8+sxzsv6Se1JOtWp7okaod77BmRaKjbh0h3B3QAWXh933A0rCZIL VArQjZs5VA9oioRyHrSTPi4SWynM3W+CxUSCGTHp/huYHdMiWztoONJygxYT+VMJPi0r wOAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787861785; x=1788466585; 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:content-type; bh=v6E50MuFruFxc4u2sjZ0zpI88/7CpGxeczTeAdNIzYY=; b=LtiVQZp4OdyPg2gPdZLnCHg+J10M5Ltee/LFEO5vSz44owjahYDM92K7/g5mVG52tm HM0F/cX9NvAt/S2s9x8yYDds0083xemCczb8afmdlxq4gqVZqMi14ixjiaR4FcLvE73J Zio6xMJlZzc+gJFmaEw1oDdr+D9nxAKTsbgMkGROhYJhoUdqMBf1kUlkt1xdxYfr8Vs2 3rEjTK2UtBNbSmwDPMEwwWLU+vh4iPHT0Vu5LzJKsXg9EopWfCc/Ty8x7t1c/qGjYiay SyxhN9a9wFOREhFDp8r3Zwr4Uy2sXi9Rla+IeUwREsiyfsykCBU5SRq80MAzJbZgdanr KTOg== X-Gm-Message-State: AFuF++m0lvBINKHlvown51ANMOXFFDmezsQipXz50wcs5UkOO/z5Ap71 3xZ7WjL3IQJJ5Iw4saYxmVvdMxkbGJafxx9mC99eiD0kKGkC02qiL05c4Lk7b+t029LOig== X-Gm-Gg: AR+sD11DysE6wsPAVrsC3KW/vOlvZkINrSpFdufVxkAQD0T/tIcf9Qbup34XuiuNOBP h6CIyO2paXHitbZOTwoKhR/BqUcjmXJHeZi70EZRUibdtcG4XtRW3818RA4GrsStEkmKerCIcMq 7wSVGJlZkW6KJOg7/q5e1t3lKn/fCalUDSu6+e4DgIhGWcFc4B/tSdVPGZCQgq4Idn1W4X4ujhT kdZdXGJ+JidLfik0qrokmvfE5mvQDpNAOc7QQg/qlJxdW9DUCO7o2xzRMiwp2G9CVYz+P1zFqsG oOP7Tp3nPbMUaKwLU6aHXayeXOnSvaz5en99OTGQvYjPAlGiILUZR1DgXZRu0cOOjZYX5bL805Z VSXjNSElef08zE9F3eQj4xYN4ujCl436bSd+H6xuqvGjDGCAWjeXqdQzu/BL0Hw7uwg7RW5NNEK lNH7TDxxL416hrq4aan4hWsWGAYHnwJB0gK0Mx8qaApaUJFzxnUYRKUZDR X-Received: by 2002:a05:600c:474f:b0:49b:e22:4ee4 with SMTP id 5b1f17b1804b1-49b91a58979mr21413085e9.4.1787861784308; Thu, 27 Aug 2026 13:16:24 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:8824:7cb0:614c:86fd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49b4961004bsm91899855e9.4.2026.08.27.13.16.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 13:16:23 -0700 (PDT) From: Thierry Chatard To: linux-kernel@vger.kernel.org Cc: hansg@kernel.org, lee@kernel.org, platform-driver-x86@vger.kernel.org, ilpo.jarvinen@linux.intel.com, djrscally@gmail.com, linux-media@vger.kernel.org, mchehab@kernel.org, sakari.ailus@linux.intel.com, jacopo.mondi@ideasonboard.com, nicholas@rothemail.net, andriy.shevchenko@intel.com, v.vitovt@gmail.com, Thierry Chatard Subject: [PATCH v9 3/6] platform/x86: int3472: tps68470: fix clock consumer registration for Dell Latitude 5285 Date: Thu, 27 Aug 2026 22:16:08 +0200 Message-ID: <20260827201611.99825-4-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260827201611.99825-1-tchatard@gmail.com> References: <20260827201611.99825-1-tchatard@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 BIOS on the Dell Latitude 5285 leaves GNVS field C0TP at zero. With C0TP=3D0 the ACPI _DEP method on INT3479 (OV5670, front camera) resolves to PCI0 instead of the INT3472 (TPS68470 PMIC) device. Because for_each_acpi_consumer_dev() walks the _DEP reverse-mapping, INT3479 is invisible to it: the clock consumer lookup entry for the front camera is never registered with the tps68470-clk driver, and the OV5670 sensor driver cannot acquire its MCLK. Add optional static clock consumer fields to the board data so probe can register the consumers directly, bypassing the broken _DEP traversal. Platforms that do not set these fields keep using the existing ACPI traversal path unchanged. Signed-off-by: Thierry Chatard --- drivers/platform/x86/intel/int3472/tps68470.c | 105 ++++++++++-------- drivers/platform/x86/intel/int3472/tps68470.h | 10 ++ 2 files changed, 71 insertions(+), 44 deletions(-) diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platfo= rm/x86/intel/int3472/tps68470.c index 5baed848a..8423c6d20 100644 --- a/drivers/platform/x86/intel/int3472/tps68470.c +++ b/drivers/platform/x86/intel/int3472/tps68470.c @@ -142,9 +142,11 @@ skl_int3472_fill_clk_pdata(struct device *dev, struct = tps68470_clk_platform_data =20 static int skl_int3472_tps68470_probe(struct i2c_client *client) { - struct acpi_device *adev =3D ACPI_COMPANION(&client->dev); + struct device *dev =3D &client->dev; + struct acpi_device *adev =3D ACPI_COMPANION(dev); const struct int3472_tps68470_board_data *board_data; struct tps68470_clk_platform_data *clk_pdata; + struct gpiod_lookup_table * const *tables; struct mfd_cell *cells; struct regmap *regmap; int n_consumers; @@ -155,10 +157,6 @@ static int skl_int3472_tps68470_probe(struct i2c_clien= t *client) if (!adev) return -ENODEV; =20 - n_consumers =3D skl_int3472_fill_clk_pdata(&client->dev, &clk_pdata); - if (n_consumers < 0) - return n_consumers; - regmap =3D devm_regmap_init_i2c(client, &tps68470_regmap_config); if (IS_ERR(regmap)) { dev_err(&client->dev, "Failed to create regmap: %ld\n", PTR_ERR(regmap)); @@ -176,52 +174,71 @@ static int skl_int3472_tps68470_probe(struct i2c_clie= nt *client) device_type =3D skl_int3472_tps68470_calc_type(adev); switch (device_type) { case DESIGNED_FOR_WINDOWS: - board_data =3D int3472_tps68470_get_board_data(dev_name(&client->dev)); - if (!board_data) - return dev_err_probe(&client->dev, -ENODEV, "No board-data found for th= is model\n"); - - cells =3D kzalloc_objs(*cells, TPS68470_WIN_MFD_CELL_COUNT); - if (!cells) - return -ENOMEM; - - /* - * The order of the cells matters here! The clk must be first - * because the regulator depends on it. The gpios must be last, - * acpi_gpiochip_add() calls acpi_dev_clear_dependencies() and - * the clk + regulators must be ready when this happens. - */ - cells[0].name =3D "tps68470-clk"; - cells[0].platform_data =3D clk_pdata; - cells[0].pdata_size =3D struct_size(clk_pdata, consumers, n_consumers); - cells[1].name =3D "tps68470-regulator"; - cells[1].platform_data =3D (void *)board_data->tps68470_regulator_pdata; - cells[1].pdata_size =3D sizeof(struct tps68470_regulator_platform_data); - cells[2].name =3D "tps68470-gpio"; - - for (i =3D 0; i < board_data->n_gpiod_lookups; i++) - gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[i]); - - ret =3D devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_NONE, - cells, TPS68470_WIN_MFD_CELL_COUNT, - NULL, 0, NULL); - kfree(cells); - - if (ret) { - for (i =3D 0; i < board_data->n_gpiod_lookups; i++) - gpiod_remove_lookup_table(board_data->tps68470_gpio_lookup_tables[i]); - } - break; case DESIGNED_FOR_CHROMEOS: - ret =3D devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_NONE, - tps68470_cros, ARRAY_SIZE(tps68470_cros), - NULL, 0, NULL); - break; + return devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_NONE, + tps68470_cros, + ARRAY_SIZE(tps68470_cros), + NULL, 0, NULL); default: dev_err(&client->dev, "Failed to add MFD devices\n"); return device_type; } =20 + board_data =3D int3472_tps68470_get_board_data(dev_name(dev)); + if (!board_data) + return dev_err_probe(dev, -ENODATA, + "No board-data found for this model\n"); + + if (board_data->n_clk_consumers) { + clk_pdata =3D devm_kzalloc(dev, + struct_size(clk_pdata, consumers, + board_data->n_clk_consumers), + GFP_KERNEL); + if (!clk_pdata) + return -ENOMEM; + clk_pdata->n_consumers =3D board_data->n_clk_consumers; + for (i =3D 0; i < board_data->n_clk_consumers; i++) + clk_pdata->consumers[i] =3D board_data->clk_consumers[i]; + n_consumers =3D board_data->n_clk_consumers; + } else { + n_consumers =3D skl_int3472_fill_clk_pdata(dev, &clk_pdata); + if (n_consumers < 0) + return n_consumers; + } + + cells =3D kzalloc_objs(*cells, TPS68470_WIN_MFD_CELL_COUNT); + if (!cells) + return -ENOMEM; + + /* + * The order of the cells matters here! The clk must be first + * because the regulator depends on it. The gpios must be last, + * acpi_gpiochip_add() calls acpi_dev_clear_dependencies() and + * the clk + regulators must be ready when this happens. + */ + cells[0].name =3D "tps68470-clk"; + cells[0].platform_data =3D clk_pdata; + cells[0].pdata_size =3D struct_size(clk_pdata, consumers, n_consumers); + cells[1].name =3D "tps68470-regulator"; + cells[1].platform_data =3D (void *)board_data->tps68470_regulator_pdata; + cells[1].pdata_size =3D sizeof(struct tps68470_regulator_platform_data); + cells[2].name =3D "tps68470-gpio"; + + tables =3D board_data->tps68470_gpio_lookup_tables; + for (i =3D 0; i < board_data->n_gpiod_lookups; i++) + gpiod_add_lookup_table(tables[i]); + + ret =3D devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, + cells, TPS68470_WIN_MFD_CELL_COUNT, + NULL, 0, NULL); + kfree(cells); + + if (ret) { + for (i =3D 0; i < board_data->n_gpiod_lookups; i++) + gpiod_remove_lookup_table(tables[i]); + } + /* * No acpi_dev_clear_dependencies() here, since the acpi_gpiochip_add() * for the GPIO cell already does this. diff --git a/drivers/platform/x86/intel/int3472/tps68470.h b/drivers/platfo= rm/x86/intel/int3472/tps68470.h index 35915e701..1d3d67459 100644 --- a/drivers/platform/x86/intel/int3472/tps68470.h +++ b/drivers/platform/x86/intel/int3472/tps68470.h @@ -12,11 +12,21 @@ #define _INTEL_SKL_INT3472_TPS68470_H =20 struct gpiod_lookup_table; +struct tps68470_clk_consumer; struct tps68470_regulator_platform_data; =20 struct int3472_tps68470_board_data { const char *dev_name; const struct tps68470_regulator_platform_data *tps68470_regulator_pdata; + /* + * Static clock consumers. When n_clk_consumers is non-zero these + * are used in place of for_each_acpi_consumer_dev() to build the + * tps68470-clk platform data. Needed on platforms where a sensor's + * ACPI _DEP does not list the INT3472 device, causing that sensor + * to be missed by the ACPI dependency traversal. + */ + unsigned int n_clk_consumers; + const struct tps68470_clk_consumer *clk_consumers; unsigned int n_gpiod_lookups; struct gpiod_lookup_table *tps68470_gpio_lookup_tables[]; }; --=20 2.53.0 From nobody Mon Sep 28 02:58:58 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.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 5E1F5360EFC for ; Thu, 27 Aug 2026 20:16:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861790; cv=none; b=qYbDBMY8L1sn8ov71kKoZsEUnOIhh/FTWPWl0UQBuehvMfkQwgQ9gscq74ZRQs8zqwYBCjDbMp1f/fuIDS/4/5iV4Owx4VPExSkmdtXoS9mKZncj5MDtR5clrchC4HaJh7p7vorgvzCHNpaZAnAbsHeoUruIkNiBu5jGBkvAG/4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861790; c=relaxed/simple; bh=z/V82A3AGTBZLT0qszl2sWHucJ9MguIes5hmsNeYlew=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hc7JvCi8Dyi9gJj9D79nYuoY/WvNFOHzLD+8xHElRi+ULgd96G+J16OdPRktTEO9QfJzUapSG4WNgMKEkOES9w3lm8u8wsl4SmOHoeZyuCbzFO0FkX6hgJZugRTiTJYOe6/3jY9yeATRtc/4VyMIk2En8r4XfmDyR45e/3FP0gc= 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=Ho/owCUI; arc=none smtp.client-ip=209.85.128.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="Ho/owCUI" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-49978908b35so1291515e9.0 for ; Thu, 27 Aug 2026 13:16:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787861786; x=1788466586; 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:content-type; bh=1T3SsPgdXSDNYo0ffX9lQgsKiOcg5S54jZgYvoyZFL8=; b=Ho/owCUIo0HOyrVw0+qRRKzdmICl8sQEbUXD5A/bgbEXYMpBSrG20aiXzil9cfnoyK tqapf6s8VyXDPnwSspL++HxtKt6+qNjJd7cIHR+r3vRivLnraoGfavq/hkjeYl3iqfPD nZ77WIIK2HcLPPr/PxiRiiKK2MK0XVKj6mKMLXx5+FCixSwI7QwWLYw7hmp7W8e3F/7Y 9v2hIYmy1DD8hSLarIEzbelnCH06sC505iCjX2j2FCYtMEDcSH59h+jvLxbKODoI6zWB F+Fkratkewc0FWGofHg2VvMT9TUYokaQHOML1aZkFavpkY2LKsexQat1AXVyP663zf2G uSBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787861786; x=1788466586; 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:content-type; bh=1T3SsPgdXSDNYo0ffX9lQgsKiOcg5S54jZgYvoyZFL8=; b=pAVgEsWy0pawegi2g0vfcHkhGuUlp2hb/jUzjc8Uy1DXKmLniHkRonxae5KAJjgi+H 0o/4w2PlaylshFLojMazXu5+m3SDLw6pOrW18oC6QK2rW95scMQlV99DqcKBI1aa/X4N QTUQ3R7EfZGg88vnoNlJ7+BF1ynMZFiQJjSLudnELt3gxIdDEtIayhNJhRgWqRhsmi4Z 4ZkBfR5+Y+DMICw6sS9VfaXvodYoa9J078lJsi08M6tDRlbRar3O2enjSn42Qu1M8t4z CVtWhsLFhL9o21uZTpX/UL21rg2QE0pLJmCuvasbSfVjptB6UAW/jqTtx6PhBaHpKUKd uW7g== X-Gm-Message-State: AFuF++mslNlP2/aG3x4M267K0gsOY4Qo5MHwxX4r7jZBxwOtd4rYr4Xu Fp5pXiKMnUjISUGNusexRby0b2ekKzeIKD3tIZRsri+s2QWrc8j48XyHBz6n8jQnWijrqw== X-Gm-Gg: AR+sD10ibc4iibkbf833FZaAtdpBUDKcrja/TeI3omstehnZr3PPhM+tvV8mLB9lKbz G3fYpsODpD2bEW4RwqUEL84Cz7hoM6paAxehojo7ndp1Xyk5RKREyZBI6K+h5TAg0ot28+fmUdn g2hrJ0UIDqz9oxuoPu8NhXdDZgWNUlqKQ0OjOxNeyIsFEeU6s+F+7lu+3N+pFMb+6dfqHxkAbdx Rccue1DbffnNqC5DuperFp/fVNsQfmB4PsVrFGDoPR20r2iOWWM67wMoVYcWXsCtn/tPuqL8urE mecGUYaR+gFfcEmTr6nN2EKWwRiq+zKVSfpoFKWm+hQ06lD7njHePdrY8QDIFISZbNp5HWxJYUe psoHvNWK0c5xLeo8PwWUQ/QK+jbGX/vhXet9g7Amp8GwYHFdHe5drBVx0qqHh7zoIgPOsWygqAQ s8d/iRxFYTYUnSrwMbcskw0UwvbQ9x2v8agTpmrFsi4H9mXmY0U3KTVsi0 X-Received: by 2002:a05:600c:4585:b0:499:b402:6c0 with SMTP id 5b1f17b1804b1-49b91c265d7mr20061795e9.3.1787861786245; Thu, 27 Aug 2026 13:16:26 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:8824:7cb0:614c:86fd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49b4961004bsm91899855e9.4.2026.08.27.13.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 13:16:25 -0700 (PDT) From: Thierry Chatard To: linux-kernel@vger.kernel.org Cc: hansg@kernel.org, lee@kernel.org, platform-driver-x86@vger.kernel.org, ilpo.jarvinen@linux.intel.com, djrscally@gmail.com, linux-media@vger.kernel.org, mchehab@kernel.org, sakari.ailus@linux.intel.com, jacopo.mondi@ideasonboard.com, nicholas@rothemail.net, andriy.shevchenko@intel.com, v.vitovt@gmail.com, Thierry Chatard Subject: [PATCH v9 4/6] platform/x86: int3472: tps68470: add board data for Dell Latitude 5285 Date: Thu, 27 Aug 2026 22:16:09 +0200 Message-ID: <20260827201611.99825-5-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260827201611.99825-1-tchatard@gmail.com> References: <20260827201611.99825-1-tchatard@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 Dell Latitude 5285 2-in-1 has two cameras connected through a TPS68470 PMIC/clock/GPIO hub: Front: OV5670 (ACPI INT3479) on I2C4 Back: OV8858 (ACPI INT3477) on I2C2, daisy-chained behind TPS68470 S_I2C port (controlled by reg 0x43 S_I2C_CTL) GPIO mapping (TPS68470): INT3479 (OV5670): GPIO3 =3D reset, GPIO4 =3D powerdown (both active-low) INT3477 (OV8858): GPIO9 =3D s_resetn, GPIO7 =3D s_enable (both active-low) GPIO9 and GPIO7 are the TPS68470 secondary-port GPIOs (SGPO reg 0x22 bits 2 and 0), not regular GPDO outputs. Regulator mapping: CORE -> dvdd / INT3477 ANA -> avdd / INT3477 VIO -> generic (kept always_on; no direct consumers) VSIO -> dovdd / INT3477: enabling VSIO sets S_I2C_CTL (reg 0x43), opening the I2C passthrough to OV8858; the ov8858 driver enables dovdd at probe time, which naturally activates the passthrough before any I2C transaction to the sensor. AUX1 -> dvdd / INT3479 AUX2 -> dovdd / INT3479 A static clock consumer list is provided for both sensors (INT3477 and INT3479) to work around the broken ACPI _DEP on INT3479 described in the previous patch. Signed-off-by: Thierry Chatard --- .../x86/intel/int3472/tps68470_board_data.c | 170 +++++++++++++++++- 1 file changed, 167 insertions(+), 3 deletions(-) diff --git a/drivers/platform/x86/intel/int3472/tps68470_board_data.c b/dri= vers/platform/x86/intel/int3472/tps68470_board_data.c index 71357a036..6961e2926 100644 --- a/drivers/platform/x86/intel/int3472/tps68470_board_data.c +++ b/drivers/platform/x86/intel/int3472/tps68470_board_data.c @@ -74,8 +74,12 @@ static const struct regulator_init_data surface_go_tps68= 470_vcm_reg_init_data =3D .consumer_supplies =3D int347a_vcm_consumer_supplies, }; =20 -/* Ensure the always-on VIO regulator has the same voltage as VSIO */ -static const struct regulator_init_data surface_go_tps68470_vio_reg_init_d= ata =3D { +/* + * Keep VIO always_on. Its voltage must exactly match VSIO on any board + * using the TPS68470 I2C pass-through, and must never have direct consume= rs + * (all I2C-path outputs are gated through VSIO). + */ +static const struct regulator_init_data generic_tps68470_vio_reg_init_data= =3D { .constraints =3D { .min_uV =3D 1800600, .max_uV =3D 1800600, @@ -122,7 +126,7 @@ static const struct tps68470_regulator_platform_data su= rface_go_tps68470_pdata =3D [TPS68470_CORE] =3D &surface_go_tps68470_core_reg_init_data, [TPS68470_ANA] =3D &surface_go_tps68470_ana_reg_init_data, [TPS68470_VCM] =3D &surface_go_tps68470_vcm_reg_init_data, - [TPS68470_VIO] =3D &surface_go_tps68470_vio_reg_init_data, + [TPS68470_VIO] =3D &generic_tps68470_vio_reg_init_data, [TPS68470_VSIO] =3D &surface_go_tps68470_vsio_reg_init_data, [TPS68470_AUX1] =3D &surface_go_tps68470_aux1_reg_init_data, [TPS68470_AUX2] =3D &surface_go_tps68470_aux2_reg_init_data, @@ -287,6 +291,159 @@ static const struct int3472_tps68470_board_data dell_= 7212_tps68470_board_data =3D }, }; =20 +/* Settings for Dell Latitude 5285 2-in-1 */ + +/* + * The BIOS leaves GNVS field C0TP at zero, which causes INT3479's _DEP to + * resolve to PCI0 instead of the INT3472 device. Provide a static clock + * consumer list so probe registers MCLK lookups for both sensors regardle= ss + * of the broken _DEP traversal. + */ +static const struct tps68470_clk_consumer dell_5285_clk_consumers[] =3D { + { .consumer_dev_name =3D "i2c-INT3477:00" }, /* OV8858 rear camera */ + { .consumer_dev_name =3D "i2c-INT3479:00" }, /* OV5670 front camera */ +}; + +static struct regulator_consumer_supply dell_5285_int3477_ana_consumer_sup= plies[] =3D { + REGULATOR_SUPPLY("avdd", "i2c-INT3477:00"), +}; + +static struct regulator_consumer_supply dell_5285_int3477_core_consumer_su= pplies[] =3D { + REGULATOR_SUPPLY("dvdd", "i2c-INT3477:00"), +}; + +/* + * VSIO controls the S_I2C_CTL passthrough; its voltage must match VIO + * (both 1800600 uV). dovdd/INT3477 enables the passthrough when OV8858 + * opens its I2C path. avdd/INT3479 provides the OV5670 analog supply. + */ +static struct regulator_consumer_supply dell_5285_int3477_vsio_consumer_su= pplies[] =3D { + REGULATOR_SUPPLY("dovdd", "i2c-INT3477:00"), + REGULATOR_SUPPLY("avdd", "i2c-INT3479:00"), +}; + +static struct regulator_consumer_supply dell_5285_int3479_aux1_consumer_su= pplies[] =3D { + REGULATOR_SUPPLY("dvdd", "i2c-INT3479:00"), +}; + +static struct regulator_consumer_supply dell_5285_int3479_aux2_consumer_su= pplies[] =3D { + REGULATOR_SUPPLY("dovdd", "i2c-INT3479:00"), +}; + +static const struct regulator_init_data dell_5285_tps68470_core_reg_init_d= ata =3D { + .constraints =3D { + .min_uV =3D 1200000, + .max_uV =3D 1200000, + .apply_uV =3D 1, + .valid_ops_mask =3D REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies =3D ARRAY_SIZE(dell_5285_int3477_core_consumer_sup= plies), + .consumer_supplies =3D dell_5285_int3477_core_consumer_supplies, +}; + +static const struct regulator_init_data dell_5285_tps68470_ana_reg_init_da= ta =3D { + .constraints =3D { + .min_uV =3D 2815200, + .max_uV =3D 2815200, + .apply_uV =3D 1, + .valid_ops_mask =3D REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies =3D ARRAY_SIZE(dell_5285_int3477_ana_consumer_supp= lies), + .consumer_supplies =3D dell_5285_int3477_ana_consumer_supplies, +}; + +static const struct regulator_init_data dell_5285_tps68470_vcm_reg_init_da= ta =3D { + .constraints =3D { + .min_uV =3D 2815200, + .max_uV =3D 2815200, + .apply_uV =3D 1, + .valid_ops_mask =3D REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies =3D 0, + .consumer_supplies =3D NULL, +}; + +static const struct regulator_init_data dell_5285_tps68470_vsio_reg_init_d= ata =3D { + .constraints =3D { + .min_uV =3D 1800600, + .max_uV =3D 1800600, + .apply_uV =3D 1, + .valid_ops_mask =3D REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies =3D ARRAY_SIZE(dell_5285_int3477_vsio_consumer_sup= plies), + .consumer_supplies =3D dell_5285_int3477_vsio_consumer_supplies, +}; + +static const struct regulator_init_data dell_5285_tps68470_aux1_reg_init_d= ata =3D { + .constraints =3D { + .min_uV =3D 1213200, + .max_uV =3D 1213200, + .apply_uV =3D 1, + .valid_ops_mask =3D REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies =3D ARRAY_SIZE(dell_5285_int3479_aux1_consumer_sup= plies), + .consumer_supplies =3D dell_5285_int3479_aux1_consumer_supplies, +}; + +static const struct regulator_init_data dell_5285_tps68470_aux2_reg_init_d= ata =3D { + .constraints =3D { + .min_uV =3D 1800600, + .max_uV =3D 1800600, + .apply_uV =3D 1, + .valid_ops_mask =3D REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies =3D ARRAY_SIZE(dell_5285_int3479_aux2_consumer_sup= plies), + .consumer_supplies =3D dell_5285_int3479_aux2_consumer_supplies, +}; + +static const struct tps68470_regulator_platform_data dell_5285_tps68470_pd= ata =3D { + .reg_init_data =3D { + [TPS68470_CORE] =3D &dell_5285_tps68470_core_reg_init_data, + [TPS68470_ANA] =3D &dell_5285_tps68470_ana_reg_init_data, + [TPS68470_VCM] =3D &dell_5285_tps68470_vcm_reg_init_data, + [TPS68470_VIO] =3D &generic_tps68470_vio_reg_init_data, + [TPS68470_VSIO] =3D &dell_5285_tps68470_vsio_reg_init_data, + [TPS68470_AUX1] =3D &dell_5285_tps68470_aux1_reg_init_data, + [TPS68470_AUX2] =3D &dell_5285_tps68470_aux2_reg_init_data, + }, +}; + +static struct gpiod_lookup_table dell_5285_int3477_gpios =3D { + .dev_id =3D "i2c-INT3477:00", + .table =3D { + /* + * TPS68470 GPIO9 =3D s_resetn (secondary camera reset, active-low) + * TPS68470 GPIO7 =3D s_enable (secondary camera enable/powerdown) + * These logic outputs are specifically designed for secondary + * camera control on the TPS68470. Matches Surface Go pattern. + */ + GPIO_LOOKUP("tps68470-gpio", 9, "reset", GPIO_ACTIVE_LOW), + GPIO_LOOKUP("tps68470-gpio", 7, "powerdown", GPIO_ACTIVE_LOW), + { } + } +}; + +static struct gpiod_lookup_table dell_5285_int3479_gpios =3D { + .dev_id =3D "i2c-INT3479:00", + .table =3D { + GPIO_LOOKUP("tps68470-gpio", 3, "reset", GPIO_ACTIVE_LOW), + GPIO_LOOKUP("tps68470-gpio", 4, "powerdown", GPIO_ACTIVE_LOW), + { } + } +}; + +static const struct int3472_tps68470_board_data dell_5285_tps68470_board_d= ata =3D { + .dev_name =3D "i2c-INT3472:05", + .tps68470_regulator_pdata =3D &dell_5285_tps68470_pdata, + .n_clk_consumers =3D ARRAY_SIZE(dell_5285_clk_consumers), + .clk_consumers =3D dell_5285_clk_consumers, + .n_gpiod_lookups =3D 2, + .tps68470_gpio_lookup_tables =3D { + &dell_5285_int3477_gpios, + &dell_5285_int3479_gpios, + }, +}; + static const struct dmi_system_id int3472_tps68470_board_data_table[] =3D { { .matches =3D { @@ -316,6 +473,13 @@ static const struct dmi_system_id int3472_tps68470_boa= rd_data_table[] =3D { }, .driver_data =3D (void *)&dell_7212_tps68470_board_data, }, + { + .matches =3D { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Latitude 5285"), + }, + .driver_data =3D (void *)&dell_5285_tps68470_board_data, + }, { } }; =20 --=20 2.53.0 From nobody Mon Sep 28 02:58:58 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 BC97E3F104A for ; Thu, 27 Aug 2026 20:16:29 +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=1787861791; cv=none; b=RC4KU0v3ek9DS+Ui/gR04C8zYH3JWWcaSq6Mxa15ekCW0p6noR49B/dc2XJKHZY4Twtfhj97ep6o7RSMd2ZZMgSzG4+A/HgfxccRqltSlxoDBslnX3ffmcOiq2UWRWuHP2gyvmK5flHN9JIQFICL6WvNcG96oiKp+eL52FCCapw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861791; c=relaxed/simple; bh=EJGytrLx4MzUVYSMul27Z0ukuwJPgE4MBoPNMvnDsr8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VBSPTk7wo90uECRCoJwiDPYD8iznuYUkP360oUEcWzw5CYvqT8BSj/pG7ip1J2AQOPXUSgUcIWtIqzVGDKbKJw+oicZ9+Kr4LTHY+xbHbCGvMCnBwBW+WEaMYsvlmfWzi4MxI3jKMl8z0TnCHz/rW/S0ztHkJsLbC+M+4cl8BII= 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=HdQj/ULZ; 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="HdQj/ULZ" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-493b966dd74so779505e9.3 for ; Thu, 27 Aug 2026 13:16:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787861788; x=1788466588; 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:content-type; bh=9ptohRIkOkqYrjTOru/sCBYU3qNV90a3HPO3XEYdQu0=; b=HdQj/ULZ0Z075T/6nhzfQ8fY1MsXPeaOEOqDEOc4HMnue+MmM4wfsbzDfkS+aKWwm5 ULZZAlODoOx8CKmWoJBP4tFOHSAj3PRabsPg5cBxSRwIzcevwsBEFyfmdgQuhtNmSCXP ky77Qp6G0tu9Ghv68iU1VEsri9MTfcw/oEKe0UUIXGi7x3bRbSsJ/YG7+21ucrNKN0s4 0j6HHRBFtkfvmUr7l3G9df/Ku1ygcTUCmgM+rK1HYS01KW5EL+KuR+BFGbrqZXMmmpwk zFjLqylzjt8ATVMz6QV3JfqbAZzuKphWx0mC3hmrLUGk0nAUn3AghwCkpRDV1u8U3+LF 73sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787861788; x=1788466588; 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:content-type; bh=9ptohRIkOkqYrjTOru/sCBYU3qNV90a3HPO3XEYdQu0=; b=rDniv1n7HrKvupsyYvDexSpHOWokkhbdpj/eGGJC9FJfhzPDaDqYXUUbbW4gTBPPiq zoRLF4ZX7z/oBdsSH8pvrYhVZPAF1I0Tfm4X95WZGoFX3+hs6ReP4FI7E3ijW0KIzna9 +RsZA1Hq6ARlyDY0wpc2Ryz0nvXjw5B1V5PTsYanSz3QHpapFM9ASXH0AumwKQAFGl8S kCD3cj0gR8xlt49KrfRNBaQqMby3Tp+cjF4Y2BYCY7b8V8ZJ3Og2zblvYt/G/KLcRmg0 UW3qjs3Eom7+yKb55Xq8BuWBJjNxZGQKXFx2W2ZWQr1wmzDQsmGEEIo2fFkkKTAysb+k LxWQ== X-Gm-Message-State: AFuF++mO+AiangvhceY6oT41sZRVS2FtZoo1p9CA3IhWJx6NDJWH5yVH RUVgfRIIzZtMEDv9gjUISiCFQv2XDmvjHW+5GfEJtNc7bgjUNOBGWPQsDQKcCmFTXeT1kA== X-Gm-Gg: AR+sD10lb1DlU17Lubs1mJ1+f0WzeoB0QJ2HyjuCShFuuAXEoVHQKFqJG0ZUUOO1Acm ufwRf6lj7CiziP0woclh9O1LfO02qSS1psVK4LmndyTfYtbmYtIlXOXzBBXW0aKLkG0wM9746Pq H5W7SoqrZvd/cro3AxoYby5HwChdSU0/p+Wc0TAey2PboyuReReUIWK8+IiCbCkR5RxFCgFLUwz CkyTkkLTgVHl2qXCsFH3LQJODvR5kVZJQ+Z8zFuesvibOjkIORR2gciE4lk7iwgxG7WU6TMBSRf dwK9fSPK80Mw5q2YGxhsn9hEfP/g2lYPwXH8FH+OO7p4Bt+vf4Y+D8T7z+0FX9EpC5W739sqBsk D+MjVUOhomVabOPLT5GLJIBhhVSUYa/J++Jj2Lmdt0Lbsk6hB3Kt29h2V7ey1x7PNObA6luHs9P 582eyKmi7U9qPHBtUmJWnhNLia14Lrw+BIly41BGL4sZWO/S05jW1J94qt X-Received: by 2002:a05:600c:8b86:b0:493:f5bf:4dc6 with SMTP id 5b1f17b1804b1-49b91c2777emr25791585e9.7.1787861787967; Thu, 27 Aug 2026 13:16:27 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:8824:7cb0:614c:86fd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49b4961004bsm91899855e9.4.2026.08.27.13.16.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 13:16:27 -0700 (PDT) From: Thierry Chatard To: linux-kernel@vger.kernel.org Cc: hansg@kernel.org, lee@kernel.org, platform-driver-x86@vger.kernel.org, ilpo.jarvinen@linux.intel.com, djrscally@gmail.com, linux-media@vger.kernel.org, mchehab@kernel.org, sakari.ailus@linux.intel.com, jacopo.mondi@ideasonboard.com, nicholas@rothemail.net, andriy.shevchenko@intel.com, v.vitovt@gmail.com, Thierry Chatard Subject: [PATCH v9 5/6] media: ipu-bridge: add sensor configuration for OV8858 (INT3477) Date: Thu, 27 Aug 2026 22:16:10 +0200 Message-ID: <20260827201611.99825-6-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260827201611.99825-1-tchatard@gmail.com> References: <20260827201611.99825-1-tchatard@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 Omnivision OV8858 is used as the rear camera in several Intel IPU3-based devices (e.g. Dell Latitude 5285 2-in-1). Its ACPI HID is INT3477. Add a sensor configuration entry with a link frequency of 360 MHz to allow ipu_bridge to create the firmware node for this sensor. Signed-off-by: Thierry Chatard --- drivers/media/pci/intel/ipu-bridge.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/media/pci/intel/ipu-bridge.c b/drivers/media/pci/intel= /ipu-bridge.c index 32cc95a76..bfca63a31 100644 --- a/drivers/media/pci/intel/ipu-bridge.c +++ b/drivers/media/pci/intel/ipu-bridge.c @@ -63,6 +63,8 @@ static const struct ipu_sensor_config ipu_supported_senso= rs[] =3D { IPU_SENSOR_CONFIG("INT33F0", 1, 384000000), /* Omnivision OV2740 */ IPU_SENSOR_CONFIG("INT3474", 1, 180000000), + /* Omnivision OV8858 */ + IPU_SENSOR_CONFIG("INT3477", 1, 360000000), /* Omnivision OV5670 */ IPU_SENSOR_CONFIG("INT3479", 1, 422400000), /* Omnivision OV8865 */ --=20 2.53.0 From nobody Mon Sep 28 02:58:58 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 C5396370D5E for ; Thu, 27 Aug 2026 20:16:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861799; cv=none; b=qFH3OyV8cXzwVmHC3CNhnThg7Ygv6/FtjXltJ1RZ8Ubt03LeAkQSoWke2TB39ne+0FCj/KpCGR5lc6oHoHvwbVjsG1JWstfkebUduIlZwpRyVjbFMV5WPQ+VsRr16w4nnNE/5M0Z8+5tsUpWIReLYV++DJh+SCehJyP74y8nVBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787861799; c=relaxed/simple; bh=ot5s3z0y3WkGd23yN8si0am4L6kSSGA+LkIE6cUufHM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UFGEe7Dwsh/sTTCkY9Qh8H8/lbDOBZMs/qooLC0502NfMbgcRo0P4fGntZUXqfIEOOfZlwTbfN6d6ggqMVfkCfhhv2gOiroOfDDgRnu1lORtEw9yp6H0YCZOxXGXyZXLbZuNxtUCvhCS9zrB5LCr02fJ5u4qdB+NUr6u9R5EWBY= 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=bJUZwU2r; arc=none smtp.client-ip=209.85.128.45 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="bJUZwU2r" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-49557167508so1863165e9.1 for ; Thu, 27 Aug 2026 13:16:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787861790; x=1788466590; 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:content-type; bh=p+YYaj9hB2BEbjd6/AK9OJyefsLzkvfj7sSU25cg5Eo=; b=bJUZwU2rDJFnl8s3+d5K7JXhpl7Rz8mlCo+N+ONlPsz4N+dUHFnOPDrHRXOMhoZ3Ku shu0tGRol+sQ/hnauYN/dO31fnAB8O/PBdwu9bVZuWsETT9gkQDXrHAnIr5bTHk+l+6E 5JZI61nkeloNejkd3Diz7Lf9AZf1NFCJ3JuOqDEaOjrkzL9YZcephkrteVgRlfoFNUeo qc/7o1WYIFLtIDTHGiQ9/9X1m7UJGAZDVD0iNyK1sjmblJtRKLTyyQGCJoqVwXjtmrxu ctu6eOS7psYfRv89pR64l9TTPnoAui+C8Zu0EtSgMg/4IinZ0zS2h5kpTdOD6PZXeUah flqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787861790; x=1788466590; 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:content-type; bh=p+YYaj9hB2BEbjd6/AK9OJyefsLzkvfj7sSU25cg5Eo=; b=bTR27QjoW6lbkxMqs+lDOxnlN9yRk26hs/Cq3FSSKbku2Bg1Gcs3y2Aa3rsVSSCLA2 D2Egdo9SBJlu2UrlavPnf7D9Mq4SpMEC+UZtqDlm8sV9+3YSv/8bWOjcvNw2hxuLmGnk 5nRWC3WxPmv9cuf9v2dqiC2z1tTSn4uffmmDPGy7OgyB9snGkN+x8wMydYUaRQ6JvvRM k7P4UsFCjZxJMbdAR6rvtm/i88Ouv1JWerB8bXe2zU5R8Ux7vwLsucvep8LkY2SAXovS pSMQ+K1AaPldIsWb2XlbLY9f36nbnv4c1bXGjEI8l3rbbX9bnKQbFMRDHx4korRyz4TV I01A== X-Gm-Message-State: AFuF++mvKxZEXLS0jOjAqmJsVO3S9BHR7Hwb3q6wwHytObI5QExbH3O3 MSLYzyL3aiptSHrmg5mBIySmTDlsQ1zFfBuuEKZo1WuOY6fpuVsdmQ2blQYQL0rR6pobdg== X-Gm-Gg: AR+sD12cLWYg+R9cNyyKYF7k6hj4m4//Wwemd237GjgI+C190YQSbOjC9nxEMXXpKHV REo4zUCo9sK9VAqhme4jcpEh+nb15VRfBTH67tkqXpOSVUR/5RdjOEKwUSDPPtfJ+dHxT/geVLV +D0dIpQcJsFbjWMse6qACGPvjPsJp5NWx26XV8sCpGmB//QA2kMVr1T0KZN5/8A+9/hYJPJOopl HLpZwAMm/2D7rPujJOZ8HljzBjM7uNxQDu2T9FUE2b82At2vYNlI62W0lbKyGyGjWo5xxXuIJld sjM+KKKrPJbESZr/f8GWcQs5vy4iDvcq1Gzfq22pFaI3SJd7d64HbSy2Vfw/sbX82n3GTh8pMkG jj7K7Dihn5nLBQ62vZrLKpeJxFEVASUZEaVsgkmdpymhEEQhLvi96o7kAItzRtnjmnV0L2ZFlGv squA0YCrLsKbiXoQ22QT1dDFLPN3FTAXt5XMJ8UU34SRHOV3WT+roErZy0zdFpUm1ddR2a X-Received: by 2002:a05:600c:6215:b0:499:a277:e8b5 with SMTP id 5b1f17b1804b1-49b91c1d5f4mr21884975e9.3.1787861790049; Thu, 27 Aug 2026 13:16:30 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:8824:7cb0:614c:86fd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49b4961004bsm91899855e9.4.2026.08.27.13.16.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2026 13:16:29 -0700 (PDT) From: Thierry Chatard To: linux-kernel@vger.kernel.org Cc: hansg@kernel.org, lee@kernel.org, platform-driver-x86@vger.kernel.org, ilpo.jarvinen@linux.intel.com, djrscally@gmail.com, linux-media@vger.kernel.org, mchehab@kernel.org, sakari.ailus@linux.intel.com, jacopo.mondi@ideasonboard.com, nicholas@rothemail.net, andriy.shevchenko@intel.com, v.vitovt@gmail.com, Thierry Chatard Subject: [PATCH v9 6/6] media: ov8858: add ACPI device ID INT3477 Date: Thu, 27 Aug 2026 22:16:11 +0200 Message-ID: <20260827201611.99825-7-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260827201611.99825-1-tchatard@gmail.com> References: <20260827201611.99825-1-tchatard@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 Omnivision OV8858 appears in ACPI firmware under the HID INT3477 on Intel IPU3-based platforms such as the Dell Latitude 5285 2-in-1. Add INT3477 to the ACPI match table so the driver binds when instantiated by ipu_bridge. Signed-off-by: Thierry Chatard --- drivers/media/i2c/ov8858.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c index 3f45f7fab..f0148c1f2 100644 --- a/drivers/media/i2c/ov8858.c +++ b/drivers/media/i2c/ov8858.c @@ -1981,11 +1981,18 @@ static const struct of_device_id ov8858_of_match[] = =3D { }; MODULE_DEVICE_TABLE(of, ov8858_of_match); =20 +static const struct acpi_device_id ov8858_acpi_ids[] =3D { + { .id =3D "INT3477" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(acpi, ov8858_acpi_ids); + static struct i2c_driver ov8858_i2c_driver =3D { .driver =3D { .name =3D "ov8858", .pm =3D &ov8858_pm_ops, .of_match_table =3D ov8858_of_match, + .acpi_match_table =3D ov8858_acpi_ids, }, .probe =3D ov8858_probe, .remove =3D ov8858_remove, --=20 2.53.0