diff options
author | Warner Losh <imp@FreeBSD.org> | 2009-03-14 14:08:53 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2009-03-14 14:08:53 +0000 |
commit | 795dceffa20773dce85d48ad70d0db218abacfba (patch) | |
tree | a805c609d7511738b01c81fb444c087a6502ed3b /sys/dev/pci/pcib_private.h | |
parent | 0c0982b80cb953b31820c993c6b762807f502b8f (diff) | |
download | src-795dceffa20773dce85d48ad70d0db218abacfba.tar.gz src-795dceffa20773dce85d48ad70d0db218abacfba.zip |
Two fixes:
(1) Fix pcib_read/write_config prototypes.
(2) When contrainting a resource request for a 'subtractive' bridge,
it is important to select a range outside the base/limit
registers, since those are the only values known to not
possibly work. On my HP laptop, the base bridge excludes I/O
ports 0xa000-0xafff, however that was the range we were passing
up the tree. Instead, when a range spans the "hole" we now
arbitrarily pick the range just above the hole to allocate from.
All of my rl and xl cards, at a minimum, started working again on this
laptop with those fixes.
Notes
Notes:
svn path=/head/; revision=189792
Diffstat (limited to 'sys/dev/pci/pcib_private.h')
-rw-r--r-- | sys/dev/pci/pcib_private.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/pci/pcib_private.h b/sys/dev/pci/pcib_private.h index 615983921f3e..c7d6818ce2cc 100644 --- a/sys/dev/pci/pcib_private.h +++ b/sys/dev/pci/pcib_private.h @@ -74,8 +74,8 @@ int pcib_write_ivar(device_t dev, device_t child, int which, uintptr_t value); struct resource *pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags); int pcib_maxslots(device_t dev); -uint32_t pcib_read_config(device_t dev, int b, int s, int f, int reg, int width); -void pcib_write_config(device_t dev, int b, int s, int f, int reg, uint32_t val, int width); +uint32_t pcib_read_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, int width); +void pcib_write_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, uint32_t val, int width); int pcib_route_interrupt(device_t pcib, device_t dev, int pin); int pcib_alloc_msi(device_t pcib, device_t dev, int count, int maxcount, int *irqs); int pcib_release_msi(device_t pcib, device_t dev, int count, int *irqs); |