Messages in this thread | | | Date | Mon, 18 Oct 2021 09:56:45 +0200 | Subject | Re: [PATCH 16/17] [NOT-FOR-MERGE] media: atomsip: pci: add DMI match for Microsoft Surface 3 with broken DMI (OEMB) | From | Hans de Goede <> |
| |
Hi,
On 10/17/21 18:19, Tsuchiya Yuto wrote: > This commit is added for Surface 3 with broken DMI table. HACK-ish. > Not intended for upstreaming. Thus, NOT-FOR-MERGE. But, if someone > knows a nicer way to address this, comments are welcome... > >> 8-----------------------------------------------------------------8< > > On some Microsoft Surface 3, the DMI table gets corrupted for unknown > reasons and breaks existing DMI matching used for device-specific quirks. > > This commit adds the (broken) DMI data into dmi_system_id tables used > for quirks so that the driver can enable quirks even on the affected > systems. > > On affected systems, the DMI data will look like this: > > $ grep . /sys/devices/virtual/dmi/id/{bios_vendor,board_name,board_vendor,\ > chassis_vendor,product_name,sys_vendor} > /sys/devices/virtual/dmi/id/bios_vendor:American Megatrends Inc. > /sys/devices/virtual/dmi/id/board_name:OEMB > /sys/devices/virtual/dmi/id/board_vendor:OEMB > /sys/devices/virtual/dmi/id/chassis_vendor:OEMB > /sys/devices/virtual/dmi/id/product_name:OEMB > /sys/devices/virtual/dmi/id/sys_vendor:OEMB
I wonder what the bios_date field contains ? Typically when the DMI strings are no good (e.g. often they contain "Default String" or "To be filled by OEM") we add a check on the bios-date, which together with the broken strings is considered unique enough to still allow a match with broken strings in the kernel.
Also have you tried doing something like "load bios/setup defaults" in the BIOS setup ? Maybe that helps ?
Regards,
Hans
> > Expected: > > $ grep . /sys/devices/virtual/dmi/id/{bios_vendor,board_name,board_vendor,\ > chassis_vendor,product_name,sys_vendor} > /sys/devices/virtual/dmi/id/bios_vendor:American Megatrends Inc. > /sys/devices/virtual/dmi/id/board_name:Surface 3 > /sys/devices/virtual/dmi/id/board_vendor:Microsoft Corporation > /sys/devices/virtual/dmi/id/chassis_vendor:Microsoft Corporation > /sys/devices/virtual/dmi/id/product_name:Surface 3 > /sys/devices/virtual/dmi/id/sys_vendor:Microsoft Corporation > > Signed-off-by: Tsuchiya Yuto <kitakar@gmail.com> > --- > .../staging/media/atomisp/pci/atomisp_gmin_platform.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > index 948eb6f809f5..3868d64cbc2b 100644 > --- a/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > +++ b/drivers/staging/media/atomisp/pci/atomisp_gmin_platform.c > @@ -377,6 +377,17 @@ static const struct dmi_system_id gmin_vars[] = { > }, > .driver_data = surface3_vars, > }, > + { > + .ident = "Surface 3", > + .matches = { > + /* DMI data for Surface 3 with broken DMI table */ > + DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), > + DMI_MATCH(DMI_BOARD_NAME, "OEMB"), > + DMI_MATCH(DMI_PRODUCT_NAME, "OEMB"), > + DMI_MATCH(DMI_SYS_VENDOR, "OEMB"), > + }, > + .driver_data = surface3_vars, > + }, > {} > }; > >
| |