On Sun, Sep 26, 2021 at 03:15:39PM +0800, Zhenneng Li wrote: > Add writing attribute for boot_vga sys node, > so we can config default video display > output dynamically when there are two video > cards on a machine. > > Xorg server will determine running on which > video card based on boot_vga node's value. When you repost this, please take a look at the git commit log history and make yours similar. Specifically, the subject should start with a capital letter, and the body should be rewrapped to fill 75 characters. Please contrast this with the existing VGA arbiter. See Documentation/gpu/vgaarbiter.rst. It sounds like this may overlap with the VGA arbiter functionality, so this should explain why we need both and how they interact. > Signed-off-by: Zhenneng Li <lizhenneng@xxxxxxxxxx> > --- > drivers/pci/pci-sysfs.c | 24 +++++++++++++++++++++++- > 1 file changed, 23 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c > index 7bbf2673c7f2..a6ba19ce7adb 100644 > --- a/drivers/pci/pci-sysfs.c > +++ b/drivers/pci/pci-sysfs.c > @@ -664,7 +664,29 @@ static ssize_t boot_vga_show(struct device *dev, struct device_attribute *attr, > !!(pdev->resource[PCI_ROM_RESOURCE].flags & > IORESOURCE_ROM_SHADOW)); > } > -static DEVICE_ATTR_RO(boot_vga); > + > +static ssize_t boot_vga_store(struct device *dev, struct device_attribute *attr, > + const char *buf, size_t count) > +{ > + unsigned long val; > + struct pci_dev *pdev = to_pci_dev(dev); > + struct pci_dev *vga_dev = vga_default_device(); > + > + if (kstrtoul(buf, 0, &val) < 0) > + return -EINVAL; > + > + if (val != 1) > + return -EINVAL; > + > + if (!capable(CAP_SYS_ADMIN)) > + return -EPERM; > + > + if (pdev != vga_dev) > + vga_set_default_device(pdev); > + > + return count; > +} > +static DEVICE_ATTR_RW(boot_vga); > > static ssize_t pci_read_config(struct file *filp, struct kobject *kobj, > struct bin_attribute *bin_attr, char *buf, > -- > 2.25.1 > > > No virus found > Checked by Hillstone Network AntiVirus