Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63e22924 authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

PCI: Mark shadow copy of VGA ROM as IORESOURCE_PCI_FIXED

A shadow copy of an option ROM is placed by the BIOS as a fixed address.
Set IORESOURCE_PCI_FIXED to indicate that we can't move the shadow copy.
This prevents warnings like the following when we assign resources:

  BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment

This warning is emitted by pdev_sort_resources(), which already ignores
IORESOURCE_PCI_FIXED resources.

Link: http://lkml.kernel.org/r/CA+55aFyVMfTBB0oz_yx8+eQOEJnzGtCsYSj9QuhEpdZ9BHdq5A@mail.gmail.com


Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent b8941571
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -61,7 +61,8 @@ static void pci_fixup_video(struct pci_dev *pdev)
	if (!vga_default_device() || pdev == vga_default_device()) {
	if (!vga_default_device() || pdev == vga_default_device()) {
		pci_read_config_word(pdev, PCI_COMMAND, &config);
		pci_read_config_word(pdev, PCI_COMMAND, &config);
		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW |
				IORESOURCE_PCI_FIXED;
			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
		}
		}
	}
	}
+2 −1
Original line number Original line Diff line number Diff line
@@ -336,7 +336,8 @@ static void pci_fixup_video(struct pci_dev *pdev)
	if (!vga_default_device() || pdev == vga_default_device()) {
	if (!vga_default_device() || pdev == vga_default_device()) {
		pci_read_config_word(pdev, PCI_COMMAND, &config);
		pci_read_config_word(pdev, PCI_COMMAND, &config);
		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
		if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
			pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW |
				IORESOURCE_PCI_FIXED;
			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
			dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n");
		}
		}
	}
	}