PCI: update bridge resources to get more big ranges in PCI assign unssigned
authorYinghai Lu <yinghai@kernel.org>
Fri, 22 Jan 2010 09:02:24 +0000 (01:02 -0800)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 23 Feb 2010 00:17:22 +0000 (16:17 -0800)
commit977d17bb1749517b353874ccdc9b85abc7a58c2a
tree7abb576779682d20fb71d8656d50741571f0cdb2
parentd65245c3297ac63abc51a976d92f45f2195d2854
PCI: update bridge resources to get more big ranges in PCI assign unssigned

BIOS separates IO ranges between several IOHs, and on some slots, BIOS assigns
resources to a bridge, but stops assigning resources to the device under that
bridge, because the device needs a big resource.

So:
  1. allocate resources and record the failed device resources
  2. clear the BIOS assigned resources of the parent bridge of failing device
  3. go back and call pci assign unassigned
  4. if it still fails, go up the tree, clear more bridges. and try again

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/setup-bus.c