Re: ACPI: Always return valid 'status' from acpi_battery_get_property()

2007-11-08 Thread Alexey Starikovskiy

Thanks,
Alex.

Roland Dreier wrote:

If a battery is at a critical charge level and not being charged or
discharged, then the ACPI _BST method will return a state of 4, and
the current acpi_battery_get_property() code will not set any property
value for POWER_SUPPLY_PROP_STATUS.  This will cause an oops in
power_supply_show_property() when it reads off the end of the
status_text array.  This actually was causing a 100% reproducible
crash on boot on my laptop with two batteries, when one battery was
completely drained and the laptop was not plugged in.

Fix this by making sure acpi_battery_get_property() returns
POWER_SUPPLY_STATUS_UNKNOWN for any battery state it doesn't already
handle explicitly.  There doesn't seem to be any status enum value
defined that makes more sense than 'unknown' for a battery at a
critical charge level.

Signed-off-by: Roland Dreier [EMAIL PROTECTED]

Acked-by: Alexey Starikovskiy [EMAIL PROTECTED]

---
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index c2ce0ad..cbb27b4 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -152,6 +152,8 @@ static int acpi_battery_get_property(struct power_supply 
*psy,
val-intval = POWER_SUPPLY_STATUS_CHARGING;
else if (battery-state == 0)
val-intval = POWER_SUPPLY_STATUS_FULL;
+   else
+   val-intval = POWER_SUPPLY_STATUS_UNKNOWN;
break;
case POWER_SUPPLY_PROP_PRESENT:
val-intval = acpi_battery_present(battery);


-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.24-rc2 (esthetic?) regression: auto select interrupt spams my logs

2007-11-08 Thread Alexey Starikovskiy

Hi Romano,

EC was changed to automatically choose it's working mode (poll vs. interrupt 
driven).
You see it oscillating between modes because it receives interrupts just after it 
stops waiting for them.

Please open new bug entry at bugzilla.kernel.org.
Your .config might be usefull.

Thanks,
Alex.
Romano Giannetti wrote:

Hi,

After the ACPI changes between 2.6.24-rc1 and -rc2 I have my logs
spammed (every 2-3 seconds) by: 


[  423.112903] ACPI: EC: missing IBF_1 confirmations,switch off interrupt mode.
[  423.113020] ACPI: EC: non-query interrupt received, switching to interrupt 
mode
[  426.078972] ACPI: EC: missing IBF_1 confirmations,switch off interrupt mode.
[  426.079645] ACPI: EC: non-query interrupt received, switching to interrupt 
mode
[  426.622773] ACPI: EC: missing IBF_1 confirmations,switch off interrupt mode.
[  426.622889] ACPI: EC: non-query interrupt received, switching to interrupt 
mode

It seems that no harm is done, apart (but it could be another thing)
that gnome-panel is much slower on startup. 

Romano  





-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.24-rc2 (esthetic?) regression: auto select interrupt spams my logs

2007-11-08 Thread Romano Giannetti

On Thu, 2007-11-08 at 14:52 +0300, Alexey Starikovskiy wrote:
 Please open new bug entry at bugzilla.kernel.org.
 Your .config might be usefull.

Done, 

http://bugzilla.kernel.org/show_bug.cgi?id=9327

Romano
 
-- 
Sorry for the disclaimer --- ¡I cannot stop it!



--
La presente comunicación tiene carácter confidencial y es para el exclusivo uso 
del destinatario indicado en la misma. Si Ud. no es el destinatario indicado, 
le informamos que cualquier forma de distribución, reproducción o uso de esta 
comunicación y/o de la información contenida en la misma están estrictamente 
prohibidos por la ley. Si Ud. ha recibido esta comunicación por error, por 
favor, notifíquelo inmediatamente al remitente contestando a este mensaje y 
proceda a continuación a destruirlo. Gracias por su colaboración.

This communication contains confidential information. It is for the exclusive 
use of the intended addressee. If you are not the intended addressee, please 
note that any form of distribution, copying or use of this communication or the 
information in it is strictly prohibited by law. If you have received this 
communication in error, please immediately notify the sender by reply e-mail 
and destroy this message. Thank you for your cooperation. 
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


2.6.24-rc2 (esthetic?) regression: auto select interrupt spams my logs

2007-11-08 Thread Romano Giannetti

Hi,

After the ACPI changes between 2.6.24-rc1 and -rc2 I have my logs
spammed (every 2-3 seconds) by: 

[  423.112903] ACPI: EC: missing IBF_1 confirmations,switch off interrupt mode.
[  423.113020] ACPI: EC: non-query interrupt received, switching to interrupt 
mode
[  426.078972] ACPI: EC: missing IBF_1 confirmations,switch off interrupt mode.
[  426.079645] ACPI: EC: non-query interrupt received, switching to interrupt 
mode
[  426.622773] ACPI: EC: missing IBF_1 confirmations,switch off interrupt mode.
[  426.622889] ACPI: EC: non-query interrupt received, switching to interrupt 
mode

It seems that no harm is done, apart (but it could be another thing)
that gnome-panel is much slower on startup. 

Romano  


-- 
Sorry for the disclaimer --- ¡I cannot stop it!



--
La presente comunicación tiene carácter confidencial y es para el exclusivo uso 
del destinatario indicado en la misma. Si Ud. no es el destinatario indicado, 
le informamos que cualquier forma de distribución, reproducción o uso de esta 
comunicación y/o de la información contenida en la misma están estrictamente 
prohibidos por la ley. Si Ud. ha recibido esta comunicación por error, por 
favor, notifíquelo inmediatamente al remitente contestando a este mensaje y 
proceda a continuación a destruirlo. Gracias por su colaboración.

This communication contains confidential information. It is for the exclusive 
use of the intended addressee. If you are not the intended addressee, please 
note that any form of distribution, copying or use of this communication or the 
information in it is strictly prohibited by law. If you have received this 
communication in error, please immediately notify the sender by reply e-mail 
and destroy this message. Thank you for your cooperation. 
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Linux kernel asked me tou send you ...

2007-11-08 Thread Geoffroy Desvernay
Quoting kernel:
ACPI: System BIOS is requesting _OSI(Linux)
ACPI: Please test with acpi_osi=!Linux
Please send dmidecode to linux-acpi@vger.kernel.org
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (:00)

dmidecode attached.

Thanks :)
-- 
 ___
/ Geoffroy DESVERNAY   |\
   /\`Service info`| Tel: (+33|0)4 91 05 45 24  /\
   \/ Ecole Centrale de Marseille  | Fax: (+33|0)4 91 05 45 98  \/
\ (ex-EGIM)| Mail: [EMAIL PROTECTED] /
 ---

# dmidecode 2.8
SMBIOS 2.3 present.
76 structures occupying 2729 bytes.
Table at 0x000F0450.

Handle 0xDA00, DMI type 218, 65 bytes
OEM-specific Type
	Header and Data:
		DA 41 00 DA B2 00 17 0B 0E 38 00 00 80 00 80 01
		00 02 80 02 80 01 00 00 A0 00 A0 01 00 58 00 58
		00 01 00 59 00 59 00 01 00 75 01 75 01 01 00 76
		01 76 01 01 00 05 80 05 80 01 00 FF FF 00 00 00
		00

Handle 0xDA01, DMI type 218, 35 bytes
OEM-specific Type
	Header and Data:
		DA 23 01 DA B2 00 17 0B 0E 38 00 10 F5 10 F5 00
		00 11 F5 11 F5 00 00 12 F5 12 F5 00 00 FF FF 00
		00 00 00

Handle 0x, DMI type 0, 24 bytes
BIOS Information
	Vendor: Dell Inc.
	Version: 2.2.0 
	Release Date: 03/29/2007
	Address: 0xF
	Runtime Size: 64 kB
	ROM Size: 1024 kB
	Characteristics:
		PCI is supported
		PNP is supported
		APM is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		Boot from CD is supported
		Selectable boot is supported
		EDD is supported
		Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
		Print screen service is supported (int 5h)
		8042 keyboard services are supported (int 9h)
		Serial services are supported (int 14h)
		Printer services are supported (int 17h)
		ACPI is supported
		USB legacy is supported
		LS-120 boot is supported
		BIOS boot specification is supported
		Function key-initiated network boot is supported
		Targeted content distribution is supported
	BIOS Revision: 2.2

Handle 0x0100, DMI type 1, 27 bytes
System Information
	Manufacturer: Dell Inc.
	Product Name: OptiPlex 745 
	Version: Not Specified
	Serial Number: D3JBW2J
	UUID: 44454C4C-3300-104A-8042-C4C04F57324A
	Wake-up Type: APM Timer
	SKU Number: Not Specified
	Family: Not Specified

Handle 0x0200, DMI type 2, 8 bytes
Base Board Information
	Manufacturer: Dell Inc.  
	Product Name: 0RF703
	Version:
	Serial Number: ..CN1374072Q081U.

Handle 0x0300, DMI type 3, 13 bytes
Chassis Information
	Manufacturer: Dell Inc.
	Type: Mini Tower
	Lock: Not Present
	Version: Not Specified
	Serial Number: D3JBW2J
	Asset Tag:   
	Boot-up State: Safe
	Power Supply State: Safe
	Thermal State: Safe
	Security Status: None

Handle 0x0400, DMI type 4, 40 bytes
Processor Information
	Socket Designation: Microprocessor
	Type: Central Processor
	Family: Pentium 4
	Manufacturer: Intel
	ID: 65 0F 00 00 FF FB EB BF
	Signature: Type 0, Family 15, Model 6, Stepping 5
	Flags:
		FPU (Floating-point unit on-chip)
		VME (Virtual mode extension)
		DE (Debugging extension)
		PSE (Page size extension)
		TSC (Time stamp counter)
		MSR (Model specific registers)
		PAE (Physical address extension)
		MCE (Machine check exception)
		CX8 (CMPXCHG8 instruction supported)
		APIC (On-chip APIC hardware supported)
		SEP (Fast system call)
		MTRR (Memory type range registers)
		PGE (Page global enable)
		MCA (Machine check architecture)
		CMOV (Conditional move instruction supported)
		PAT (Page attribute table)
		PSE-36 (36-bit page size extension)
		CLFSH (CLFLUSH instruction supported)
		DS (Debug store)
		ACPI (ACPI supported)
		MMX (MMX technology supported)
		FXSR (Fast floating-point save and restore)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Hyper-threading technology)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Not Specified
	Voltage: 1.8 V
	External Clock: 800 MHz
	Max Speed: 5200 MHz
	Current Speed: 3000 MHz
	Status: Populated, Enabled
	Upgrade: ZIF Socket
	L1 Cache Handle: 0x0700
	L2 Cache Handle: 0x0701
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified

Handle 0x0700, DMI type 7, 19 bytes
Cache Information
	Socket Designation: Not Specified
	Configuration: Enabled, Not Socketed, Level 1
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 16 KB
	Maximum Size: 16 KB
	Supported SRAM Types:
		Other
	Installed SRAM Type: Other
	Speed: Unknown
	Error Correction Type: None
	System Type: Data
	Associativity: 8-way Set-associative

Handle 0x0701, DMI type 7, 19 bytes
Cache Information
	Socket Designation: Not Specified
	Configuration: Enabled, Not Socketed, Level 2
	Operational Mode: Varies With Memory Address
	Location: Internal
	Installed 

Re: 2.6.24-rc1: OOPS at acpi_battery_update

2007-11-08 Thread Rafael J. Wysocki
On Thursday, 8 of November 2007, Johannes Weiner wrote:
 Hi,
 
 is there any reason, why acpi_battery_get_property() should call
 acpi_battery_update() at all?

Alex?
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.24-rc1: OOPS at acpi_battery_update

2007-11-08 Thread Alexey Starikovskiy

Rafael J. Wysocki wrote:

On Thursday, 8 of November 2007, Johannes Weiner wrote:

Hi,

is there any reason, why acpi_battery_get_property() should call
acpi_battery_update() at all?


Alex?

If someone wants to read stale values, he could comment out acpi_battery_update.

Regards,
Alex.
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.24-rc1: OOPS at acpi_battery_update

2007-11-08 Thread Johannes Weiner
Hi,

is there any reason, why acpi_battery_get_property() should call
acpi_battery_update() at all?

Hannes
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ACPI: Always return valid 'status' from acpi_battery_get_property()

2007-11-08 Thread Henrique de Moraes Holschuh
On Thu, 08 Nov 2007, Alexey Starikovskiy wrote:
 handle explicitly.  There doesn't seem to be any status enum value
 defined that makes more sense than 'unknown' for a battery at a
 critical charge level.

Maybe one should be added?

-- 
  One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie. -- The Silicon Valley Tarot
  Henrique Holschuh
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: libata: cdrw/dvdrom disabed after s2ram (2.6.24-rc2)

2007-11-08 Thread Andrew Morton
 On Thu, 8 Nov 2007 13:02:56 -0500 Jeff Garzik [EMAIL PROTECTED] wrote:
 On Thu, Nov 08, 2007 at 09:49:58AM -0800, Andrew Morton wrote:
   On Thu, 08 Nov 2007 17:43:59 +0100 Roberto Oppedisano [EMAIL PROTECTED] 
   wrote:
   Andrew Morton wrote, On 11/07/2007 09:13 PM:
On Wed, 07 Nov 2007 15:15:07 +0100 Roberto Oppedisano [EMAIL 
PROTECTED] wrote:
Hello.
I noticed that after suspending to ram the DVD-ROM/CDRW
drive in no more recognized on my laptop. Looking at dmesg
after suspend i found:
   
[5.313446] ata2.00: _GTF unexpected object type 0x1
[5.313453] ata2.00: ACPI on devcfg failed the second time, 
disabling 
(errno=-22)
[5.313457] ata2.00: revalidation failed (errno=1)
[5.313459] ata2.00: disabled
   
   
Not sure when the bug was introduced or if it has been always been 
there
(but I can investigate if needed).
   
More details on request.
   
Following dmesg pre and after suspend.
Yes, it would be useful if you could work ot whether this worked OK in 
an
earlier kernel, thanks.
   Hello Andrew.
   The bug has been recently added.
   
   I did a git-bisect, but the result is probably not completely useful,
   because many kernel did non build with my config, and I marked them as 
   bad.
  
  Those build errors are bad.  Please report them.  They directly prevented
  you from finding the commit which caused this regression.
  
  The only way in which we'll stop people doing crap like this is to rub
  their noses (and the person who committed its nose) in it.
  
   Anyway here's the output of git-bisect:
   
   [EMAIL PROTECTED]:/usr/src/linux-2.6$ git bisect bad
   99874d50481c093adfe74e796436024d88b6a48c is first bad commit
   commit 99874d50481c093adfe74e796436024d88b6a48c
   Author: Jens Axboe [EMAIL PROTECTED]
   Date:   Fri Oct 12 12:50:41 2007 +0200
   
   [BLOCK] Only include the compat ioctl code if CONFIG_BLOCK is set
   
   Add an extra CONFIG_BLOCK_COMPAT that we can use in the Makefile
   
   Signed-off-by: Jens Axboe [EMAIL PROTECTED]
   
   :04 04 f88b7b0e496edb8fbdd4bc74abd1a742a6a1d6d9
   32ead3bd57b52a664cc8ccb662195041868d7632 M  block
   
   ...
   
   If needed I can do further investigation, changing the assumption of
   efefc6eb38d43b8e5daef482f575d767b002004e to good and see if the bisect
   points to a different commit.
  
  Yes, it'll be some other commit.  Sorry.
  
  It would help you (and me) if an ata developer could pay some attention.
  
  Rafael, please track this as an ata regression.
 
 We unfortunately need to bounce this ACPI people.
 
 We recently turned on ACPI by default in libata, which INTRODUCES the
 ability of the BIOS to pass random, unknown-quality ATA commands to the
 device.
 
 I highly expect some breakage related to this...  if ACPI folks
 determine it is not an ACPI bug, then its a firmware bug and we will
 have to avoid that firmware on that platform.
 
 Set module option noacpi to 1, to disable ACPI and see if that fixes
 the problem.
 
 This will be a common diagnosis and workaround, FWIW...
 

I suspect it wold be best to disable the feature for the 2.6.24 release,
then reenable it afterwards and keep doing this until the code is
sufficiently stable.

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.24-rc1: OOPS at acpi_battery_update

2007-11-08 Thread Alexey Starikovskiy

Rafael J. Wysocki wrote:

On Thursday, 8 of November 2007, Johannes Weiner wrote:

Hi,

is there any reason, why acpi_battery_get_property() should call
acpi_battery_update() at all?


Alex?

Do you mean why should it call _whole_ battery update? ?
get_state should be sufficient in order to not get stale data.

Regards,
Alex.
ACPI: Battery: remove cycle from battery removal.

From: Alexey Starikovskiy [EMAIL PROTECTED]

get_property() should not call battery_update() on absent battery to
avoid cycle and oops.

Signed-off-by: Alexey Starikovskiy [EMAIL PROTECTED]
Tested-by: Rolf Eike Beer [EMAIL PROTECTED]
---

 drivers/acpi/battery.c |   10 ++
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index c2ce0ad..192c244 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -132,7 +132,7 @@ static int acpi_battery_technology(struct acpi_battery *battery)
 	return POWER_SUPPLY_TECHNOLOGY_UNKNOWN;
 }
 
-static int acpi_battery_update(struct acpi_battery *battery);
+static int acpi_battery_get_state(struct acpi_battery *battery);
 
 static int acpi_battery_get_property(struct power_supply *psy,
  enum power_supply_property psp,
@@ -140,10 +140,11 @@ static int acpi_battery_get_property(struct power_supply *psy,
 {
 	struct acpi_battery *battery = to_acpi_battery(psy);
 
-	if ((!acpi_battery_present(battery)) 
-	 psp != POWER_SUPPLY_PROP_PRESENT)
+	if (acpi_battery_present(battery)) {
+		/* run battery update only if it is present */
+		acpi_battery_get_state(battery);
+	} else if (psp != POWER_SUPPLY_PROP_PRESENT)
 		return -ENODEV;
-	acpi_battery_update(battery);
 	switch (psp) {
 	case POWER_SUPPLY_PROP_STATUS:
 		if (battery-state  0x01)
@@ -457,6 +458,7 @@ static void sysfs_remove_battery(struct acpi_battery *battery)
 		return;
 	device_remove_file(battery-bat.dev, alarm_attr);
 	power_supply_unregister(battery-bat);
+	battery-bat.dev = NULL;
 }
 
 static int acpi_battery_update(struct acpi_battery *battery)


Re: libata: cdrw/dvdrom disabed after s2ram (2.6.24-rc2)

2007-11-08 Thread Matthew Garrett
On Thu, Nov 08, 2007 at 10:13:41AM -0800, Andrew Morton wrote:

 I suspect it wold be best to disable the feature for the 2.6.24 release,
 then reenable it afterwards and keep doing this until the code is
 sufficiently stable.

GTF method execution failure currently looks like it's fatal, when it 
probably shouldn't be. I'll send a patch shortly.

-- 
Matthew Garrett | [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.24-rc1: OOPS at acpi_battery_update

2007-11-08 Thread Johannes Weiner
Hi,

On Thu, Nov 08, 2007 at 07:11:53PM +0300, Alexey Starikovskiy wrote:
 Rafael J. Wysocki wrote:
 On Thursday, 8 of November 2007, Johannes Weiner wrote:
 Hi,
 
 is there any reason, why acpi_battery_get_property() should call
 acpi_battery_update() at all?
 
 Alex?
 If someone wants to read stale values, he could comment out 
 acpi_battery_update.

Please help me to understand:

When the battery is plugged in, the acpi_battery_notify() is called,
which in turn calls acpi_battery_update(). The latter ensures that the
sysfs files are created if not yet present.

When the battery is removed, acpi_battery_notify is called, which in
turn calls acpi_battery_update(). The latter ensures that the sysfs
files are removed if present.

During runtime - as far as I understood - no sysfs files have to be
created/removed but the saved battery state info becomes stale.

So, would it be enough to call acpi_battery_get_state() in
acpi_battery_get_property() instead of acpi_battery_update()?

If acpi_battery_get_state() does what I think it does, this would
ensure that the battery state is reread and updated when
acpi_battery_get_property() is called.

Hit me.

Hannes
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: 2.6.24-rc1: OOPS at acpi_battery_update

2007-11-08 Thread Johannes Weiner
Hi Alex,

On Thu, Nov 08, 2007 at 07:35:23PM +0300, Alexey Starikovskiy wrote:
 Rafael J. Wysocki wrote:
 On Thursday, 8 of November 2007, Johannes Weiner wrote:
 Hi,
 
 is there any reason, why acpi_battery_get_property() should call
 acpi_battery_update() at all?
 
 Alex?
 Do you mean why should it call _whole_ battery update? ?
 get_state should be sufficient in order to not get stale data.

Okay, than I understood it correct.

Acked-by: Johannes Weiner [EMAIL PROTECTED]

Thanks!

Hannes
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/3] Suspend and hibernation test facility (rev. 2)

2007-11-08 Thread Rafael J. Wysocki
Hi,

This series of patches adds a new testing facility for suspend and hibernation.

The first patch adds the possibility to test the suspend (STD) core code
without actually suspending, which is useful for tracking problems with drivers
etc.

The second one modifies the hibernation core so that it can use the same
facility (it's a bit more powerful than the existing hibernation test modes,
since they really can't test the ACPI global methods).

The third one modified documentation in accordance with the two previous ones.

Please add to the suspend branch.

Greetings,
Rafael

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/3] Suspend: Testing facility (rev. 2)

2007-11-08 Thread Rafael J. Wysocki
From: Rafael J. Wysocki [EMAIL PROTECTED]

Introduce sysfs attribute /sys/power/pm_test allowing one to test the suspend
core code.  Namely, writing one of the strings:

freezer
devices
platform
processors
core

to this file causes the suspend code to work in one of the test modes defined as
follows:

freezer
- test the freezing of processes

devices
- test the freezing of processes and suspending of devices

platform
- test the freezing of processes, suspending of devices and platform global
  control methods(*)

processors
- test the freezing of processes, suspending of devices, platform global
  control methods and the disabling of nonboot CPUs

core
- test the freezing of processes, suspending of devices, platform global
  control methods, the disabling of nonboot CPUs and suspending of
  platform/system devices

(*) These are ACPI global control methods on ACPI systems

Then, if a suspend is started by normal means, the suspend core will perform
its normal operations up to the point indicated by given test level.  Next, it
will wait for 5 seconds and carry out the resume operations needed to transition
the system back to the fully functional state.

Writing none to /sys/power/pm_test turns the testing off.

When open for reading, /sys/power/pm_test contains a space-separated list of all
available tests (including none that represents the normal functionality) in
which the current test level is indicated by square brackets.

Signed-off-by: Rafael J. Wysocki [EMAIL PROTECTED]
Acked-by: Pavel Machek [EMAIL PROTECTED]
---
 kernel/power/main.c  |  109 ++-
 kernel/power/power.h |   18 
 2 files changed, 118 insertions(+), 9 deletions(-)

Index: linux-2.6/kernel/power/main.c
===
--- linux-2.6.orig/kernel/power/main.c
+++ linux-2.6/kernel/power/main.c
@@ -28,6 +28,80 @@ BLOCKING_NOTIFIER_HEAD(pm_chain_head);
 
 DEFINE_MUTEX(pm_mutex);
 
+#ifdef CONFIG_PM_DEBUG
+int pm_test_level = TEST_NONE;
+
+static int suspend_test(int level)
+{
+   if (pm_test_level == level) {
+   printk(KERN_INFO suspend debug: Waiting for 5 seconds.\n);
+   mdelay(5000);
+   return 1;
+   }
+   return 0;
+}
+
+static const char * const pm_tests[__TEST_AFTER_LAST] = {
+   [TEST_NONE] = none,
+   [TEST_CORE] = core,
+   [TEST_CPUS] = processors,
+   [TEST_PLATFORM] = platform,
+   [TEST_DEVICES] = devices,
+   [TEST_FREEZER] = freezer,
+};
+
+static ssize_t pm_test_show(struct kset *kset, char *buf)
+{
+   char *s = buf;
+   int level;
+
+   for (level = TEST_FIRST; level = TEST_MAX; level++)
+   if (pm_tests[level]) {
+   if (level == pm_test_level)
+   s += sprintf(s, [%s] , pm_tests[level]);
+   else
+   s += sprintf(s, %s , pm_tests[level]);
+   }
+
+   if (s != buf)
+   /* convert the last space to a newline */
+   *(s-1) = '\n';
+
+   return (s - buf);
+}
+
+static ssize_t pm_test_store(struct kset *kset, const char *buf, size_t n)
+{
+   const char * const *s;
+   int level;
+   char *p;
+   int len;
+   int error = -EINVAL;
+
+   p = memchr(buf, '\n', n);
+   len = p ? p - buf : n;
+
+   mutex_lock(pm_mutex);
+
+   level = TEST_FIRST;
+   for (s = pm_tests[level]; level = TEST_MAX; s++, level++)
+   if (*s  len == strlen(*s)  !strncmp(buf, *s, len)) {
+   pm_test_level = level;
+   error = 0;
+   break;
+   }
+
+   mutex_unlock(pm_mutex);
+
+   return error ? error : n;
+}
+
+power_attr(pm_test);
+#else /* !CONFIG_PM_DEBUG */
+static inline int suspend_test(int level) { return 0; }
+#endif /* !CONFIG_PM_DEBUG */
+
+
 #ifdef CONFIG_SUSPEND
 
 /* This is just an arbitrary number */
@@ -133,7 +207,10 @@ static int suspend_enter(suspend_state_t
printk(KERN_ERR Some devices failed to power down\n);
goto Done;
}
-   error = suspend_ops-enter(state);
+
+   if (!suspend_test(TEST_CORE))
+   error = suspend_ops-enter(state);
+
device_power_up();
  Done:
arch_suspend_enable_irqs();
@@ -164,16 +241,25 @@ int suspend_devices_and_enter(suspend_st
printk(KERN_ERR Some devices failed to suspend\n);
goto Resume_console;
}
+
+   if (suspend_test(TEST_DEVICES))
+   goto Resume_devices;
+
if (suspend_ops-prepare) {
error = suspend_ops-prepare();
if (error)
goto Resume_devices;
}
+
+   if (suspend_test(TEST_PLATFORM))
+   goto Finish;
+
error = disable_nonboot_cpus();
-   if (!error)
+   if (!error  !suspend_test(TEST_CPUS))
  

Re: *New* HP dv6000 series backlight driver.

2007-11-08 Thread Ângelo Miguel Arrifano
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hello all,

After getting more into it, I've added support to some more stuff on the HP 
dv6500 laptops.

SUPORTED DEVICES:
* This is known to work on the dv6535ep (I think it may work on other dv6500 
models):
  - CPU Temperature reading.
  - Backlight driver (hotkeys not working, yet).
  - LID status.
  - WIFI button status.

I've uploaded the driver and some information to my personal server (very 
bandwidth limited):
http://miknix.homelinux.com/dv6k_laptop/

I hope other HP dv6500 users like it :)
- -- 
Angelo Arrifano AKA MiKNiX
CSE Student at UBI, Portugal
Gentoo Linux AMD64 Arch Tester
[EMAIL PROTECTED]
http://miknix.homelinux.com
PGP Pubkey online

- - -
Why won't you let me kiss you goodnight?  Is it something I said?
-- Tom Ryan
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFHM18/NahyoD2SuwsRAvFrAKCJ6a9q07hDneUK4ifPmqr2g20DFgCdFWvY
od9gzT7RJG8QNsuzCrh047Q=
=oXKG
-END PGP SIGNATURE-
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: libata: cdrw/dvdrom disabed after s2ram (2.6.24-rc2)

2007-11-08 Thread Andrew Morton
 On Thu, 8 Nov 2007 13:19:05 -0500 Jeff Garzik [EMAIL PROTECTED] wrote:
 On Thu, Nov 08, 2007 at 10:13:41AM -0800, Andrew Morton wrote:
   On Thu, 8 Nov 2007 13:02:56 -0500 Jeff Garzik [EMAIL PROTECTED] wrote:
   On Thu, Nov 08, 2007 at 09:49:58AM -0800, Andrew Morton wrote:
 On Thu, 08 Nov 2007 17:43:59 +0100 Roberto Oppedisano [EMAIL 
 PROTECTED] wrote:
 Andrew Morton wrote, On 11/07/2007 09:13 PM:
  On Wed, 07 Nov 2007 15:15:07 +0100 Roberto Oppedisano [EMAIL 
  PROTECTED] wrote:
  Hello.
  I noticed that after suspending to ram the DVD-ROM/CDRW
  drive in no more recognized on my laptop. Looking at dmesg
  after suspend i found:
 
  [5.313446] ata2.00: _GTF unexpected object type 0x1
  [5.313453] ata2.00: ACPI on devcfg failed the second time, 
  disabling 
  (errno=-22)
  [5.313457] ata2.00: revalidation failed (errno=1)
  [5.313459] ata2.00: disabled
 
 
  Not sure when the bug was introduced or if it has been always been 
  there
  (but I can investigate if needed).
 
  More details on request.
 
  Following dmesg pre and after suspend.
  Yes, it would be useful if you could work ot whether this worked OK 
  in an
  earlier kernel, thanks.
 Hello Andrew.
 The bug has been recently added.
 
 I did a git-bisect, but the result is probably not completely useful,
 because many kernel did non build with my config, and I marked them 
 as bad.

Those build errors are bad.  Please report them.  They directly 
prevented
you from finding the commit which caused this regression.

The only way in which we'll stop people doing crap like this is to rub
their noses (and the person who committed its nose) in it.

 Anyway here's the output of git-bisect:
 
 [EMAIL PROTECTED]:/usr/src/linux-2.6$ git bisect bad
 99874d50481c093adfe74e796436024d88b6a48c is first bad commit
 commit 99874d50481c093adfe74e796436024d88b6a48c
 Author: Jens Axboe [EMAIL PROTECTED]
 Date:   Fri Oct 12 12:50:41 2007 +0200
 
 [BLOCK] Only include the compat ioctl code if CONFIG_BLOCK is set
 
 Add an extra CONFIG_BLOCK_COMPAT that we can use in the Makefile
 
 Signed-off-by: Jens Axboe [EMAIL PROTECTED]
 
 :04 04 f88b7b0e496edb8fbdd4bc74abd1a742a6a1d6d9
 32ead3bd57b52a664cc8ccb662195041868d7632 M  block
 
 ...
 
 If needed I can do further investigation, changing the assumption of
 efefc6eb38d43b8e5daef482f575d767b002004e to good and see if the bisect
 points to a different commit.

Yes, it'll be some other commit.  Sorry.

It would help you (and me) if an ata developer could pay some attention.

Rafael, please track this as an ata regression.
   
   We unfortunately need to bounce this ACPI people.
   
   We recently turned on ACPI by default in libata, which INTRODUCES the
   ability of the BIOS to pass random, unknown-quality ATA commands to the
   device.
   
   I highly expect some breakage related to this...  if ACPI folks
   determine it is not an ACPI bug, then its a firmware bug and we will
   have to avoid that firmware on that platform.
   
   Set module option noacpi to 1, to disable ACPI and see if that fixes
   the problem.
   
   This will be a common diagnosis and workaround, FWIW...
   
  
  I suspect it wold be best to disable the feature for the 2.6.24 release,
  then reenable it afterwards and keep doing this until the code is
  sufficiently stable.
 
 Re-read my message :)
 
 The code is stable.  Behavior _by definition_ will vary by BIOS.
 
 This feature (a) enables suspend/resume, but (b) now sends random
 unvalidated shite to the device that we hope will work.
 
 Look at all the messages where turning on ACPI in libata _fixed_
 suspend/resume (because its obviously required for many, including
 laptops).

We fixed a somewhat-known number of machines and broke an unknown number. 
Linus will come after you with a pointy stick if he finds out.

Fixing previously-broken machines is nice, but breaking previously-working
ones gets people a lot more upset.

 So it's not an easy turn it off answer, you break shitloads of
 suspend/resume that way, that we just fixed.
 
 The message _GTF unexpected object type indicates a broken BIOS, so
 IMO we should proceed in that direction, blacklisting that platform.
 

Suggest that the feature be disabled until we have most of these
blacklistings in place.

We have a tremendous number of regressions in 2.6.24 (and they're just the
ones which we know of) and the regression reports for 2.6.23 are still
coming in.  At some stage we'll need to get seriosu about this.
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Don't fail ata device revalidation for bad _GTF methods

2007-11-08 Thread Matthew Garrett
Experience suggests that the _GTF method may be bad. We currently fail 
device revalidation in that case, which seems excessive.

Signed-off-by: Matthew Garrett [EMAIL PROTECTED]

---

diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 08a52dd..545ea86 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -312,7 +312,7 @@ EXPORT_SYMBOL_GPL(ata_acpi_stm);
  *
  * RETURNS:
  * Number of taskfiles on success, 0 if _GTF doesn't exist or doesn't
- * contain valid data.  -errno on other errors.
+ * contain valid data.
  */
 static int ata_dev_get_GTF(struct ata_device *dev, struct ata_acpi_gtf **gtf,
   void **ptr_to_free)
@@ -339,7 +339,6 @@ static int ata_dev_get_GTF(struct ata_device *dev, struct 
ata_acpi_gtf **gtf,
ata_dev_printk(dev, KERN_WARNING,
   _GTF evaluation failed (AE 0x%x)\n,
   status);
-   rc = -EIO;
}
goto out_free;
}
@@ -359,7 +358,6 @@ static int ata_dev_get_GTF(struct ata_device *dev, struct 
ata_acpi_gtf **gtf,
ata_dev_printk(dev, KERN_WARNING,
   _GTF unexpected object type 0x%x\n,
   out_obj-type);
-   rc = -EINVAL;
goto out_free;
}
 
@@ -367,7 +365,6 @@ static int ata_dev_get_GTF(struct ata_device *dev, struct 
ata_acpi_gtf **gtf,
ata_dev_printk(dev, KERN_WARNING,
   unexpected _GTF length (%d)\n,
   out_obj-buffer.length);
-   rc = -EINVAL;
goto out_free;
}
 
@@ -511,10 +508,7 @@ static int ata_acpi_exec_tfs(struct ata_device *dev)
int gtf_count, i, rc;
 
/* get taskfiles */
-   rc = ata_dev_get_GTF(dev, gtf, ptr_to_free);
-   if (rc  0)
-   return rc;
-   gtf_count = rc;
+   gtf_count = ata_dev_get_GTF(dev, gtf, ptr_to_free);
 
/* execute them */
for (i = 0, rc = 0; i  gtf_count; i++) {

-- 
Matthew Garrett | [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: libata: cdrw/dvdrom disabed after s2ram (2.6.24-rc2)

2007-11-08 Thread Mark Lord

Andrew Morton wrote:

On Thu, 8 Nov 2007 13:19:05 -0500 Jeff Garzik [EMAIL PROTECTED] wrote:
On Thu, Nov 08, 2007 at 10:13:41AM -0800, Andrew Morton wrote:

On Thu, 8 Nov 2007 13:02:56 -0500 Jeff Garzik [EMAIL PROTECTED] wrote:
On Thu, Nov 08, 2007 at 09:49:58AM -0800, Andrew Morton wrote:

..

I suspect it wold be best to disable the feature for the 2.6.24 release,
then reenable it afterwards and keep doing this until the code is
sufficiently stable.

Re-read my message :)

The code is stable.  Behavior _by definition_ will vary by BIOS.

This feature (a) enables suspend/resume, but (b) now sends random
unvalidated shite to the device that we hope will work.

Look at all the messages where turning on ACPI in libata _fixed_
suspend/resume (because its obviously required for many, including
laptops).


We fixed a somewhat-known number of machines and broke an unknown number. 
Linus will come after you with a pointy stick if he finds out.


Fixing previously-broken machines is nice, but breaking previously-working
ones gets people a lot more upset.


So it's not an easy turn it off answer, you break shitloads of
suspend/resume that way, that we just fixed.

The message _GTF unexpected object type indicates a broken BIOS, so
IMO we should proceed in that direction, blacklisting that platform.



Suggest that the feature be disabled until we have most of these
blacklistings in place.

..

The problem is, this code has already sat out the last release,
and nobody noticed problems exactly because it was not enabled before.

If Jeff disables it again, then it will sit out another cycle without
anybody exercising it.  At some point, we need to turn it on, and collect
information about where there are problems (and fix them).

Tricky, that.
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: libata: cdrw/dvdrom disabed after s2ram (2.6.24-rc2)

2007-11-08 Thread Andrew Morton
 On Thu, 08 Nov 2007 14:49:33 -0500 Mark Lord [EMAIL PROTECTED] wrote:
 Andrew Morton wrote:
  On Thu, 8 Nov 2007 13:19:05 -0500 Jeff Garzik [EMAIL PROTECTED] wrote:
  On Thu, Nov 08, 2007 at 10:13:41AM -0800, Andrew Morton wrote:
  On Thu, 8 Nov 2007 13:02:56 -0500 Jeff Garzik [EMAIL PROTECTED] wrote:
  On Thu, Nov 08, 2007 at 09:49:58AM -0800, Andrew Morton wrote:
 ..
  I suspect it wold be best to disable the feature for the 2.6.24 release,
  then reenable it afterwards and keep doing this until the code is
  sufficiently stable.
  Re-read my message :)
 
  The code is stable.  Behavior _by definition_ will vary by BIOS.
 
  This feature (a) enables suspend/resume, but (b) now sends random
  unvalidated shite to the device that we hope will work.
 
  Look at all the messages where turning on ACPI in libata _fixed_
  suspend/resume (because its obviously required for many, including
  laptops).
  
  We fixed a somewhat-known number of machines and broke an unknown number. 
  Linus will come after you with a pointy stick if he finds out.
  
  Fixing previously-broken machines is nice, but breaking previously-working
  ones gets people a lot more upset.
  
  So it's not an easy turn it off answer, you break shitloads of
  suspend/resume that way, that we just fixed.
 
  The message _GTF unexpected object type indicates a broken BIOS, so
  IMO we should proceed in that direction, blacklisting that platform.
 
  
  Suggest that the feature be disabled until we have most of these
  blacklistings in place.
 ..
 
 The problem is, this code has already sat out the last release,
 and nobody noticed problems exactly because it was not enabled before.
 
 If Jeff disables it again, then it will sit out another cycle without
 anybody exercising it.  At some point, we need to turn it on, and collect
 information about where there are problems (and fix them).
 

We get a decent amount of testing during the -rc's.  I think it's OK to turn
a feature on during -rc and off for release while it gets settled in.

Hopefully Matthew's fix will address this particular problem.
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


dmidecode request in kern.log

2007-11-08 Thread Brian
send to linux-acpi@vger.kernel.org

[EMAIL PROTECTED]:~$ sudo dmidecode
# dmidecode 2.9
SMBIOS 2.4 present.
22 structures occupying 1007 bytes.
Table at 0x000DC010.

Handle 0x, DMI type 0, 24 bytes
BIOS Information
Vendor: TOSHIBA
Version: V1.40
Release Date: 04/26/2007
Address: 0xE59C0
Runtime Size: 108096 bytes
ROM Size: 512 kB
Characteristics:
PCI is supported
PC Card (PCMCIA) is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
AGP is supported
Smart battery is supported
BIOS boot specification is supported
Targeted content distribution is supported
BIOS Revision: 1.64
Firmware Revision: 1.64

Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: TOSHIBA
Product Name: Satellite A200
Version: PSAE0C-AH308C
Serial Number: 67481368K
UUID: 174D3746-1B7F-11DC-8D90-001B38146262
Wake-up Type: Power Switch
SKU Number: 012345678912345678912345678
Family: ABCDEFGHIJKLMNOPQRSTUVWXYZ

Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
Manufacturer: TOSHIBA
Product Name: ISKAE
Version: 1.00
Serial Number: 0123456789AB

Handle 0x0003, DMI type 3, 17 bytes
Chassis Information
Manufacturer: TOSHIBA
Type: Notebook
Lock: Not Present
Version: N/A
Serial Number: None
Asset Tag: *
Boot-up State: Safe
Power Supply State: Safe
Thermal State: Safe
Security Status: None
OEM Information: 0x1234

Handle 0x0004, DMI type 4, 35 bytes
Processor Information
Socket Designation: U2E1
Type: Central Processor
Family: Other
Manufacturer: Intel
ID: EC 06 00 00 FF FB E9 BF
Version: Genuine Intel(R) CPU   T2
Voltage: 3.3 V
External Clock: Unknown
Max Speed: 2048 MHz
Current Speed: 1730 MHz
Status: Populated, Enabled
Upgrade: ZIF Socket
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified

Handle 0x0005, DMI type 7, 19 bytes
Cache Information
Socket Designation: L1 Cache
Configuration: Enabled, Socketed, Level 1
Operational Mode: Write Back
Location: Internal
Installed Size: 32 KB
Maximum Size: 32 KB
Supported SRAM Types:
Burst
Pipeline Burst
Asynchronous
Installed SRAM Type: Asynchronous
Speed: Unknown
Error Correction Type: Unknown
System Type: Unknown
Associativity: Unknown

Handle 0x0006, DMI type 7, 19 bytes
Cache Information
Socket Designation: L2 Cache
Configuration: Enabled, Socketed, Level 2
Operational Mode: Write Back
Location: External
Installed Size: 1024 KB
Maximum Size: 512 KB
Supported SRAM Types:
Burst
Pipeline Burst
Asynchronous
Installed SRAM Type: Burst
Speed: Unknown
Error Correction Type: Unknown
System Type: Unknown
Associativity: Unknown

Handle 0x0007, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: J35
Internal Connector Type: None
External Reference Designator: Keyboard
External Connector Type: Circular DIN-8 male
Port Type: Keyboard Port

Handle 0x0008, DMI type 8, 9 bytes
Port Connector Information
Internal Reference Designator: J36
Internal Connector Type: None
External Reference Designator: PS/2 Mouse
External Connector Type: Circular DIN-8 male
Port Type: Keyboard Port

Handle 0x0009, DMI type 9, 13 bytes
System Slot Information
Designation: TI7412
Type: 32-bit PCI
Current Usage: Unknown
Length: Long
ID: 0
Characteristics:
5.0 V is provided
3.3 V is provided

Handle 0x000A, DMI type 10, 6 bytes
On Board Device Information
Type: Sound
Status: Disabled
Description: HD-Audio

Handle 0x000B, DMI type 

[PATCH 3/3] PM: Suspend/hibernation debug documentation update (rev. 2)

2007-11-08 Thread Rafael J. Wysocki
From: Rafael J. Wysocki [EMAIL PROTECTED]

Update the suspend/hibernation debugging and testing documentation to describe
the newly introduced testing facilities.

Signed-off-by: Rafael J. Wysocki [EMAIL PROTECTED]
Acked-by: Pavel Machek [EMAIL PROTECTED]
---
 Documentation/power/basic-pm-debugging.txt |  212 +
 Documentation/power/drivers-testing.txt|   30 ++--
 2 files changed, 172 insertions(+), 70 deletions(-)

Index: linux-2.6/Documentation/power/drivers-testing.txt
===
--- linux-2.6.orig/Documentation/power/drivers-testing.txt
+++ linux-2.6/Documentation/power/drivers-testing.txt
@@ -6,9 +6,9 @@ Testing suspend and resume support in de
 Unfortunately, to effectively test the support for the system-wide suspend and
 resume transitions in a driver, it is necessary to suspend and resume a fully
 functional system with this driver loaded.  Moreover, that should be done
-several times, preferably several times in a row, and separately for the 
suspend
-to disk (STD) and the suspend to RAM (STR) transitions, because each of these
-cases involves different ordering of operations and different interactions with
+several times, preferably several times in a row, and separately for 
hibernation
+(aka suspend to disk or STD) and suspend to RAM (STR), because each of these
+cases involves slightly different operations and different interactions with
 the machine's BIOS.
 
 Of course, for this purpose the test system has to be known to suspend and
@@ -22,20 +22,24 @@ for more information about the debugging
 Once you have resolved the suspend/resume-related problems with your test 
system
 without the new driver, you are ready to test it:
 
-a) Build the driver as a module, load it and try the STD in the test mode (see:
-Documents/power/basic-pm-debugging.txt, 1a)).
+a) Build the driver as a module, load it and try the test modes of hibernation
+   (see: Documents/power/basic-pm-debugging.txt, 1).
 
-b) Load the driver and attempt to suspend to disk in the reboot, shutdown
-and platform modes (see: Documents/power/basic-pm-debugging.txt, 1).
+b) Load the driver and attempt to hibernate in the reboot, shutdown and
+   platform modes (see: Documents/power/basic-pm-debugging.txt, 1).
 
-c) Compile the driver directly into the kernel and try the STD in the test 
mode.
+c) Compile the driver directly into the kernel and try the test modes of
+   hibernation.
 
-d) Attempt to suspend to disk with the driver compiled directly into the kernel
-in the reboot, shutdown and platform modes.
+d) Attempt to hibernate with the driver compiled directly into the kernel
+   in the reboot, shutdown and platform modes.
 
-e) Attempt to suspend to RAM using the s2ram tool with the driver loaded (see:
-Documents/power/basic-pm-debugging.txt, 2).  As far as the STR tests are
-concerned, it should not matter whether or not the driver is built as a module.
+e) Try the test modes of suspend (see: Documents/power/basic-pm-debugging.txt,
+   2).  [As far as the STR tests are concerned, it should not matter whether or
+   not the driver is built as a module.]
+
+f) Attempt to suspend to RAM using the s2ram tool with the driver loaded
+   (see: Documents/power/basic-pm-debugging.txt, 2).
 
 Each of the above tests should be repeated several times and the STD tests
 should be mixed with the STR tests.  If any of them fails, the driver cannot be
Index: linux-2.6/Documentation/power/basic-pm-debugging.txt
===
--- linux-2.6.orig/Documentation/power/basic-pm-debugging.txt
+++ linux-2.6/Documentation/power/basic-pm-debugging.txt
@@ -1,45 +1,111 @@
-Debugging suspend and resume
+Debugging hibernation and suspend
(C) 2007 Rafael J. Wysocki [EMAIL PROTECTED], GPL
 
-1. Testing suspend to disk (STD)
+1. Testing hibernation (aka suspend to disk or STD)
 
-To verify that the STD works, you can try to suspend in the reboot mode:
+To check if hibernation works, you can try to hibernate in the reboot mode:
 
 # echo reboot  /sys/power/disk
 # echo disk  /sys/power/state
 
-and the system should suspend, reboot, resume and get back to the command 
prompt
-where you have started the transition.  If that happens, the STD is most likely
-to work correctly, but you need to repeat the test at least a couple of times 
in
-a row for confidence.  This is necessary, because some problems only show up on
-a second attempt at suspending and resuming the system.  You should also test
-the platform and shutdown modes of suspend:
+and the system should create a hibernation image, reboot, resume and get back 
to
+the command prompt where you have started the transition.  If that happens,
+hibernation is most likely to work correctly.  Still, you need to repeat the
+test at least a couple of times in a row for confidence.  [This is necessary,
+because some problems only show up on a second attempt at 

Re: 2.6.24-rc1: OOPS at acpi_battery_update

2007-11-08 Thread Andrew Morton
A On Thu, 08 Nov 2007 19:35:23 +0300 Alexey Starikovskiy [EMAIL PROTECTED] 
wrote:
 [remove_cycle_at_battery_removal.patch  text/x-patch (1.7KB)]
 ACPI: Battery: remove cycle from battery removal.
 
 From: Alexey Starikovskiy [EMAIL PROTECTED]
 
 get_property() should not call battery_update() on absent battery to
 avoid cycle and oops.
 
 Signed-off-by: Alexey Starikovskiy [EMAIL PROTECTED]
 Tested-by: Rolf Eike Beer [EMAIL PROTECTED]

A patch similar to this one but with an identical changelog was merged into
Len's tree on November 2.

If it had been promptly merged into mainline then quite a lot of people's
time would not have been wasted.

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[2.6 patch] x86: acpi_pciprobe_dmi_table[] must be __devinitdata

2007-11-08 Thread Adrian Bunk
This patch fixes the following section mismatches with CONFIG_HOTPLUG=n:

--  snip  --

...
WARNING: vmlinux.o(.data+0x23640): Section mismatch: reference to 
.init.text.20:can_skip_ioresource_align (between 'acpi_pciprobe_dmi_table' and 
'pcibios_irq_mask')
WARNING: vmlinux.o(.data+0x2366c): Section mismatch: reference to 
.init.text.20:can_skip_ioresource_align (between 'acpi_pciprobe_dmi_table' and 
'pcibios_irq_mask')
WARNING: vmlinux.o(.data+0x23698): Section mismatch: reference to 
.init.text.20:can_skip_ioresource_align (between 'acpi_pciprobe_dmi_table' and 
'pcibios_irq_mask')
...

--  snip  --

Signed-off-by: Adrian Bunk [EMAIL PROTECTED]

---
3225b3c19396e0e45f496dfe82e85ebc86951d91 
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 2d88f7c..a7536dc 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -13,7 +13,7 @@ static int __devinit can_skip_ioresource_align(const struct 
dmi_system_id *d)
return 0;
 }
 
-static struct dmi_system_id acpi_pciprobe_dmi_table[] = {
+static struct dmi_system_id acpi_pciprobe_dmi_table[] __devinitdata = {
 /*
  * Systems where PCI IO resource ISA alignment can be skipped
  * when the ISA enable bit in the bridge control is not set

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[2.6 patch] x86_64: remove acpi_pci_link_exit()

2007-11-08 Thread Adrian Bunk
acpi_pci_link_exit() is both unused and empty.

Signed-off-by: Adrian Bunk [EMAIL PROTECTED]

---
16d6853a1facb9bcb7a4bc19daad6d3b852cace3 
diff --git a/arch/x86/kernel/acpi/sleep_64.c b/arch/x86/kernel/acpi/sleep_64.c
index 79475d2..da42de2 100644
--- a/arch/x86/kernel/acpi/sleep_64.c
+++ b/arch/x86/kernel/acpi/sleep_64.c
@@ -115,6 +115,3 @@ static int __init acpi_sleep_setup(char *str)
 
 __setup(acpi_sleep=, acpi_sleep_setup);
 
-void acpi_pci_link_exit(void)
-{
-}

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


GPE handling

2007-11-08 Thread Li, Shaohua
Bob  Ming,
I'm working on adding wakeup GPE support at system runtime, this
capability can help us
Identify which device invokes a wakeup event at runtime, this is
required for runtime device
Power management.

Below is the ASL code. For example, _L0c, USB3 will send a wakeup GPE
and invoke
a notify. In the notify handler, OS will clear USB3's PCI PME status to
avoid wakeup
event flood. But in current code, acpi_ev_asynch_execute_gpe_method will
start an asynchronous
execution of notify and return soon. Just before the return,
acpi_ev_asynch_execute_gpe_method
will reenable GPE 0C. That means GPE is enabled before OS execute
notification handler and USB3's
PCI PME status is cleared, and cause GPE flood. Ideally, I think we
should delay GPE enable
of _L0c till notification handler is finished or simply the method _L0c
is really finished.
What do you think?

Thanks,
Shaohua


Method (_L0C, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB3, 0x02)
}

Method (_L0D, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB7, 0x02)
}

Method (_L0E, 0, NotSerialized)
{
Notify (\_SB.PCI0.USB4, 0x02)
}
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html