PCI/x86: make early dump handle multi-function devices
authorBjorn Helgaas <bjorn.helgaas@hp.com>
Wed, 14 Jan 2009 17:04:25 +0000 (10:04 -0700)
committerJesse Barnes <jbarnes@hobbes.lan>
Fri, 20 Mar 2009 02:29:18 +0000 (19:29 -0700)
commit600914ba524130583fa5acdd00df4aa7aa44b173
tree41278d33d5eaf7832f181fb1b9546875bc1f19a1
parenta1e4ee22863d41a6fbb24310d7951836cb6dafe7
PCI/x86: make early dump handle multi-function devices

The early "dump PCI config space" code skips many multi-function
devices.  This patch fixes that, so it dumps all devices in PCI
domain 0.

We should not skip the rest of the functions if CLASS_REVISION is
0xffffffff.  Often multi-function devices have gaps in the function ID
space, e.g., 1c.0 and 1c.2 exist but 1c.1 doesn't.  The CLASS_REVISION
of the non-existent 1c.1 function will appear to be 0xffffffff.

We should only look at the HEADER_TYPE of function zero.  Often the
"multi-function" is set in function zero, but not in other functions.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
arch/x86/pci/early.c