summaryrefslogtreecommitdiffstats
path: root/sys/dev/cardbus
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2008-11-03 06:06:22 +0000
committerimp <imp@FreeBSD.org>2008-11-03 06:06:22 +0000
commit2ee7e7c4e9cb8490895edca9cbc8c1a2ae8fac82 (patch)
tree3c9dfe8effd7bc0526ffd3aab0d21a1c84c068aa /sys/dev/cardbus
parentab0c44b3d80c8ad5df3b3415c746dd9b6d0a14ab (diff)
downloadFreeBSD-src-2ee7e7c4e9cb8490895edca9cbc8c1a2ae8fac82.zip
FreeBSD-src-2ee7e7c4e9cb8490895edca9cbc8c1a2ae8fac82.tar.gz
Use child (the card) in preference to cbdev (the bridge) when
allocating resources to read the CIS. I'm not sure when this changed, but it is totally wrong. Also, add a minor improvement to the debugging. This should help everybody trying to run dumpcis on atheros wireless card as well. MFC after: 2 days
Diffstat (limited to 'sys/dev/cardbus')
-rw-r--r--sys/dev/cardbus/cardbus_cis.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/cardbus/cardbus_cis.c b/sys/dev/cardbus/cardbus_cis.c
index db1c606..a8cfa25 100644
--- a/sys/dev/cardbus/cardbus_cis.c
+++ b/sys/dev/cardbus/cardbus_cis.c
@@ -511,7 +511,7 @@ cardbus_read_tuple_init(device_t cbdev, device_t child, uint32_t *start,
device_printf(cbdev, "Bad header in rom %d: "
"[%x] %04x\n", romnum, imagebase +
CARDBUS_EXROM_SIGNATURE, romsig);
- bus_release_resource(cbdev, SYS_RES_MEMORY,
+ bus_release_resource(child, SYS_RES_MEMORY,
*rid, res);
*rid = 0;
return (NULL);
@@ -548,7 +548,7 @@ cardbus_read_tuple_init(device_t cbdev, device_t child, uint32_t *start,
CARDBUS_EXROM_DATA_INDICATOR) & 0x80) != 0) {
device_printf(cbdev, "Cannot find CIS in "
"Option ROM\n");
- bus_release_resource(cbdev, SYS_RES_MEMORY,
+ bus_release_resource(child, SYS_RES_MEMORY,
*rid, res);
*rid = 0;
return (NULL);
@@ -559,6 +559,8 @@ cardbus_read_tuple_init(device_t cbdev, device_t child, uint32_t *start,
} else {
*start = *start & PCIM_CIS_ADDR_MASK;
}
+ if (cardbus_cis_debug)
+ device_printf(cbdev, "CIS offset is %#x\n", *start);
return (res);
}
OpenPOWER on IntegriCloud