View | Details | Raw Unified | Return to bug 11481 | Differences between
and this patch

Collapse All | Expand All

(-)linux-2.6/drivers/acpi/reboot.c (-3 / +18 lines)
Lines 15-23 void acpi_reboot(void) Link Here
15
15
16
	rr = &acpi_gbl_FADT.reset_register;
16
	rr = &acpi_gbl_FADT.reset_register;
17
17
18
	/* Is the reset register supported? */
18
	/*
19
	if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) ||
19
	 * Is the reset register supported?
20
	    rr->bit_width != 8 || rr->bit_offset != 0)
20
	 * According to ACPI 3.0 spec the RESET_REG_SUP bit of FADT flag
21
	 * indicates whether the acpi reboot is supported. On some
22
	 * boxes this bit is zero. But there exists the definition of
23
	 * ACPI_RESET_REG & RESET_VALUE.
24
	 * And on such boxes the system can be rebooted only by using ACPI
25
	 * reboot after the cycle of suspend/resume.
26
	 * So in such case it is unnecessary to check the flag bit any more.
27
	 * When acpi reboot is expected, only the reset_register is checked.
28
	 * If the following conditions are meeted, it indicates that the reset
29
	 * register is supported. Otherwise it means that reset register is
30
	 * unsupported.
31
	 * a. reset_register is not zero
32
	 * b. the access width is eight
33
	 * c. the bit_offset is zero
34
	 */
35
	if (!(rr->address) || rr->bit_width != 8 || rr->bit_offset != 0)
21
		return;
36
		return;
22
37
23
	reset_value = acpi_gbl_FADT.reset_value;
38
	reset_value = acpi_gbl_FADT.reset_value;

Return to bug 11481