Hi Sakari, On Mon, Jun 17, 2024 at 10:12 PM Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> wrote: > > Hi Rafael, > > On Mon, Jun 17, 2024 at 09:41:57PM +0200, Rafael J. Wysocki wrote: > > On Wed, Jun 12, 2024 at 12:42 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > > > > > It seems that all Dell laptops with IPU6 camera or the Tiger Lake, > > > Alder Lake and Raptor Lake generations have broken ACPI MIPI DISCO > > > information. > > > > > > Instead of adding a lot of DMI quirks for this, check for these CPU > > > generations and disable ACPI MIPI DISCO support on all Dell laptops > > > with these CPU generations. > > > > > > Fixes: bd721b934323 ("ACPI: scan: Extract CSI-2 connection graph from _CRS") > > > Cc: stable@xxxxxxxxxxxxxxx > > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > > > --- > > > drivers/acpi/internal.h | 4 ++++ > > > drivers/acpi/mipi-disco-img.c | 28 +++++++++++++++++++--------- > > > 2 files changed, 23 insertions(+), 9 deletions(-) > > > > > > diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h > > > index 2a0e9fc7b74c..601b670356e5 100644 > > > --- a/drivers/acpi/internal.h > > > +++ b/drivers/acpi/internal.h > > > @@ -302,6 +302,10 @@ void acpi_mipi_check_crs_csi2(acpi_handle handle); > > > void acpi_mipi_scan_crs_csi2(void); > > > void acpi_mipi_init_crs_csi2_swnodes(void); > > > void acpi_mipi_crs_csi2_cleanup(void); > > > +#ifdef CONFIG_X86 > > > bool acpi_graph_ignore_port(acpi_handle handle); > > > +#else > > > +static inline bool acpi_graph_ignore_port(acpi_handle handle) { return false; } > > > +#endif > > > > > > #endif /* _ACPI_INTERNAL_H_ */ > > > diff --git a/drivers/acpi/mipi-disco-img.c b/drivers/acpi/mipi-disco-img.c > > > index d05413a0672a..0ab13751f0db 100644 > > > --- a/drivers/acpi/mipi-disco-img.c > > > +++ b/drivers/acpi/mipi-disco-img.c > > > @@ -725,14 +725,20 @@ void acpi_mipi_crs_csi2_cleanup(void) > > > acpi_mipi_del_crs_csi2(csi2); > > > } > > > > > > -static const struct dmi_system_id dmi_ignore_port_nodes[] = { > > > - { > > > - .matches = { > > > - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dell Inc."), > > > - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "XPS 9315"), > > > - }, > > > - }, > > > - { } > > > +#ifdef CONFIG_X86 > > > +#include <asm/cpu_device_id.h> > > > +#include <asm/intel-family.h> > > > + > > > +/* CPU matches for Dell generations with broken ACPI MIPI DISCO info */ > > > +static const struct x86_cpu_id dell_broken_mipi_disco_cpu_gens[] = { > > > + X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE, NULL), > > > + X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L, NULL), > > > + X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE, NULL), > > > + X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L, NULL), > > > + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE, NULL), > > > + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_P, NULL), > > > + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_S, NULL), > > > + {} > > > }; > > > > > > static const char *strnext(const char *s1, const char *s2) > > > @@ -761,7 +767,10 @@ bool acpi_graph_ignore_port(acpi_handle handle) > > > static bool dmi_tested, ignore_port; > > > > > > if (!dmi_tested) { > > > - ignore_port = dmi_first_match(dmi_ignore_port_nodes); > > > + if (dmi_name_in_vendors("Dell Inc.") && > > > + x86_match_cpu(dell_broken_mipi_disco_cpu_gens)) > > > + ignore_port = true; > > > + > > > dmi_tested = true; > > > } > > > > > > @@ -794,3 +803,4 @@ bool acpi_graph_ignore_port(acpi_handle handle) > > > kfree(orig_path); > > > return false; > > > } > > > +#endif > > > -- > > > > Applied as 6.10-rc material, along with the [2/2], with the following changelog: > > > > "Dell laptops with IPU6 camera (the Tiger Lake, Alder Lake and Raptor > > Lake generations) have broken ACPI MIPI DISCO information (this results > > from an OEM attempt to make Linux work by supplying it with custom data > > in the ACPI tables which has never been supported in the mainline). > > I was expecting to see v2 with fixed changelog from Hans. Hans asked me offline to take care of this. > These issues with these (full list unknown) Dell laptops have nothing to do > with DisCo for Imaging, not the spec nor the implementation. Instead the > DSDT partially aligns with Documentation/firmware-guide/acpi/dsd/graph.rst > but lacks e.g. IVSC from the graph as well as ACPI power resources for > devices related to camera. IOW it's always been unusable. The code related to DisCo for Imaging ends up using them and failing, though, IIUC. So what should I change in the paragraph quoted above? > > > > Instead of adding a lot of DMI quirks for this, check for Dell platforms > > based on the processor generations in question and drop the ACPI graph > > port nodes, likely to be created with the help of invalid data, on all > > of them." Am I guessing correctly that the remaining part of it is fine?