ACPI power down problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
I would like to ask two questions, but firstly some history.
Normally Debian Sarge is running with the kernel 2.6.14.3 with several
patches and all works fine since Dec 2005. In Jul, 2006, I tried another
kernel, 2.6.17.4, again with several patches, and again all worked fine
with the exception of the fact that the machine did not switch off the
power on `/sbin/shutdown -t5 -h -P now'. So I rejected the kernel
2.6.17.4 hoping that the problems would disappear by itself with the time.
But, it did not.
In Aug 2007, Debian 4.0 r1 appeared with a kernel 2.6.18..., still
having the power down problem. Obviously, the problem has been introduced
between 2.6.14.3 and 2.6.17.4 and I am the only who has it. The concerning
board can be described by

  Award Medallion BIOS v6.0, An Energy Star Ally
  ASUS P4B ACPI BIOS Revision 1013 Beta 004
  Award Plug and Play BIOS Extension v1.0A

This week, to tackle the problem, I addionally applied the patches
in the attachment to have the console messages somewhat longer on the screen.
I got the same output with the two kernels, 2.6.14.3 and 2.6.17.4, namely

  Power down.
  acpi_power_off called
   hwsleep-0284 [01] enter_sleep_state     : Entering sleep state [S5]

whereat the line numer 0284 changed to 0283 for 2.6.17.4.
What in fact happens after the above has been seen for 20 seconds is that
the same machine switches off in case of 2.6.14.3, and wrongly reboots in
case of 2.6.17.4. Now the questions, firstly,
is that a kernel bug ? From my point of view, yes, it seems to be one.
Secondly, if I would more or less stupidly put the debugging into execution,
is there anyone who could guide me, because in the ACPI kernel environment,
I am mildly expressed blind.
Many thanks in advance
Stephan
diff -crN -C 7 linux-2.6.14.3-ORG/drivers/acpi/hardware/hwsleep.c linux-2.6.14.3/drivers/acpi/hardware/hwsleep.c
*** linux-2.6.14.3-ORG/drivers/acpi/hardware/hwsleep.c	Thu Nov 24 23:10:21 2005
--- linux-2.6.14.3/drivers/acpi/hardware/hwsleep.c	Thu Dec  6 16:00:51 2007
***************
*** 279,292 ****
--- 279,300 ----
  				       ACPI_REGISTER_PM1_CONTROL, &PM1Acontrol);
  	if (ACPI_FAILURE(status)) {
  		return_ACPI_STATUS(status);
  	}
  	ACPI_DEBUG_PRINT((ACPI_DB_INIT,
  			  "Entering sleep state [S%d]\n", sleep_state));
  
+ 	{
+ 		volatile int n = 2000, m = 0, i, j, k;
+ 		for (i = 0; i < n; i++)
+ 			for (j = 0; j < n; j++)
+ 				for (k = 0; k < n; k++)
+ 					m = 1 - m;
+ 	}
+ 
  	/* Clear SLP_EN and SLP_TYP fields */
  
  	PM1Acontrol &= ~(sleep_type_reg_info->access_bit_mask |
  			 sleep_enable_reg_info->access_bit_mask);
  	PM1Bcontrol = PM1Acontrol;
  
  	/* Insert SLP_TYP bits */
diff -crN -C 7 linux-2.6.17.4-ORG/drivers/acpi/hardware/hwsleep.c linux-2.6.17.4/drivers/acpi/sleep/hardware/hwsleep.c
*** linux-2.6.17.4-ORG/drivers/acpi/hardware/hwsleep.c	Thu Jul  6 22:02:28 2006
--- linux-2.6.17.4/drivers/acpi/hardware/hwsleep.c	Wed Dec  5 16:37:33 2007
***************
*** 278,291 ****
--- 278,299 ----
  				       ACPI_REGISTER_PM1_CONTROL, &PM1Acontrol);
  	if (ACPI_FAILURE(status)) {
  		return_ACPI_STATUS(status);
  	}
  	ACPI_DEBUG_PRINT((ACPI_DB_INIT,
  			  "Entering sleep state [S%d]\n", sleep_state));
  
+ 	{
+ 		volatile int n = 2000, m = 0, i, j, k;
+ 		for (i = 0; i < n; i++)
+ 			for (j = 0; j < n; j++)
+ 				for (k = 0; k < n; k++)
+ 					m = 1 - m;
+ 	}
+ 
  	/* Clear SLP_EN and SLP_TYP fields */
  
  	PM1Acontrol &= ~(sleep_type_reg_info->access_bit_mask |
  			 sleep_enable_reg_info->access_bit_mask);
  	PM1Bcontrol = PM1Acontrol;
  
  	/* Insert SLP_TYP bits */

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux