cvs commit: src/sys/amd64/amd64 legacy.c src/sys/dev/acpica
acpi.c src/sys/dev/cpufreq ichss.c src/sys/i386/i386 legacy.c
Adam McDougall
mcdouga9 at egr.msu.edu
Thu Jul 10 10:11:57 UTC 2008
On Wed, Jul 09, 2008 at 10:18:05PM -0400, John Baldwin wrote:
On Wednesday 09 July 2008 09:32:18 pm Adam McDougall wrote:
> This commit (verified by binary search) causes my Sun Fire X4100
> problems booting. I found it by upgrading a new 7-rel install
...
> then after a few minutes I get stuff like:
> umass0: BBB reset failed, TIMEOUT
> umass1: CBI reset failed, TIMEOUT
I missed MFC'ing something, specifically rev 1.248 of acpi.c. You can try
this diff:
Yes it works, thank you!
Index: acpi.c
===================================================================
--- acpi.c (revision 180262)
+++ acpi.c (working copy)
@@ -132,7 +132,7 @@ static int acpi_set_powerstate_method(device_t bus
static int acpi_isa_pnp_probe(device_t bus, device_t child,
struct isa_pnp_id *ids);
static void acpi_probe_children(device_t bus);
-static int acpi_probe_order(ACPI_HANDLE handle, int *order);
+static void acpi_probe_order(ACPI_HANDLE handle, int *order);
static ACPI_STATUS acpi_probe_child(ACPI_HANDLE handle, UINT32 level,
void *context, void **status);
static BOOLEAN acpi_MatchHid(ACPI_HANDLE h, const char *hid);
@@ -1527,21 +1527,19 @@ acpi_probe_children(device_t bus)
}
/*
- * Determine the probe order for a given device and return non-zero if it
- * should be attached immediately.
+ * Determine the probe order for a given device.
*/
-static int
+static void
acpi_probe_order(ACPI_HANDLE handle, int *order)
{
ACPI_OBJECT_TYPE type;
- u_int addr;
/*
* 1. I/O port and memory system resource holders
* 2. Embedded controllers (to handle early accesses)
* 3. PCI Link Devices
- * 11 - 266. Host-PCI bridges sorted by _ADR
- * 280. CPUs
+ * ACPI_DEV_BASE_ORDER. Host-PCI bridges
+ * ACPI_DEV_BASE_ORDER + 10. CPUs
*/
AcpiGetType(handle, &type);
if (acpi_MatchHid(handle, "PNP0C01") || acpi_MatchHid(handle, "PNP0C02"))
@@ -1550,15 +1548,10 @@ acpi_probe_order(ACPI_HANDLE handle, int *order)
*order = 2;
else if (acpi_MatchHid(handle, "PNP0C0F"))
*order = 3;
- else if (acpi_MatchHid(handle, "PNP0A03")) {
- if (ACPI_SUCCESS(acpi_GetInteger(handle, "_ADR", &addr)))
- *order = 11 + ACPI_ADR_PCI_SLOT(addr) * (PCI_FUNCMAX + 1) +
- ACPI_ADR_PCI_FUNC(addr);
- else
- *order = 11;
- } else if (type == ACPI_TYPE_PROCESSOR)
- *order = 280;
- return (0);
+ else if (acpi_MatchHid(handle, "PNP0A03"))
+ *order = ACPI_DEV_BASE_ORDER;
+ else if (type == ACPI_TYPE_PROCESSOR)
+ *order = ACPI_DEV_BASE_ORDER + 10;
}
/*
@@ -1608,13 +1601,13 @@ acpi_probe_child(ACPI_HANDLE handle, UINT32 level,
* placeholder so that the probe/attach passes will run
* breadth-first. Orders less than ACPI_DEV_BASE_ORDER
* are reserved for special objects (i.e., system
- * resources). Orders between ACPI_DEV_BASE_ORDER and 300
+ * resources). Orders between ACPI_DEV_BASE_ORDER and 100
* are used for Host-PCI bridges (and effectively all
* their children) and CPUs. Larger values are used for
* all other devices.
*/
ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, "scanning '%s'\n", handle_str));
- order = level * 10 + 300;
+ order = level * 10 + 100;
acpi_probe_order(handle, &order);
child = BUS_ADD_CHILD(bus, order, NULL, -1);
if (child == NULL)
--
John Baldwin
_______________________________________________
cvs-src at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-src
To unsubscribe, send any mail to "cvs-src-unsubscribe at freebsd.org"
More information about the cvs-src
mailing list