All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bryan O'Donoghue <bod@kernel.org>
To: Hans de Goede <johannes.goede@oss.qualcomm.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Heimir Thor Sverrisson <heimir.sverrisson@gmail.com>,
	linux-media@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH 4/5] media: ipu-bridge: Add DMI quirk for Dell XPS laptops with upside down sensors
Date: Wed, 10 Dec 2025 00:26:15 +0000	[thread overview]
Message-ID: <a3050a55-5831-421d-bc92-e1cc4470fe7b@kernel.org> (raw)
In-Reply-To: <20251209160621.6854-5-johannes.goede@oss.qualcomm.com>

On 09/12/2025 16:06, Hans de Goede wrote:
> The Dell XPS 13 9350 and XPS 16 9640 both have an upside-down mounted
> OV02C10 sensor. This rotation of 180° is reported in neither the SSDB nor
> the _PLD for the sensor (both report a rotation of 0°).
> 
> Add a DMI quirk mechanism for upside-down sensors and add 2 initial entries
> to the DMI quirk list for these 2 laptops.
> 
> Note the OV02C10 driver was originally developed on a XPS 16 9640 which
> resulted in inverted vflip + hflip settings making it look like the sensor
> was upright on the XPS 16 9640 and upside down elsewhere this has been
> fixed in commit 69fe27173396 ("media: ov02c10: Fix default vertical flip").
> This makes this commit a regression fix since now the video is upside down
> on these Dell XPS models where it was not before.

Nasty.

> 
> Fixes: 69fe27173396 ("media: ov02c10: Fix default vertical flip")
> Cc: stable@vger.kernel.org
> Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
> ---
>   drivers/media/pci/intel/ipu-bridge.c | 29 ++++++++++++++++++++++++++++
>   1 file changed, 29 insertions(+)
> 
> diff --git a/drivers/media/pci/intel/ipu-bridge.c b/drivers/media/pci/intel/ipu-bridge.c
> index 58ea01d40c0d..6463b2a47d78 100644
> --- a/drivers/media/pci/intel/ipu-bridge.c
> +++ b/drivers/media/pci/intel/ipu-bridge.c
> @@ -5,6 +5,7 @@
>   #include <acpi/acpi_bus.h>
>   #include <linux/cleanup.h>
>   #include <linux/device.h>
> +#include <linux/dmi.h>
>   #include <linux/i2c.h>
>   #include <linux/mei_cl_bus.h>
>   #include <linux/platform_device.h>
> @@ -99,6 +100,28 @@ static const struct ipu_sensor_config ipu_supported_sensors[] = {
>   	IPU_SENSOR_CONFIG("XMCC0003", 1, 321468000),
>   };
> 
> +/*
> + * DMI matches for laptops which have their sensor mounted upside-down
> + * without reporting a rotation of 180° in neither the SSDB nor the _PLD.
> + */
> +static const struct dmi_system_id upside_down_sensor_dmi_ids[] = {
> +	{
> +		.matches = {
> +			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "XPS 13 9350"),
> +		},
> +		.driver_data = "OVTI02C1",
> +	},
> +	{
> +		.matches = {
> +			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "XPS 16 9640"),
> +		},
> +		.driver_data = "OVTI02C1",
> +	},
> +	{} /* Terminating entry */
> +};
> +
>   static const struct ipu_property_names prop_names = {
>   	.clock_frequency = "clock-frequency",
>   	.rotation = "rotation",
> @@ -249,6 +272,12 @@ static int ipu_bridge_read_acpi_buffer(struct acpi_device *adev, char *id,
>   static u32 ipu_bridge_parse_rotation(struct acpi_device *adev,
>   				     struct ipu_sensor_ssdb *ssdb)
>   {
> +	const struct dmi_system_id *dmi_id;
> +
> +	dmi_id = dmi_first_match(upside_down_sensor_dmi_ids);
> +	if (dmi_id && acpi_dev_hid_match(adev, dmi_id->driver_data))
> +		return 180;
> +
>   	switch (ssdb->degree) {
>   	case IPU_SENSOR_ROTATION_NORMAL:
>   		return 0;
> --
> 2.52.0
> 

Reviewed-by: Bryan O'Donoghue <bod@kernel.org>

  reply	other threads:[~2025-12-10  0:26 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <O5Gex5D3AY7Qx5JRN_QeWluQpNM8uye-XD90s-asNy5IJgdUAK9-D2UDDW5dXOL1vgSw1CeY1U70nwxr6aXm3A==@protonmail.internalid>
2025-12-09 16:06 ` [PATCH regression fixes for 6.19 0/5] media: ov02c10: h/vflip fixes Hans de Goede
2025-12-09 16:06   ` [PATCH 1/5] media: ov02c10: Fix bayer-pattern change after default vflip change Hans de Goede
2025-12-09 17:16     ` Hans de Goede
2025-12-10  0:20     ` Bryan O'Donoghue
2025-12-09 16:06   ` [PATCH 2/5] media: ov02c10: Adjust x-win/y-win when changing flipping to preserve bayer-pattern Hans de Goede
2025-12-10  0:23     ` Bryan O'Donoghue
2025-12-09 16:06   ` [PATCH 3/5] media: ov02c10: Fix the horizontal flip control Hans de Goede
2025-12-10  0:24     ` Bryan O'Donoghue
2025-12-09 16:06   ` [PATCH 4/5] media: ipu-bridge: Add DMI quirk for Dell XPS laptops with upside down sensors Hans de Goede
2025-12-10  0:26     ` Bryan O'Donoghue [this message]
2025-12-10 10:32     ` kernel test robot
2025-12-09 16:06   ` [PATCH 5/5] media: ov02c10: Remove unnecessary hflip and vflip pointers Hans de Goede
2025-12-10  0:27     ` Bryan O'Donoghue
2025-12-10  0:19   ` [PATCH regression fixes for 6.19 0/5] media: ov02c10: h/vflip fixes Bryan O'Donoghue
2025-12-10  8:06     ` Hans de Goede

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a3050a55-5831-421d-bc92-e1cc4470fe7b@kernel.org \
    --to=bod@kernel.org \
    --cc=heimir.sverrisson@gmail.com \
    --cc=johannes.goede@oss.qualcomm.com \
    --cc=linux-media@vger.kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.