From nobody Mon Sep 28 04:48:49 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.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 4D8E63DA7C4 for ; Wed, 26 Aug 2026 11:26:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743565; cv=none; b=URL3ym3i52CkGFQ12oZalshxiImVr3GLUG0Jfns/FtLxn+QhnK+aqpkcLQGGFPTqR7DQcy7snibeR6jv4gxLP+4UA9lD2P/vcYQIi+7nIgGf/pXYULgQyIKT1beGXnZ/2I3/Wlan7SPoSxSdz2kndOZSOWiEA9tbWfNGjkMs0mY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743565; c=relaxed/simple; bh=0gD5BmUMaYyCDEhRh9T6gAk4MMNoJ01ORH4Z2PV7oRE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jrl2R4pjWXxdueyOpOhPQjWqISGTdR8p1uHREJyt9m5jXAFZtV5HVx4quvJj4bmKm1nH0Fr98VgmneHZv1Nkzjmj9hJbvhHCleDHQR4R6Cc8MrtggZtdAtIFaK4qrtP1WQfdxdeiEeXaPbAnMjJZghyZ8kMB17ugKQnsLi7USzE= 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=p2N11Sb4; arc=none smtp.client-ip=209.85.221.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="p2N11Sb4" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-482e29049adso203092f8f.2 for ; Wed, 26 Aug 2026 04:26:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787743560; x=1788348360; 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=eC0YCYSe1tWmFefmlTdOkwZfGmFm+8DqJsofGqwxQ3c=; b=p2N11Sb4swLjFtbELmjMc0BShN/e3VlTv177TZ/5lfpjwLd8hlsj+dj5fVOV6YPknT FCchgHqV47bThg0swwml10JIUaXorId5lVC636hki315gbF4ZrFM4hj4jDzrimYtUdFe 5JjJsJs2OY4OatJ/ibny76yOT9wYarhNmRne/yEk0/Q0R0TUju/3J8ZSrCb7wfW4wR7Z dwQlhAW/4M7z+TKyNcpYW7/O3q+I4sF7oD57jsRyoC6cV6dksG9v8oxCewEjJ7yycpTJ k7FkBzTCfa9LqkA10Bqz8ru38iqUIhSgoRgNP8YLygezgPfnh/yHvrPwOfey3Uomuf1G D7lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787743560; x=1788348360; 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=eC0YCYSe1tWmFefmlTdOkwZfGmFm+8DqJsofGqwxQ3c=; b=tEMATfnnVEq9jnWGC8ouzWuS+H153U6vUaRJ++5iIsTEgpw/C1zacRJ/1XrXOaEQ/o ft4wnECeSVPfJ6uflE1Gu+OQnLXRJgFfHwkqUD/HnoSPMRnr9Hjnss6SHUPofSHrAPCQ Bs9PZzdKrRApEkgn1ixA9Ykuh+cMW5br+/yCnaHMgOLc+rBPY2Z+QETqSKhmZUBVE0D+ Iups74tCpTkqa7o3uZZ7/6lOJ/th6fjeIYpDYaT3KW0askehOCytnZHiWwAIugRH9tWB LcaV3myy4AD0xfIOPRvK+4BZ/70tTFjO1XD5u9XQ7KfTCNkZMTkdMq5KYZQfG7U51Rvp 5TuA== X-Gm-Message-State: AFuF++nkX/8U6MxEVjAurV8/9XAjwsVygf4ooUWDVNaabeTexN5iGZBX tnPWybCyzhsVZO7RiDpUoFUN2t7rORxVuBUHWhX+pOMeFJaJ+2udlpr2P1v8Uf0ny/Q= X-Gm-Gg: AR+sD12pxw/yAwVmMEqDv9+w/dI3gV99N8RWHNqWiAsjzHxBiGQSKbFWQsuMgTBIq0U Ay7Y1KOBJmm7u5tzaeSUKqCHLmlUl5WY4+7XP1QULng7VgA767vVW2dXH6IcvGWaRIoMThV13fy eNyv61WDCoFo/VQ4+Ef0mEOu8PegB4qV1ZqHJmarIVsmPhFxH5ZRCEpmHvyNn/dKjm0/cYLe8MG MVJaUnB5hfTpG2pqAPf2dy9ZCYCfV61vcz6QLlIlhkl5iVDeYLInMX3wfudrcLbQYoOplfcbHGJ kjhM4BI0NNbG1oOflX3xm7N4fB354+M3EPxzvL0wbCF0k6ItzSFZF0f5WXwP0+1LCQfKx9rE1gr NPvMCdQcyj0KMy5wV4O9bYxakP24fytHRJBazvELChgLmVXY0KhdZMZaibdEgkHkLcsu1zCDdE/ IRDKNhuA6pN/1f8i8vYRui1S67tPpHCwBMA1eMeGNUlSsFF2I4KKcsNy6PKn20H1cWopM= X-Received: by 2002:a05:6000:4910:b0:47f:96e6:70a with SMTP id ffacd0b85a97d-482e2628cd2mr5983064f8f.0.1787743560402; Wed, 26 Aug 2026 04:26:00 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:6b23:b1a3:f913:3d0b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e28f6119sm2442098f8f.34.2026.08.26.04.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 04:26:00 -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 v8 1/6] platform/x86: intel_lpss: add resource conflict quirk for Dell Latitude 5285 Date: Wed, 26 Aug 2026 13:24:46 +0200 Message-ID: <20260826112452.13539-2-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826112452.13539-1-tchatard@gmail.com> References: <20260826112452.13539-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. Signed-off-by: Thierry Chatard Reviewed-by: Andy Shevchenko --- 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 04:48:49 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 DD5EB3F410F for ; Wed, 26 Aug 2026 11:26:04 +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=1787743566; cv=none; b=bAFr7QNdnA7LD9F+kHN/QOwmAwd8cqXh4aE5fooP306RAREr5+Kf0K4f2UFZIPKxIi/5hvEL1m4BiVomgcl4RkR/Ogh4vlErI6cXwUbssFSqoQv0OsEKcAuO8FHucMcIrw52kGAwyjoJX7X44BWPrGFXIQyghIyU/OTxgs1kfqc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743566; c=relaxed/simple; bh=eEgpaClffVrKnbl8QivNz86iFYVr5r5dBokF6FDLlLw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rOlEYR6mJ75spVblBbySz0TEvoN0rN/lwXgx7xI7W2+Pw+x9gmR0JJBisWjZljSO6REwCY77kEQorVMKR4MywINuEi3RrWLFeCGVZgW6JbX6T1o7mw8mfNJO+hQJ1ZiaBo68gHiIBAIJQXlTb7l1ZnwtRXwg8mLF/liUtSnOHoc= 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=IQ8lKO3m; 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="IQ8lKO3m" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-482e1bfcc63so565276f8f.1 for ; Wed, 26 Aug 2026 04:26:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787743563; x=1788348363; 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=NYiYddQzsC9fBru2MSOJ2EoKWlTSTEPRQUEf7Ju5SIo=; b=IQ8lKO3mEQyq3prJ+7JZgcMTNXv6i/RJeXHFf59F54k0A7X5FLlfh2oTw3YXfW4I3d qy4KUuAiPc0HafG2bp7acFMYw6bmxn2ZChk+SBEgPXvo2bG3WloGRbE52JPFeLv3VN2A i4y7H1D6oLOc+sFoK9FM894c7riuO2BitrPdVDD2Zugb8n8ZvnpjBjZ8Ftt6UK7t5kZr ToGZCdn8cFxSnzvUVBpRMuqcmC+AN03/rU2DEM2Uh5d03KkLxgUialTcRbmqzJ8B3HWl ZauD9u3XfXQrRxvc/8ex6ZwRn2q+iuRln48TE/ZqBLuRHgAkpkLI9klYGkPZzB4zOKG5 I2lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787743563; x=1788348363; 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=NYiYddQzsC9fBru2MSOJ2EoKWlTSTEPRQUEf7Ju5SIo=; b=bXfxa/idCptneH1tHpUjJrFogR2B7YVDvfEE+jphF3i3yCiHvL/IfmNKKGaEdDQ5Mx jqyiE2wkQ0ZYgiBd821yuYsb3uUMpi3xeEb2bNI4tDUUdc2HLGP7/1ePXyPeIp7WrmLG mxjHhwr5juqhy5HGscHuBrlE06q5FiCz49eykKk8QEePGlHTRTW/dQuh610fH000x0mG cKAyc9mvMlg6tyRwdZLQNbMrA9GaK9Mc99QN+ApFSMgnBBVEJqbfh2b11ZZ6Qn0LDEd4 M0hXKHK3qd1P43PkodI7KlBI7wuGHfjN6O8MEGv4PYdIJtreFXn7H5XOihlCWskj3RPo 573g== X-Gm-Message-State: AFuF++nBjWbrh0i8OasxDgCMKoBWOv34MyEb2BCBc/3RU0rQrQrL9OtN KqgHu5ceKd2epCOhAjNrbxdlwvN9oLjZ071oxL1TiG8OcxCNlYMYyeDelMfscSm2e6o= X-Gm-Gg: AR+sD10eTOWakwwsKwUf6VHsvBrxK/FS2+OllJX22t7xfCknCQqjvIInVXL4sfoHdrG wcryxFuAd0Yxgx/SHhb6mxivaFDXPtEhD2ycxdOpcNPlLiIWD9mPgkP5G1hT57Fo6o+NT7lpzfo HbZFNA3wxOsmSelp6YR2azWaOq/pn0vqcVtGFZfa2hDrLNd4SUOq57SoGaLY47k2Th/vtAOHMfJ J+v08CdymZPCWkAPj+BTh9kk3LSTWhqraV3PrndrTJtJI839tYzQmcMwVCHAg4sXVJY66QbdKVs QE6yLxW5lNIyfmaRTA1T36dzyXZBbxkvPZQtZQAB1bE8NXO1AnSpgK24rbPJhTKOff3Q3Muz9mx lOqmaCPaY5Qu6YJ8r2wZs3p/2j/WQpbc9/NuKxXNvk/F/kZqE0etSfrPlJudxkWJ4N0AXZ0s5zP XR3wyGJlWVYGdRJFigiwwKvZe6rjzjJw5Z4mxAMGzEpjnqQKMpNjRD/Dmp X-Received: by 2002:a05:6000:610:b0:47f:e7f7:370f with SMTP id ffacd0b85a97d-482d9960f57mr15661034f8f.10.1787743562429; Wed, 26 Aug 2026 04:26:02 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:6b23:b1a3:f913:3d0b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e28f6119sm2442098f8f.34.2026.08.26.04.26.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 04:26:02 -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 v8 2/6] platform/x86: int3472: tps68470: use unsigned int for GPIO lookup loop counters Date: Wed, 26 Aug 2026 13:24:47 +0200 Message-ID: <20260826112452.13539-3-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826112452.13539-1-tchatard@gmail.com> References: <20260826112452.13539-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..828ae208e 100644 --- a/drivers/platform/x86/intel/int3472/tps68470.c +++ b/drivers/platform/x86/intel/int3472/tps68470.c @@ -150,7 +150,7 @@ static int skl_int3472_tps68470_probe(struct i2c_client= *client) int n_consumers; int device_type; int ret; - int i; + unsigned 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 04:48:49 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 ACDB03F5BE5 for ; Wed, 26 Aug 2026 11:26:06 +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=1787743570; cv=none; b=VcBMtOrpMMA4bl04h0a6++OqA5cbPqDSdUXxCqC8OwL+VkWnn508Kz2rKNpgObL6J8LjKnkaOPnp74LtfxH9s8E1CDI45Hn/85V+AcZ2izXbdUANF4eGvUlZ51oCYT3YKr4fl0sKGTTHHYh0jQqABeH0gqsbdDXdbqgbMUvLo7Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743570; c=relaxed/simple; bh=e98JGv97hJQA0VHTYBoMj1Dbzzqawgx4R87IWlZMFfE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YbG+AcQuSd6mQZ8uUMer/ELj0QvdvIXWKZvLZFt5uVhLVKqZBotyc1oAh5+vbjYilDZrGUnpmAl2ksGTRLioCWkob0uhneukqrOyyMcnX8EOxf5HJW/EsY2zoHcJk7ErsPHOqw2BNc31/MAQT3xBmFhsL0ZVe0Z3Zu3cLFCfdR8= 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=WmEaZ0oZ; 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="WmEaZ0oZ" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4957eefd361so4754795e9.1 for ; Wed, 26 Aug 2026 04:26:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787743565; x=1788348365; 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=CA1mPPqesuiE+rbBwua7+a+a7Hh2j1P5rIPyCaph8fg=; b=WmEaZ0oZt4P6DXy748YZw2UyXBIPnEc6mbb/xwglkaZtNjcnh6CZcVsZ1FEyFZwNHS l9o87CImiGZGRMuLW4WS0aIqBCOb2ZsaE8SJYfTsRqfssJMzW4FfUcfO9FXkrGdCDRN6 mha9SPV5I7cD6XqWeER9i66TUF/I4walYXJCwwj7qNalSj0zSa1jsD0TvYLNhz4z5rQn aYXw10TEW+TsGJdts7mPVJwJy91tyHskvTfzFzK2biMooC6zeBrz188zdtl8ci4FrUyF yWaeozGSYIZzE/6qUhTcsNV4berIWQpyM6tIfPCPtBd6q+5T4aARjpHuj4ojoCUnxLYE +Tnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787743565; x=1788348365; 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=CA1mPPqesuiE+rbBwua7+a+a7Hh2j1P5rIPyCaph8fg=; b=psbNR6BS8IHdU/HWD8ieklZEsxzqKskNaqjCJXsQ4MC9GOhcLG2XhhliSrvieKaHxW ZHjxKZ6/o4x6jXclDYfnUXU98FuPqAfaxRHvk966dyJunJHmbKCb1WtA+3etyIU7Xz+k DpayqA9vafrOeiR2nYVUAoMkmk2E158m2um+6UVvTQtzYCuY3wgm7EzcpD9/LN5ScjSw /hd7qy8z46WTmpOHS+8lCFi7yH3Tld2bf8nXED7qf5mBDEQOOEttDWAx/dfFuZGVUDl2 3UWNnuKm8ppjrHQpZdVJE3/WoQ8vpDGU3vhLVVFuDvpcLfg0eUAukCpTeK6MpuTj3AgB +BLQ== X-Gm-Message-State: AFuF++mrPkZaLsqlJiJ2jsfYUzSa0lXBcbem9AIEYYGgtMb+vGg1h0XW QCS0lLU0mSwGzJmF4YuDBfYtNbEI+eYzjf6f6nwqbva493Q2mEybBJQ/lXhZaaeCAsc= X-Gm-Gg: AR+sD11FNa7QzGQogWYNEFtbWVQVdUeGj2N7KgODB4UnFvrrkktKwwHOGp7lEGliCqc bnapGKiWlVSPWx9s+k9e2TNHQtQ+hyj9NQI+apcYDxdLtque+M3zCTQn3YudYTF11Mv21kSCWXB QgyMk0MVM2Pn/Z/OGSW0ASy3/JC67nwBJyeUXdNHRSxYfH5wHGkZPyzaeeiYTEqDQd0BJwgBfr2 DjqhnnD6LE+74A/ZFXGmHc3CFND1F689zaXK+6SC4Mh0l7wc78XXCcxXqpiKjwrrzC7sbQMRLKJ S1tmeO8Mw62FbbSfROKcJKFWlYZz3GEhe9pJrlRB/wLMViScESPSKwcpN/dpiUThMTUMZcJkt1h C4U1VcYjvSXu3Dq5NErQTMvu8CVC0o6wRyMQgODnsE8+ODeCIoICKk4HFVWJzxdoCG/kk8q3Exk 5b3cQ58ku8N0eOrWRoTSMhq7c7bcPQjGMreVYp2VIbES/0EsnJ8Yz/cPtE X-Received: by 2002:a05:600c:19c9:b0:499:5a50:b022 with SMTP id 5b1f17b1804b1-499dc6f5916mr49112805e9.3.1787743564458; Wed, 26 Aug 2026 04:26:04 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:6b23:b1a3:f913:3d0b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e28f6119sm2442098f8f.34.2026.08.26.04.26.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 04:26:04 -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 v8 3/6] platform/x86: int3472: tps68470: fix clock consumer registration for Dell Latitude 5285 Date: Wed, 26 Aug 2026 13:24:48 +0200 Message-ID: <20260826112452.13539-4-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826112452.13539-1-tchatard@gmail.com> References: <20260826112452.13539-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 | 104 ++++++++++-------- drivers/platform/x86/intel/int3472/tps68470.h | 10 ++ 2 files changed, 70 insertions(+), 44 deletions(-) diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platfo= rm/x86/intel/int3472/tps68470.c index 828ae208e..9b98c5a15 100644 --- a/drivers/platform/x86/intel/int3472/tps68470.c +++ b/drivers/platform/x86/intel/int3472/tps68470.c @@ -145,20 +145,17 @@ static int skl_int3472_tps68470_probe(struct i2c_clie= nt *client) struct acpi_device *adev =3D ACPI_COMPANION(&client->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; int device_type; - int ret; unsigned int i; + int ret; =20 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 +173,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(&client->dev)); + if (!board_data) + return dev_err_probe(&client->dev, -ENODEV, + "No board-data found for this model\n"); + + if (board_data->n_clk_consumers) { + clk_pdata =3D devm_kzalloc(&client->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(&client->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(&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(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 04:48:49 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 8C3A13F7A84 for ; Wed, 26 Aug 2026 11:26:08 +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=1787743571; cv=none; b=tnNC51lvYGsUf+QBbtg+Dk6UQ1RBzxH90XJcswBdjgJDRYrsQH3h73Hb3MF6XM0jlcdGpW4sMkQ0hjZUc0DQqFzoMq3iTfO/l+Qg4neZ645Vyq6ZbMkiHrXSj4ieCLpBvmXq/dENvxCWHMDsjyhlv1yeWs3NApPvVLQn/e2fGRs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743571; c=relaxed/simple; bh=z/V82A3AGTBZLT0qszl2sWHucJ9MguIes5hmsNeYlew=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LPueaJ8tbG8YzP+7uDOPfZ9M/to2F4QH3evfkVmkf8xmg2IJz9mD6oOlNTw4A3Nk6rrbS0fjPe/KdxB/8KhVCjA/m/5iFwQjkDuKwi6GpKCOzAp9T5aooKEXd67al5gWZp4iIOCUNzdLptCbUbPraHKPR6uDDfzKknUPz+N40Mw= 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=FR6CBO94; 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="FR6CBO94" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-47f3b39f2a1so647555f8f.2 for ; Wed, 26 Aug 2026 04:26:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787743566; x=1788348366; 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=FR6CBO94BYMX6HAzgIdPLik+BoNbf+kdK8OI98VEu+E7mIaVvEw+Ak+03mb9ZhzHHE O/hfD59opsyiuAgPcClpgaUeqrHPRR2mm+djBmBauEb7NF8hu9hE8dygwRjL5ADGMVqe U+YkLO2B237c3gQPsHVmvkVQr+esW6F+tMB4/b2JZQly57YEP5M+J4c9u7Dotc9PR73a kOyyIJDvQBclHBV7o11OCj9LJt7r27Ddg4ZrtE7BGKfyCxgiINHZjzlazfyqA9jrIAPX l/aKhMWtDKyiOr1nnRC8KMpRa4aru9kzydzXJsJZfUa5pMm4k6rC4EC+cY+BjYq31JV+ NPiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787743566; x=1788348366; 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=q0N8wpXsLAPXmApxgAOazop64WZjGY8vsurPR9zeVTp78K/zEeMPfSbLtBu1yHoViJ FjnMN7E4KJ9iihpqYbmyNHp9lf1DS6d6MsBQQjnqyvanu468xmALjpgnt+2cKtm6OVTk 7RTYrCcjU8e+4H/iHl1dpmVr4k0uwCdrR1qgcQA3UspVpYBDtaEXe8VjsWUm1VlpaBdo 1IXWbE793hTZVqWlfHJNeeBx82dv9JfU9I/CHkm7E92n0MoYAAf8v28sTqVsf4JGiH5R YR4vq9/va29DorKzQ5Syh06xmd/9LA6qYsDKfgZf9rbwaB6CaktmiNVmFRU+Cv9Cprbo frXQ== X-Gm-Message-State: AFuF++keqXDoZCSWIyatTCXP5E1owqJBnu2kQs7dKikUztBWGnXJBAQr roE5RwXKLgWQBK2TYJev/gUZ0Qkop3ncTMfjpfxpSL8fiDAxQdv/q7vNPIdOp+pThYY= X-Gm-Gg: AR+sD13Xz38Pvo61spnZngFRMlcXiOCBY/LcdEwbnMr2epFBENsBgoDxUMGR6kY7Mbs 3xwE/S2cfwjJZ1TtrXjpdW/HNVAlgBEr09pNQ9wMuV+cKc2q8OvQiwpAh6alL4Tmk0WS/lExaoF 0aAuBMmcBcaaBleHGDxey7PUsuTvFDxvKqHOKNdnTu2HNcBk/Mek7D4lIfFrJHDzTLQuDJQJNTv k+s0gdsA4WlRSBoW9BVQ2bHON271hBEB3+wq+Imwcr1IuRlTvhQRDqAgGCg361jqRMr88//bUf0 zhzIrD3VM1wMGDX7itS5f91U2nLuGfMYDfEPTc75TrDBgwlpxQFTHE2UAMAEBiDH6JzefH5jKS3 sB01u2EvoAsRJ5g2iWdkMd2I3rCkVc0jOeYEnLlj3VgSjDC+Y6crMMryJ8tccJ5EZc7IEjCpfsS tH5iBqrgq3B8dCi6+/lCNqxfo//n1qxFGHUiAlXqdTtye/3JBcMoSq7+i25/iNIU7ERBk= X-Received: by 2002:a5d:5e0f:0:b0:47f:c648:e280 with SMTP id ffacd0b85a97d-482e26f750dmr4469047f8f.18.1787743566244; Wed, 26 Aug 2026 04:26:06 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:6b23:b1a3:f913:3d0b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e28f6119sm2442098f8f.34.2026.08.26.04.26.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 04:26:05 -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 v8 4/6] platform/x86: int3472: tps68470: add board data for Dell Latitude 5285 Date: Wed, 26 Aug 2026 13:24:49 +0200 Message-ID: <20260826112452.13539-5-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826112452.13539-1-tchatard@gmail.com> References: <20260826112452.13539-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 04:48:49 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.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 7C12E3F8709 for ; Wed, 26 Aug 2026 11:26:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743574; cv=none; b=AYcGKHpU8EPCCZVO8oYG4jGr1HAyBGBZZJGuBBekMB0SONZzmTHhze7ApKCyE1lHGqKg9caJC3UBB+1Htaq9I8shEDjIHnekS8bcg9q3zJFdEgwKy6YTHkYGBISBdaA5dqo6aVBPlYnPyWHDOSxjWWH9eIRbtL2d92roCbME4qo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743574; c=relaxed/simple; bh=R0aukX/zIQ2bEID3vNXnke9so/nvJk7DHA7cnmMxUGU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oJkaE4l56GjFbtRArKysmjARpTiEJ4+tiZfgK5oCsMDAHK0sj68MJAmHshY+ZD9No94VK3bNB2GSgvLjgkstsDC9mcgP52N2yCIEgG1k/h+aWid1YKM9ritHKW/zmo9iNPJiGnvUz5e5ty+W8TaqmGstDMAVf20GWtzEOq/Vrr8= 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=KvuG5iDI; arc=none smtp.client-ip=209.85.221.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="KvuG5iDI" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-47c2b362ee2so642656f8f.1 for ; Wed, 26 Aug 2026 04:26:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787743570; x=1788348370; 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=vggLaey4qEZ0y/Rj4gMOUvoOiUc7EX9K2/SF4mvODwc=; b=KvuG5iDI/OJ/mQEl2OP2/meX4tclRBiXeaMMxgFWHCrJVfptQmdce3VtI3kV7ptA7r hewHDnsVYHZJs22zdmo3HCUtIsyG6qTAGeBE5HkV8hKwVHahaDne12HxjpnGBA+ZdAWe bIS6JLQtaa8rbROxeg8Ih+76Rgezu0IUZgyH6AQapOz7BSoeP1UC2LndN8clDCZ1MxOj jy4h1eheK2cR3HR3FLNHXSASqU+Gu4007hcXJw8SWqlwfgS333c9g9XJPPhNx+fXHQdQ 2GMF5h6KNa/zRiGDA4QIWaLZFywrn/5SYjg4u7nHeCpZyGii2cmEtnKAGYgg8QKkKg4o bj0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787743570; x=1788348370; 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=vggLaey4qEZ0y/Rj4gMOUvoOiUc7EX9K2/SF4mvODwc=; b=kCgCx/rVsgExr+V4+G0inE97OAtC68MLD3OjtsQNtNu/GGKKy9futFMRXO/yfze3zV J8xS6nem7+GXv9IW1X9m/rJb6oSTNgYR+1XjpJzWX+6xvlpM2s6IBgBhUh+mVbMeioRI 1FygCxYDbUcbcGtymisA4w+lWWdVcjD523ZkG1tQMZUczbKKN9z/YCfgrBN59u7YnnRs i/x9tOdnaM3mKBO5LmZyb4ryTIOnac54wBEy6mto+F5EbqiPkcWJi6bXOlTvGqYIxXLq /Dr1qE7CU3ldqGLyKlLlAX0M4QrnNBZTgfl+4ZfKcbEGfVSpSpHpcVHCHVo1K4l9sD3O eV3g== X-Gm-Message-State: AFuF++kkdJbkPjoj4cP4dIvt9uyCh+Qa+MmKQ6iFO+oyPwcd0ThUZBZn elKUTEn2DJvQ2HbJrroGb2V+x7RoW18qq2RhAWLxrqBpTLQdXanZ+6uTt3jtsb30dR8= X-Gm-Gg: AR+sD13bVqT8NHsTRpw2+bDIzyg3RBEsmPHvZCJ+JK/JG9pJT4HmWSL8zKcwcI+FaMo 94iOTOcyf10vkK/30xMUoatptumCza1PAQ5Dh+96S5mTH61Z8YROauTJLTHZN61P1tUR+5emXGc nxBkThPUsZbSXM+2GCtNgpSjT9hXj2QRI0WITHx8pKhhUfOpKrOtbknWyppJnRQJev6ZyeQHpp2 Xu4fG4oSOZlz5jlCBPas5GfJ+yl/9TIRY8zMLQI4Nq7cf1CcAV02Dh6bbsIxnDC3nKa06x0lPWD g5hC9hmosfM3c6byPN6khuNupH/ktoV0AH8oFBHVEWTphkuo8PJ580j6Zg8Xm5JcwDuSj7Vr3ef 0scr7cDpfIkLoCbFc2kvPTAU8nN3g3SBonyzd8O+/optrOdFNawds0uSp6GM/cPBEtIPOA34sGl Uo43NQOIV8OgiPU418EuiLJJinT5AHH/A1wQPXNOQUkyud9GtJIJg3FUU6kw== X-Received: by 2002:a5d:5e01:0:b0:475:3a97:8e2c with SMTP id ffacd0b85a97d-482e26ed76dmr6833931f8f.16.1787743569734; Wed, 26 Aug 2026 04:26:09 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:6b23:b1a3:f913:3d0b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e28f6119sm2442098f8f.34.2026.08.26.04.26.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 04:26:09 -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 v8 5/6] media: ipu-bridge: add sensor configuration for OV8858 (INT3477) Date: Wed, 26 Aug 2026 13:24:50 +0200 Message-ID: <20260826112452.13539-6-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826112452.13539-1-tchatard@gmail.com> References: <20260826112452.13539-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 fc6608e33..f51749d0f 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 04:48:49 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.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 6250D3F8ED2 for ; Wed, 26 Aug 2026 11:26:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743576; cv=none; b=dyTEwAAv/xT6P0rf9AyFt2SGIcnwWePORQMjhHKcCBmCZ5SAYZNhpagyDnjcWcxJDWi8RmGewJ2gAzyjDMPAFIa4aRipOJcbgGWoCjjdLfu/WEhflGlYsocMJUqdMla4q1gPyMolbJ24mdWaUG5UOzs9jl+DqJoiv5hwCA49b4g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787743576; c=relaxed/simple; bh=ot5s3z0y3WkGd23yN8si0am4L6kSSGA+LkIE6cUufHM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eU8Ux4GMlg4BkWkwyoZrhtxnz1HPkevs11O1XungGLrnIt2HjLrIFBgfE9HOTO/n7T6Y/84k48gmI+mL2qINpgNBSypwc3k/PiN6TQm6CxcmhMR6ISoBd7m1ZdS2jAozeQZ/gkuEUw0h6hKkfE6uFhRzjT3Tm2/hOl+xj4HA+QY= 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=RGrfPUux; arc=none smtp.client-ip=209.85.221.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="RGrfPUux" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-482dbc9a00bso944072f8f.1 for ; Wed, 26 Aug 2026 04:26:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787743572; x=1788348372; 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=RGrfPUux2Ma3TjFzrQAH80VXbzpLAQp9b2kZW9KNpMCcO/tu1q087merOEPoVzBWqQ snONxDlMQq3uRIfypYlS9w1z0242WAyd8edRkp8QGvotltHjEB2ioZ9VYbploR4XMUf7 5+BsBaTPnNKM7JdwCK8BSHwbORgxHnjQblZ5CXLahhq5w3tWR3yevemUUHrlCTzxZnly DTq95rVVjyOt+YBWxr86Lk0XwyzoTzGo+O34C8zvaitRIjxc0FvEHRnMTovADj6H5xG5 osy6gVbXKsjCXWVkDTf7abkbsFJmioGL6QOjC48CNwYCm1sHFCTk4gITNxXVo65tgdn7 Zvpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787743572; x=1788348372; 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=MsjTMtNBfdbI4G2Xd3W03phATQNqCGa6YRLX+g0lMURh0XRI9BZJ3su89ilUFIsomb cVJlBdUYwXTV8kDjsq2BTyi4EG/+8BKIJ7x/4QUJE8bKLlCpLfmpjfbuctMDFz/LhpOk QLQxALtZT7Onz39Sf/5JDXUflPYe+tTSQPzpz/SlIuZI/tjkA7aabRLbuZdghaBSciFt 16GYWF4+G6bfMx5uWBd1OGNioKDo3Q+2A17LGQ5Ph9CnF73KHJeAXwUBKLFTClk42smP fadPfzStHB7wyGYkEJfxtFjjdvfTVtoeJ9bR5RXi69EBRfWdgogcPT4DaMuyC+Fs0cBe XFyw== X-Gm-Message-State: AFuF++nM01PPPlf57S6t4GNuCvhGE5jsru+tzJ31u1BBZqipD4oeXwip OSipKhWOYPDbfde7dCD2HKoEEeh4ZJg3PmKQ7GfDXok+F33/o7uPIV8tSRjS1J7dIJc= X-Gm-Gg: AR+sD10Y+XcmT8wkPjJn5qSlysftgbcmguXRBro//M2+b1s8ATOtJTzR8uAVnyBQDme 3gl9Updc/GWXL/lXyqK95L7Swj5MP8HIXbugZM9qMk6MdZJjVEUEMLaXAIn6EkH2Rm2cFwg95S0 /dCFMZDgVmMq3CeG0FzpLGKuBd2xnv8y33eHePIISHACi6PniIdcsKXjirYxmjF61kAeZkH5M2u nnruIdwZvpNaPY+5d7RDQoU2Uoqzqyh67P5+BtXA1jj7oWNqYlXEYrDfNWNOnhwYzjzUwtuipos 2CWXDcRcRl04box+24zobw31Ptifba9TvI0+rm9KqZ6JtZMkSMFA9H20VhZtDuu/ddv3L1/mT+T BXzlNzXGVi0vS8bV+DuiHy00ej5EygXwsWRHV0C6LdgRBKw3ONzLCnHSkMxSrJ8K168hvlTtL3J MtRi9hCPIiDXIrM0tVFLyqH/nMT6a1bYgNYlmO99sRL2n/QGHNLNvueuHMx9NynsYSIeI= X-Received: by 2002:a05:6000:25c3:b0:482:a9a4:91e7 with SMTP id ffacd0b85a97d-482d99aa11amr13881439f8f.15.1787743572201; Wed, 26 Aug 2026 04:26:12 -0700 (PDT) Received: from TC-LAPTOP ([2a01:e0a:b8a:2610:6b23:b1a3:f913:3d0b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-482e28f6119sm2442098f8f.34.2026.08.26.04.26.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 04:26:11 -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 v8 6/6] media: ov8858: add ACPI device ID INT3477 Date: Wed, 26 Aug 2026 13:24:51 +0200 Message-ID: <20260826112452.13539-7-tchatard@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826112452.13539-1-tchatard@gmail.com> References: <20260826112452.13539-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