kern/101415: AcpiEnterSleepState(ACPI_STATE_S5) may hang system

Eugene Grosbein eugen at
Sat Aug 5 17:20:17 UTC 2006

>Number:         101415
>Category:       kern
>Synopsis:       AcpiEnterSleepState(ACPI_STATE_S5) may hang system
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 05 17:20:15 GMT 2006
>Originator:     Eugene Grosbein
>Release:        FreeBSD 6.1-STABLE i386
Svyaz Service JSC
System: FreeBSD 6.1-STABLE FreeBSD 6.1-STABLE #19: Sat Aug 5 22:27:00 KRAST 2006 eu at i386
	Intel D975XBX motherboad with Intel HDA onboard audio system and
 	audio driver.

	My Intel D975XBX motherboad has Intel HDA onboard audio
	that is not supported by FreeBSD PCM audio device infrastructure
	currently. OSS driver (see Environment abobe for URL) suppors it.
	Its startup procedure loads oss_mod.ko kernel module.

	This is not possible to turn power off (shutdown -p)
	if this kernel module was loaded (unload does not help),
	AcpiEnterSleepState(ACPI_STATE_S5) hangs:

1. acpi_shutdown_final(src/sys/dev/acpica/acpi.c) calls

2. AcpiEnterSleepState(src/sys/contrib/dev/acpica/hwsleep.c)
   proceeds normally to writing of SLP_TYP + SLP_EN (the comment says so)
   and calls

3. AcpiHwRegisterWrite(src/sys/contrib/dev/acpica/hwregs.c)
   calls AcpiHwLowLevelWrite(16, Value, &AcpiGbl_FADT->XPm1aCntBlk)
4. AcpiHwLowLevelWrite(same file hwregs.c) calls
   AcpiOsWritePort ((ACPI_IO_ADDRESS) ACPI_GET_ADDRESS (Address), Value, Width);

5. AcpiOsWritePort(sys/dev/acpica/Osd/OsdHardware.c) calls 
   bus_space_write_2(ACPI_BUS_SPACE_IO, ACPI_BUS_HANDLE, OutPort, Value)
   that hangs.


   1. Install FreeBSD 6.1-RELEASE of 6.1-STABLE on D975XBX motherboard.
   2. Install and run
   3. Run shutdown -p now. The system hangs after
   'Powering system off using ACPI' message is written.


   Unknown. The only workaround is to not load OSS driver
   that gives no audio.

Eugene Grosbein

More information about the freebsd-bugs mailing list