Message ID | 20230929202055.12724-1-linux@zary.sk |
---|---|
State | Accepted |
Commit | 35a341c9b25da6a479bd8013bcb11a680a7233e3 |
Headers | show |
Series | ACPI: video: Add acpi_backlight=vendor quirk for Toshiba Portégé R100 | expand |
On Fri, Sep 29, 2023 at 10:21 PM Ondrej Zary <linux@zary.sk> wrote: > > Toshiba Portégé R100 has both acpi_video and toshiba_acpi vendor > backlight driver working. But none of them gets activated as it has > a VGA with no kernel driver (Trident CyberBlade XP4m32). > > The DMI strings are very generic ("Portable PC") so add a custom > callback function to check for Trident CyberBlade XP4m32 PCI device > before enabling the vendor backlight driver (better than acpi_video > as it has more brightness steps). > > Fixes: 5aa9d943e9b6 ("ACPI: video: Don't enable fallback path for creating ACPI backlight by default") > Signed-off-by: Ondrej Zary <linux@zary.sk> > --- > drivers/acpi/video_detect.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c > index 442396f6ed1f..31205fee59d4 100644 > --- a/drivers/acpi/video_detect.c > +++ b/drivers/acpi/video_detect.c > @@ -130,6 +130,16 @@ static int video_detect_force_native(const struct dmi_system_id *d) > return 0; > } > > +static int video_detect_portege_r100(const struct dmi_system_id *d) > +{ > + struct pci_dev *dev; > + /* Search for Trident CyberBlade XP4m32 to confirm Portégé R100 */ > + dev = pci_get_device(PCI_VENDOR_ID_TRIDENT, 0x2100, NULL); > + if (dev) > + acpi_backlight_dmi = acpi_backlight_vendor; > + return 0; > +} > + > static const struct dmi_system_id video_detect_dmi_table[] = { > /* > * Models which should use the vendor backlight interface, > @@ -270,6 +280,22 @@ static const struct dmi_system_id video_detect_dmi_table[] = { > }, > }, > > + /* > + * Toshiba Portégé R100 has working both acpi_video and toshiba_acpi > + * vendor driver. But none of them gets activated as it has a VGA with > + * no kernel driver (Trident CyberBlade XP4m32). > + * The DMI strings are generic so check for the VGA chip in callback. > + */ > + { > + .callback = video_detect_portege_r100, > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), > + DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"), > + DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"), > + DMI_MATCH(DMI_BOARD_NAME, "Portable PC") > + }, > + }, > + > /* > * Models which need acpi_video backlight control where the GPU drivers > * do not call acpi_video_register_backlight() because no internal panel > -- Applied as 6.7 material, thanks!
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c index 442396f6ed1f..31205fee59d4 100644 --- a/drivers/acpi/video_detect.c +++ b/drivers/acpi/video_detect.c @@ -130,6 +130,16 @@ static int video_detect_force_native(const struct dmi_system_id *d) return 0; } +static int video_detect_portege_r100(const struct dmi_system_id *d) +{ + struct pci_dev *dev; + /* Search for Trident CyberBlade XP4m32 to confirm Portégé R100 */ + dev = pci_get_device(PCI_VENDOR_ID_TRIDENT, 0x2100, NULL); + if (dev) + acpi_backlight_dmi = acpi_backlight_vendor; + return 0; +} + static const struct dmi_system_id video_detect_dmi_table[] = { /* * Models which should use the vendor backlight interface, @@ -270,6 +280,22 @@ static const struct dmi_system_id video_detect_dmi_table[] = { }, }, + /* + * Toshiba Portégé R100 has working both acpi_video and toshiba_acpi + * vendor driver. But none of them gets activated as it has a VGA with + * no kernel driver (Trident CyberBlade XP4m32). + * The DMI strings are generic so check for the VGA chip in callback. + */ + { + .callback = video_detect_portege_r100, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"), + DMI_MATCH(DMI_BOARD_NAME, "Portable PC") + }, + }, + /* * Models which need acpi_video backlight control where the GPU drivers * do not call acpi_video_register_backlight() because no internal panel
Toshiba Portégé R100 has both acpi_video and toshiba_acpi vendor backlight driver working. But none of them gets activated as it has a VGA with no kernel driver (Trident CyberBlade XP4m32). The DMI strings are very generic ("Portable PC") so add a custom callback function to check for Trident CyberBlade XP4m32 PCI device before enabling the vendor backlight driver (better than acpi_video as it has more brightness steps). Fixes: 5aa9d943e9b6 ("ACPI: video: Don't enable fallback path for creating ACPI backlight by default") Signed-off-by: Ondrej Zary <linux@zary.sk> --- drivers/acpi/video_detect.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)