svn commit: r184581 - head/sys/dev/cardbus

Warner Losh imp at FreeBSD.org
Sun Nov 2 22:06:23 PST 2008


Author: imp
Date: Mon Nov  3 06:06:22 2008
New Revision: 184581
URL: http://svn.freebsd.org/changeset/base/184581

Log:
  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

Modified:
  head/sys/dev/cardbus/cardbus_cis.c

Modified: head/sys/dev/cardbus/cardbus_cis.c
==============================================================================
--- head/sys/dev/cardbus/cardbus_cis.c	Mon Nov  3 05:53:10 2008	(r184580)
+++ head/sys/dev/cardbus/cardbus_cis.c	Mon Nov  3 06:06:22 2008	(r184581)
@@ -511,7 +511,7 @@ cardbus_read_tuple_init(device_t cbdev, 
 				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, 
 			    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, 
 	} else {
 		*start = *start & PCIM_CIS_ADDR_MASK;
 	}
+	if (cardbus_cis_debug)
+		device_printf(cbdev, "CIS offset is %#x\n", *start);
 
 	return (res);
 }


More information about the svn-src-all mailing list