diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2012-06-22 17:32:50 -0400 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2012-06-22 17:32:50 -0400 |
commit | 0f6662a49bf1b5a163ed4e6321c382d2390c817b (patch) | |
tree | f52d6d047c37ce78af25a0db7e4f54737d023fe4 /drivers/pci | |
parent | 1693c4276d768464058f191998e035e09ceb9e65 (diff) | |
parent | 809a3bf9f34cb6d0c0383b31b3495fa1ed3508a6 (diff) |
Merge branch 'topic/bjorn-trivial' into next
* topic/bjorn-trivial:
PCI: remove useless pcix_set_mmrbc() dev->bus check
PCI: acpiphp: check whether _ADR evaluation succeeded
PCI: shpchp: remove dead code
PCI: fix P2P bridge I/O port window sign extension
PCI: fix upstream P2P bridge checks when enabling OBFF and LTR
PCI: use __weak consistently
PCI: cleanup assign_requested_resources_sorted() kernel-doc warning
sparc/PCI: remove unused pcibios_assign_resource() definition
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/hotplug/acpiphp_glue.c | 13 | ||||
-rw-r--r-- | drivers/pci/hotplug/shpchp_ctrl.c | 3 | ||||
-rw-r--r-- | drivers/pci/pci-sysfs.c | 2 | ||||
-rw-r--r-- | drivers/pci/pci.c | 15 | ||||
-rw-r--r-- | drivers/pci/probe.c | 18 | ||||
-rw-r--r-- | drivers/pci/setup-bus.c | 2 |
6 files changed, 28 insertions, 25 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index 73af3374e915..395c67d3d296 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c | |||
@@ -132,6 +132,15 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
132 | if (!acpi_pci_check_ejectable(pbus, handle) && !is_dock_device(handle)) | 132 | if (!acpi_pci_check_ejectable(pbus, handle) && !is_dock_device(handle)) |
133 | return AE_OK; | 133 | return AE_OK; |
134 | 134 | ||
135 | status = acpi_evaluate_integer(handle, "_ADR", NULL, &adr); | ||
136 | if (ACPI_FAILURE(status)) { | ||
137 | warn("can't evaluate _ADR (%#x)\n", status); | ||
138 | return AE_OK; | ||
139 | } | ||
140 | |||
141 | device = (adr >> 16) & 0xffff; | ||
142 | function = adr & 0xffff; | ||
143 | |||
135 | pdev = pbus->self; | 144 | pdev = pbus->self; |
136 | if (pdev && pci_is_pcie(pdev)) { | 145 | if (pdev && pci_is_pcie(pdev)) { |
137 | tmp = acpi_find_root_bridge_handle(pdev); | 146 | tmp = acpi_find_root_bridge_handle(pdev); |
@@ -144,10 +153,6 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
144 | } | 153 | } |
145 | } | 154 | } |
146 | 155 | ||
147 | acpi_evaluate_integer(handle, "_ADR", NULL, &adr); | ||
148 | device = (adr >> 16) & 0xffff; | ||
149 | function = adr & 0xffff; | ||
150 | |||
151 | newfunc = kzalloc(sizeof(struct acpiphp_func), GFP_KERNEL); | 156 | newfunc = kzalloc(sizeof(struct acpiphp_func), GFP_KERNEL); |
152 | if (!newfunc) | 157 | if (!newfunc) |
153 | return AE_NO_MEMORY; | 158 | return AE_NO_MEMORY; |
diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c index b00b09bdd38a..f9b5a52e4115 100644 --- a/drivers/pci/hotplug/shpchp_ctrl.c +++ b/drivers/pci/hotplug/shpchp_ctrl.c | |||
@@ -262,9 +262,6 @@ static int board_added(struct slot *p_slot) | |||
262 | } | 262 | } |
263 | 263 | ||
264 | if ((ctrl->pci_dev->vendor == 0x8086) && (ctrl->pci_dev->device == 0x0332)) { | 264 | if ((ctrl->pci_dev->vendor == 0x8086) && (ctrl->pci_dev->device == 0x0332)) { |
265 | if (slots_not_empty) | ||
266 | return WRONG_BUS_FREQUENCY; | ||
267 | |||
268 | if ((rc = p_slot->hpc_ops->set_bus_speed_mode(p_slot, PCI_SPEED_33MHz))) { | 265 | if ((rc = p_slot->hpc_ops->set_bus_speed_mode(p_slot, PCI_SPEED_33MHz))) { |
269 | ctrl_err(ctrl, "%s: Issue of set bus speed mode command" | 266 | ctrl_err(ctrl, "%s: Issue of set bus speed mode command" |
270 | " failed\n", __func__); | 267 | " failed\n", __func__); |
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 86c63fe45d11..a0b435f20bd6 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -1112,7 +1112,7 @@ static struct bin_attribute pcie_config_attr = { | |||
1112 | .write = pci_write_config, | 1112 | .write = pci_write_config, |
1113 | }; | 1113 | }; |
1114 | 1114 | ||
1115 | int __attribute__ ((weak)) pcibios_add_platform_entries(struct pci_dev *dev) | 1115 | int __weak pcibios_add_platform_entries(struct pci_dev *dev) |
1116 | { | 1116 | { |
1117 | return 0; | 1117 | return 0; |
1118 | } | 1118 | } |
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index d4d758d7b726..87928fde77b0 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -1311,7 +1311,7 @@ void pcim_pin_device(struct pci_dev *pdev) | |||
1311 | * is the default implementation. Architecture implementations can | 1311 | * is the default implementation. Architecture implementations can |
1312 | * override this. | 1312 | * override this. |
1313 | */ | 1313 | */ |
1314 | void __attribute__ ((weak)) pcibios_disable_device (struct pci_dev *dev) {} | 1314 | void __weak pcibios_disable_device (struct pci_dev *dev) {} |
1315 | 1315 | ||
1316 | static void do_pci_disable_device(struct pci_dev *dev) | 1316 | static void do_pci_disable_device(struct pci_dev *dev) |
1317 | { | 1317 | { |
@@ -1375,8 +1375,8 @@ pci_disable_device(struct pci_dev *dev) | |||
1375 | * Sets the PCIe reset state for the device. This is the default | 1375 | * Sets the PCIe reset state for the device. This is the default |
1376 | * implementation. Architecture implementations can override this. | 1376 | * implementation. Architecture implementations can override this. |
1377 | */ | 1377 | */ |
1378 | int __attribute__ ((weak)) pcibios_set_pcie_reset_state(struct pci_dev *dev, | 1378 | int __weak pcibios_set_pcie_reset_state(struct pci_dev *dev, |
1379 | enum pcie_reset_state state) | 1379 | enum pcie_reset_state state) |
1380 | { | 1380 | { |
1381 | return -EINVAL; | 1381 | return -EINVAL; |
1382 | } | 1382 | } |
@@ -2063,7 +2063,7 @@ int pci_enable_obff(struct pci_dev *dev, enum pci_obff_signal_type type) | |||
2063 | return -ENOTSUPP; /* no OBFF support at all */ | 2063 | return -ENOTSUPP; /* no OBFF support at all */ |
2064 | 2064 | ||
2065 | /* Make sure the topology supports OBFF as well */ | 2065 | /* Make sure the topology supports OBFF as well */ |
2066 | if (dev->bus) { | 2066 | if (dev->bus->self) { |
2067 | ret = pci_enable_obff(dev->bus->self, type); | 2067 | ret = pci_enable_obff(dev->bus->self, type); |
2068 | if (ret) | 2068 | if (ret) |
2069 | return ret; | 2069 | return ret; |
@@ -2166,7 +2166,7 @@ int pci_enable_ltr(struct pci_dev *dev) | |||
2166 | return -EINVAL; | 2166 | return -EINVAL; |
2167 | 2167 | ||
2168 | /* Enable upstream ports first */ | 2168 | /* Enable upstream ports first */ |
2169 | if (dev->bus) { | 2169 | if (dev->bus->self) { |
2170 | ret = pci_enable_ltr(dev->bus->self); | 2170 | ret = pci_enable_ltr(dev->bus->self); |
2171 | if (ret) | 2171 | if (ret) |
2172 | return ret; | 2172 | return ret; |
@@ -3419,8 +3419,7 @@ int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc) | |||
3419 | 3419 | ||
3420 | o = (cmd & PCI_X_CMD_MAX_READ) >> 2; | 3420 | o = (cmd & PCI_X_CMD_MAX_READ) >> 2; |
3421 | if (o != v) { | 3421 | if (o != v) { |
3422 | if (v > o && dev->bus && | 3422 | if (v > o && (dev->bus->bus_flags & PCI_BUS_FLAGS_NO_MMRBC)) |
3423 | (dev->bus->bus_flags & PCI_BUS_FLAGS_NO_MMRBC)) | ||
3424 | return -EIO; | 3423 | return -EIO; |
3425 | 3424 | ||
3426 | cmd &= ~PCI_X_CMD_MAX_READ; | 3425 | cmd &= ~PCI_X_CMD_MAX_READ; |
@@ -3875,7 +3874,7 @@ static void __devinit pci_no_domains(void) | |||
3875 | * greater than 0xff). This is the default implementation. Architecture | 3874 | * greater than 0xff). This is the default implementation. Architecture |
3876 | * implementations can override this. | 3875 | * implementations can override this. |
3877 | */ | 3876 | */ |
3878 | int __attribute__ ((weak)) pci_ext_cfg_avail(struct pci_dev *dev) | 3877 | int __weak pci_ext_cfg_avail(struct pci_dev *dev) |
3879 | { | 3878 | { |
3880 | return 1; | 3879 | return 1; |
3881 | } | 3880 | } |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 08404098080b..cd06c8478267 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -318,10 +318,11 @@ static void __devinit pci_read_bridge_io(struct pci_bus *child) | |||
318 | 318 | ||
319 | if ((io_base_lo & PCI_IO_RANGE_TYPE_MASK) == PCI_IO_RANGE_TYPE_32) { | 319 | if ((io_base_lo & PCI_IO_RANGE_TYPE_MASK) == PCI_IO_RANGE_TYPE_32) { |
320 | u16 io_base_hi, io_limit_hi; | 320 | u16 io_base_hi, io_limit_hi; |
321 | |||
321 | pci_read_config_word(dev, PCI_IO_BASE_UPPER16, &io_base_hi); | 322 | pci_read_config_word(dev, PCI_IO_BASE_UPPER16, &io_base_hi); |
322 | pci_read_config_word(dev, PCI_IO_LIMIT_UPPER16, &io_limit_hi); | 323 | pci_read_config_word(dev, PCI_IO_LIMIT_UPPER16, &io_limit_hi); |
323 | base |= (io_base_hi << 16); | 324 | base |= ((unsigned long) io_base_hi << 16); |
324 | limit |= (io_limit_hi << 16); | 325 | limit |= ((unsigned long) io_limit_hi << 16); |
325 | } | 326 | } |
326 | 327 | ||
327 | if (base && base <= limit) { | 328 | if (base && base <= limit) { |
@@ -349,8 +350,8 @@ static void __devinit pci_read_bridge_mmio(struct pci_bus *child) | |||
349 | res = child->resource[1]; | 350 | res = child->resource[1]; |
350 | pci_read_config_word(dev, PCI_MEMORY_BASE, &mem_base_lo); | 351 | pci_read_config_word(dev, PCI_MEMORY_BASE, &mem_base_lo); |
351 | pci_read_config_word(dev, PCI_MEMORY_LIMIT, &mem_limit_lo); | 352 | pci_read_config_word(dev, PCI_MEMORY_LIMIT, &mem_limit_lo); |
352 | base = (mem_base_lo & PCI_MEMORY_RANGE_MASK) << 16; | 353 | base = ((unsigned long) mem_base_lo & PCI_MEMORY_RANGE_MASK) << 16; |
353 | limit = (mem_limit_lo & PCI_MEMORY_RANGE_MASK) << 16; | 354 | limit = ((unsigned long) mem_limit_lo & PCI_MEMORY_RANGE_MASK) << 16; |
354 | if (base && base <= limit) { | 355 | if (base && base <= limit) { |
355 | res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM; | 356 | res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM; |
356 | region.start = base; | 357 | region.start = base; |
@@ -371,11 +372,12 @@ static void __devinit pci_read_bridge_mmio_pref(struct pci_bus *child) | |||
371 | res = child->resource[2]; | 372 | res = child->resource[2]; |
372 | pci_read_config_word(dev, PCI_PREF_MEMORY_BASE, &mem_base_lo); | 373 | pci_read_config_word(dev, PCI_PREF_MEMORY_BASE, &mem_base_lo); |
373 | pci_read_config_word(dev, PCI_PREF_MEMORY_LIMIT, &mem_limit_lo); | 374 | pci_read_config_word(dev, PCI_PREF_MEMORY_LIMIT, &mem_limit_lo); |
374 | base = (mem_base_lo & PCI_PREF_RANGE_MASK) << 16; | 375 | base = ((unsigned long) mem_base_lo & PCI_PREF_RANGE_MASK) << 16; |
375 | limit = (mem_limit_lo & PCI_PREF_RANGE_MASK) << 16; | 376 | limit = ((unsigned long) mem_limit_lo & PCI_PREF_RANGE_MASK) << 16; |
376 | 377 | ||
377 | if ((mem_base_lo & PCI_PREF_RANGE_TYPE_MASK) == PCI_PREF_RANGE_TYPE_64) { | 378 | if ((mem_base_lo & PCI_PREF_RANGE_TYPE_MASK) == PCI_PREF_RANGE_TYPE_64) { |
378 | u32 mem_base_hi, mem_limit_hi; | 379 | u32 mem_base_hi, mem_limit_hi; |
380 | |||
379 | pci_read_config_dword(dev, PCI_PREF_BASE_UPPER32, &mem_base_hi); | 381 | pci_read_config_dword(dev, PCI_PREF_BASE_UPPER32, &mem_base_hi); |
380 | pci_read_config_dword(dev, PCI_PREF_LIMIT_UPPER32, &mem_limit_hi); | 382 | pci_read_config_dword(dev, PCI_PREF_LIMIT_UPPER32, &mem_limit_hi); |
381 | 383 | ||
@@ -386,8 +388,8 @@ static void __devinit pci_read_bridge_mmio_pref(struct pci_bus *child) | |||
386 | */ | 388 | */ |
387 | if (mem_base_hi <= mem_limit_hi) { | 389 | if (mem_base_hi <= mem_limit_hi) { |
388 | #if BITS_PER_LONG == 64 | 390 | #if BITS_PER_LONG == 64 |
389 | base |= ((long) mem_base_hi) << 32; | 391 | base |= ((unsigned long) mem_base_hi) << 32; |
390 | limit |= ((long) mem_limit_hi) << 32; | 392 | limit |= ((unsigned long) mem_limit_hi) << 32; |
391 | #else | 393 | #else |
392 | if (mem_base_hi || mem_limit_hi) { | 394 | if (mem_base_hi || mem_limit_hi) { |
393 | dev_err(&dev->dev, "can't handle 64-bit " | 395 | dev_err(&dev->dev, "can't handle 64-bit " |
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 192172c87b77..561e41cf102d 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c | |||
@@ -265,7 +265,7 @@ out: | |||
265 | * assign_requested_resources_sorted() - satisfy resource requests | 265 | * assign_requested_resources_sorted() - satisfy resource requests |
266 | * | 266 | * |
267 | * @head : head of the list tracking requests for resources | 267 | * @head : head of the list tracking requests for resources |
268 | * @failed_list : head of the list tracking requests that could | 268 | * @fail_head : head of the list tracking requests that could |
269 | * not be allocated | 269 | * not be allocated |
270 | * | 270 | * |
271 | * Satisfy resource requests of each element in the list. Add | 271 | * Satisfy resource requests of each element in the list. Add |