Merge branch 'pci/misc' into next
* pci/misc: PCI: Enable INTx if BIOS left them disabled ia64/PCI: Set IORESOURCE_ROM_SHADOW only for the default VGA device x86/PCI: Set IORESOURCE_ROM_SHADOW only for the default VGA device PCI: Update outdated comment for pcibios_bus_report_status() PCI: Cleanup per-arch list of object files PCI: cpqphp: Fix hex vs decimal typo in cpqhpc_probe() x86/PCI: Fix function definition whitespace x86/PCI: Reword comments x86/PCI: Remove unnecessary local variable initialization PCI: Remove unnecessary list_empty(&pci_pme_list) check
This commit is contained in:
@@ -218,9 +218,8 @@ static void teardown_mcfg_map(struct pci_root_info *info)
|
||||
}
|
||||
#endif
|
||||
|
||||
static acpi_status
|
||||
resource_to_addr(struct acpi_resource *resource,
|
||||
struct acpi_resource_address64 *addr)
|
||||
static acpi_status resource_to_addr(struct acpi_resource *resource,
|
||||
struct acpi_resource_address64 *addr)
|
||||
{
|
||||
acpi_status status;
|
||||
struct acpi_resource_memory24 *memory24;
|
||||
@@ -265,8 +264,7 @@ resource_to_addr(struct acpi_resource *resource,
|
||||
return AE_ERROR;
|
||||
}
|
||||
|
||||
static acpi_status
|
||||
count_resource(struct acpi_resource *acpi_res, void *data)
|
||||
static acpi_status count_resource(struct acpi_resource *acpi_res, void *data)
|
||||
{
|
||||
struct pci_root_info *info = data;
|
||||
struct acpi_resource_address64 addr;
|
||||
@@ -278,8 +276,7 @@ count_resource(struct acpi_resource *acpi_res, void *data)
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
static acpi_status
|
||||
setup_resource(struct acpi_resource *acpi_res, void *data)
|
||||
static acpi_status setup_resource(struct acpi_resource *acpi_res, void *data)
|
||||
{
|
||||
struct pci_root_info *info = data;
|
||||
struct resource *res;
|
||||
@@ -435,9 +432,9 @@ static void release_pci_root_info(struct pci_host_bridge *bridge)
|
||||
__release_pci_root_info(info);
|
||||
}
|
||||
|
||||
static void
|
||||
probe_pci_root_info(struct pci_root_info *info, struct acpi_device *device,
|
||||
int busnum, int domain)
|
||||
static void probe_pci_root_info(struct pci_root_info *info,
|
||||
struct acpi_device *device,
|
||||
int busnum, int domain)
|
||||
{
|
||||
size_t size;
|
||||
|
||||
@@ -473,11 +470,11 @@ probe_pci_root_info(struct pci_root_info *info, struct acpi_device *device,
|
||||
struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||
{
|
||||
struct acpi_device *device = root->device;
|
||||
struct pci_root_info *info = NULL;
|
||||
struct pci_root_info *info;
|
||||
int domain = root->segment;
|
||||
int busnum = root->secondary.start;
|
||||
LIST_HEAD(resources);
|
||||
struct pci_bus *bus = NULL;
|
||||
struct pci_bus *bus;
|
||||
struct pci_sysdata *sd;
|
||||
int node;
|
||||
|
||||
@@ -509,15 +506,12 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||
sd->domain = domain;
|
||||
sd->node = node;
|
||||
sd->companion = device;
|
||||
/*
|
||||
* Maybe the desired pci bus has been already scanned. In such case
|
||||
* it is unnecessary to scan the pci bus with the given domain,busnum.
|
||||
*/
|
||||
|
||||
bus = pci_find_bus(domain, busnum);
|
||||
if (bus) {
|
||||
/*
|
||||
* If the desired bus exits, the content of bus->sysdata will
|
||||
* be replaced by sd.
|
||||
* If the desired bus has been scanned already, replace
|
||||
* its bus->sysdata.
|
||||
*/
|
||||
memcpy(bus->sysdata, sd, sizeof(*sd));
|
||||
kfree(info);
|
||||
|
@@ -313,9 +313,10 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_MCH_PC1, pcie_r
|
||||
* IORESOURCE_ROM_SHADOW is used to associate the boot video
|
||||
* card with this copy. On laptops this copy has to be used since
|
||||
* the main ROM may be compressed or combined with another image.
|
||||
* See pci_map_rom() for use of this flag. IORESOURCE_ROM_SHADOW
|
||||
* is marked here since the boot video device will be the only enabled
|
||||
* video device at this point.
|
||||
* See pci_map_rom() for use of this flag. Before marking the device
|
||||
* with IORESOURCE_ROM_SHADOW check if a vga_default_device is already set
|
||||
* by either arch cde or vga-arbitration, if so only apply the fixup to this
|
||||
* already determined primary video card.
|
||||
*/
|
||||
|
||||
static void pci_fixup_video(struct pci_dev *pdev)
|
||||
@@ -346,12 +347,13 @@ static void pci_fixup_video(struct pci_dev *pdev)
|
||||
}
|
||||
bus = bus->parent;
|
||||
}
|
||||
pci_read_config_word(pdev, PCI_COMMAND, &config);
|
||||
if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
|
||||
pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
|
||||
dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
|
||||
if (!vga_default_device())
|
||||
if (!vga_default_device() || pdev == vga_default_device()) {
|
||||
pci_read_config_word(pdev, PCI_COMMAND, &config);
|
||||
if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) {
|
||||
pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW;
|
||||
dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n");
|
||||
vga_set_default_device(pdev);
|
||||
}
|
||||
}
|
||||
}
|
||||
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
|
||||
|
Reference in New Issue
Block a user