PCI/sysfs: Enable 'boot_vga' attribute via pci_is_vga()
authorSui Jingfeng <suijingfeng@loongson.cn>
Wed, 30 Aug 2023 11:15:30 +0000 (19:15 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 6 Oct 2023 22:19:01 +0000 (17:19 -0500)
Enable the 'boot_vga' sysfs attribute via pci_is_vga().

This exposes 'boot_vga' for old PCI_CLASS_NOT_DEFINED_VGA (0x0001) devices
as well as for the PCI_CLASS_DISPLAY_VGA (0x0300) devices where it was
previously exposed.

Link: https://lore.kernel.org/r/20230830111532.444535-4-sui.jingfeng@linux.dev
Signed-off-by: Sui Jingfeng <suijingfeng@loongson.cn>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: "Maciej W. Rozycki" <macro@orcam.me.uk>
drivers/pci/pci-sysfs.c

index d9eede2dbc0e130a18e56dd17acee674d86921ae..252ee29fd6978846b6d59d2fa009faf7af27779c 100644 (file)
@@ -1551,11 +1551,10 @@ static umode_t pci_dev_attrs_are_visible(struct kobject *kobj,
        struct device *dev = kobj_to_dev(kobj);
        struct pci_dev *pdev = to_pci_dev(dev);
 
-       if (a == &dev_attr_boot_vga.attr)
-               if ((pdev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
-                       return 0;
+       if (a == &dev_attr_boot_vga.attr && pci_is_vga(pdev))
+               return a->mode;
 
-       return a->mode;
+       return 0;
 }
 
 static struct attribute *pci_dev_hp_attrs[] = {