Jump to content

USB sleep then wake "Device Removal" problem


pcb355
 Share

152 posts in this topic

Recommended Posts

Ok thanks for that mitch_de.

 

Now I just need to wonder why my USB still has the error EHCI can handle control from BIOS, in the system profiler shows as Built-in (USB Bus and USB High-Speed Bus) any clues?

Link to comment
Share on other sites

@ ApexDE

 

ich denke mal das DE in deinem Namen bedeutet Deutschland...ich hab das problem das wenn ich die datei wieder in aml umwandeln will, lauter errors kommen. kannst du mir freundlicher weise meine dsdt bearbeiten wegen des usb problems!? mein usb funktioniert nach dem aufwecken vom sleep nicht (tastatur und maus). wäre dir sehr dankbar. ich bekomme das nicht hin, hab beim recompilieren immer errors...bei mir steht beim booten 2x appleusbohci -- CheckSleepCapability - controller will be unloaded across sleep....ich kann mit tastatur aufwecken, tastatur und maus funtionieren danach nicht mehr

 

gruß aus berlin, thomas

dsdt.aml.zip

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 months later...
OK guys, i managed to patch my DSDT to get the EHCI USB Ports sleeping.

 

Unloading the Controller during Sleep results in USB Drives being removed by force without unmounting, which might result in data-loss:

 

kernel	USBF:	0.392	AppleUSBEHCI[0x6838800]::CheckSleepCapability - controller will be unloaded across sleep

 

The Apple USB Drivers search for a device property "AAPL,clock-id", if it is found the ports are flagged built-in, if not, they will be unloaded during sleep. I renamed my EHCI Devices to EHC1 and EHC2. This is just cosmetical, search for your EHCI Devices by the adresses (e.g 0x001D0007 , 0x001A0007 for Gigabyte)

 

 

Here is my EHCI DSDT Part:

 

 

			Device (EHC1)
		{
			Name (_ADR, 0x001D0007)
			Method (_S3D, 0, NotSerialized)
			{
				If (LEqual (OSFL, 0x02))
				{
					Return (0x02)
				}

				Return (0x03)
			}

			Name (_PRW, Package (0x02)
			{
				0x0D, 
				0x03
			})
					Method (_DSM, 4, NotSerialized)
					{
					   Store (Package (0x04)
						   {
							 "AAPL,clock-id",
							 Buffer (0x01)
							 {
								 0x01
							 },
							 "device_type",
							 Buffer (0x05)
							 {
								"EHCI"
							 }
							}, Local0)
						DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
						Return (Local0)
					}


		}

		Device (EHC2)
		{
			Name (_ADR, 0x001A0007)
			Method (_S3D, 0, NotSerialized)
			{
				If (LEqual (OSFL, 0x02))
				{
					Return (0x02)
				}

				Return (0x03)
			}

			Name (_PRW, Package (0x02)
			{
				0x0D, 
				0x03
			})
					Method (_DSM, 4, NotSerialized)
					{
					   Store (Package (0x04)
						   {
							 "AAPL,clock-id",
							 Buffer (0x01)
							 {
								 0x02
							 },
							 "device_type",
							 Buffer (0x05)
							 {
								"EHCI"
							 }
							}, Local0)
						DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
						Return (Local0)
					}

		}

 

Thanks ApexDE

 

After patch this, my EHCI device is build-in. and sleep is ok.

Link to comment
Share on other sites

Any Fix for this Problem?

 

Inserting a USB mass storage device(a small flash or thumb drive will do) after one or more sleep cycles causes a KP or system freeze, which can either take the form of a restart message or a USB mouse pointer freeze, depending on how your DSDT has been edited, forcing a hard restart of the computer.

 

Others have alluded to this problem(see Post #42 in this thread) and in other threads, but no one has discussed it or come up with a solution as far as I can tell.

 

Otherwise Sleep/Restart/Shutdown works fine on my i7 GA-EX58-UD3R system. I can insert a USB Flash drive if I have not previously used Sleep and it comes up as expected on the desktop and can be ejected. With the USB Flash drive/Mass Storage Device still mounted, I can sleep the computer and wake it up again - the USB drive remounts nicely with no device removal errors. And I can eject it too, no problem. But if I reinsert the USB drive after one or more sleep cycles, the freeze takes place once again, forcing a hard restart.

 

All my USB ports are coming up as "Built-in USB" ports. The keyboard/mouse and any mass storage devices plugged into any of the USB ports are properly recognized. I have tried various DSDT edits in Device USB0-USB5 and USBE and USE2 as well as the DSM non-serialized Method entry near the top of the DSDT script. These edits fixed the Device Removal Error problem, of course, and improved USB KB and mouse usage, but they do not fix this specific problem.

 

Most of my testing has been with 10.5.8, but the problem also occurs with 10.6.2 as well. Firewire devices mount and unmount(external hard drives and audio interfaces) with no problem after sleep. It's just with USB mass storage devices after one or more sleep cycles where this problem occurs. Older rigs(10.5.4 + BadAxe Mobo(XBX2) with an ICH7 chipset have no problem. Does this happen with your install? Any ideas? Thanks.

Link to comment
Share on other sites

Well I may have found a fix to my previous post about inserting a USB mass storage device after a sleep cycle which might be useful to someone. Add AppleUSBEHCI/OHCI and UHCI kexts to S/L/E - they can be downloaded from kexts.com in the drivers section, the title of the download being Intel USB2 EHCI Controller. Be sure, though, that Pystar's OHR(OpenHaltRestart) kext is also in S/L/E(I used the earlier version) or this fix won't work. You can also put the three USB extensions, along with OHR, in E/E and repack the extensions.mkext file too. Either method works, the latter at least having the virtue of keeping foreign kexts out of S/L/E. I was hoping to find a DSDT solution to this problem, but no luck with this one unless someone out there knows how to take care of this problem in DSDT.

Link to comment
Share on other sites

  • 4 months later...

Not working. GA-P35-DS3L rev 2 SL 10.6.4. Got the dsdt to compile without errors , like the first post , added the code to USBE etc etc. Sleep no longer works after this patch.

 

Went back to original dsdt. Still get ejection error when using sleep. Not working with this mobo for me :\

Link to comment
Share on other sites

  • 2 weeks later...

ApexDE,

 

I have combined a bit of Both Slice's Dell D830/D630 and Brett's M1330 Laptops EHCI scripts and still have the USB warning after wake.

 

The EHCI say Built in from IoRegistry Explorer.

 

Could you have a quick look at the EHC sections? Its seems like there is more Methods and PRW's scripting in those sections so when I try to modify the script with OSFL etc I get a ton of errors since the object does not exist.

 

Is my current script seem to be complete or am I missing something to make this error on USB FLash drive on _wak go away?

 

DSDT as AML attached

dsdt_M1330_Brett_Addtional_All_Mods_In_Place_Shutdown_And_Now_Sleep_Working_Combined_Some_DSDT_Mods_On_Slices_D830.aml.zip

Link to comment
Share on other sites

  • 4 weeks later...

ApexDE,

 

I have a HP Mini 311 with SL 10.6.4, the problem with this unit, when on battery and going to sleep with a USB Storage attached will cause an sleep-wake loop, only can be stopped if the USB is removed.

 

I applied your patch and it seems better, on battery the unit can enter sleep mode with USB flash attached, there is no loop. However, upon wake, there is a message saying the device is not ejected properly.

 

System Profiler reported the USBs as Built-in.

 

Any advise?

 

Error message

USB_disconnect_error.tiff

 

Kernel log upon wake

kernel.log.txt

 

USB section with modifications

USB_after.dsl.txt

Link to comment
Share on other sites

  • 2 weeks later...

I do NOT want OS X to wake up from sleep on mouse move or keyboard stroke on an Asus board (not the Laptop in the sig). Right now it does. I only want it to wake up via power button.

 

Is there a USB kext or DSDT hack for this? There is no function for this in the BIOS.

 

DSDT attached, if you wanna have a look.

 

Thanks,

Bugs

dsdt.zip

Link to comment
Share on other sites

I do NOT want OS X to wake up from sleep on mouse move or keyboard stroke on an Asus board (not the Laptop in the sig). Right now it does. I only want it to wake up via power button.

 

Is there a USB kext or DSDT hack for this? There is no function for this in the BIOS.

 

Thanks,

Bugs

You can try manipulate the _PSW function.

 

Refer to arguments for _PSW:

Arguments: (1)

Arg0 – An Integer containing a wake capability control

0 – Disable the device’s wake capabilities

1 – Enable the device’s wake capabilities

Link to comment
Share on other sites

hey Kizwan, great :)

 

I attached my DSDT above [link]. As you see the only refs to _PSW are in PS2 methods, PS2K and PS2M, nothing in USB related methods. Do you think it is still worth it to mod

Method (PS2K._PSW, 1, NotSerialized)

to

Method (PS2K._PSW, 0, NotSerialized)

+ the same with PS2M? Or is this DSDT too far off the beaten track?

 

[edit]: I just attached a PS2 mouse before reboot which works via VoodooPS2, and that one does NOT wake the Asus from sleep when I click or move it ..

 

[edit2]: with Method (PS2x._PSW, 0, NotSerialized) I now get two compile errors "Method argument Arg0 is not initialized". Shall I delete the entire Methods, or leave the methods themselves untouched and change Arg0 to 0 in both instances?

Link to comment
Share on other sites

Hi BugsB,

 

You can add _PSW control method in USB device entry if it doesn't exist yet. You need to change the value inside the _PSW control method. I do like this:-

				   Device (USB4)
				{
					Name (_ADR, 0x001D0003)
					OperationRegion (U4CS, PCI_Config, 0xC4, 0x04)
					Field (U4CS, DWordAcc, NoLock, Preserve)
					{
						U4EN,   2
					}

					Name (_PRW, Package (0x02)
					{
						0x0E, 
						0x03
					})

					Method (_PSW, 1, NotSerialized)
					{
						If (Arg0)
						{
							// Store (0x03, U4EN)
							// Disable USB4 capability to wake a sleeping system
							Store (0x00, U4EN)
						}
						Else
						{
							Store (0x00, U4EN)
						}
					}

On my Aspire 9420, the internal bluetooth which connected to USB4 keep waking up my computer whenever it tried to sleep.

Arguments: (1)

Arg0 – An Integer containing a wake capability control

0 – Disable the device’s wake capabilities

1 – Enable the device’s wake capabilities

I change both condition to execute the same thing. So that it always execute the same "Store" operation as if it is Arg0=0.

 

:(

Link to comment
Share on other sites

wow thanks! I just compared the original from my DSDT

 Device (USB4)
		{
			Name (_ADR, 0x001D0003)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x0E, 0x04))
			}
		}

with your code. Therefore in your section

Name (_PRW, Package (0x02)
					{
						0x0E,
						0x03
					})

the 0x03 does not make sense to me. How do you know that 3 is the right number here?

 

I understand the general logic behind it now thanks to you, but for me to understand the pattern would you please be so kind and post the mod for another USB device. I think then I can go ahead with the remaining two and expand them myself. Let's say this one:

 Device (USB1)
		{
			Name (_ADR, 0x001D0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x03, 0x04))
			}
		}

 

Thanks for teaching :( !

Link to comment
Share on other sites

BugsB, I think you have lost. :( Control method we're talking earlier is _PSW, not _PRW. You don't have to change _PRW, just need to add _PSW control method. Don't need to change anything else. The USB code I post earlier is just an example to show how I modify the _PSW control method.

Link to comment
Share on other sites

OK so are you saying you want me to turn

Device (USB4)
		{
			Name (_ADR, 0x001D0003)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x0E, 0x04))
			}
		}

into

Device (USB4)
		{
			Name (_ADR, 0x001D0003)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x0E, 0x04))
			}
			Method (_PSW, 1, NotSerialized)
					{
						If (Arg0)
						{
							// Store (0x04, U4EN)
							// Disable USB4 capability to wake a sleeping system
							Store (0x00, U4EN)
						}
						Else
						{
							Store (0x00, U4EN)
						}
					}
		}

and

 Device (USB1)
		{
			Name (_ADR, 0x001D0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x03, 0x04))
			}
		}

into

 Device (USB1)
		{
			Name (_ADR, 0x001D0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x03, 0x04))
			}
			Method (_PSW, 1, NotSerialized)
					{
						If (Arg0)
						{
							// Store (0x03, U1EN)
							// Disable USB1 capability to wake a sleeping system
							Store (0x00, U1EN)
						}
						Else
						{
							Store (0x00, U1EN)
						}
					}
		}

is this code correct now? The Return (GPRW etc. needs to remain?

 

[EDIT]: there is no reference whatsoever to UxEN in my DSDT. That must be specific to yours.

 

wait - I just saw that after patching DTGP, ICH9 USB and IRQ with DSDT Editor which seems to have fixed all other issues, USB1-3 are now looking like this:

			Device (USB1)
		{
			Name (_ADR, 0x001D0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (GPRW (0x03, 0x04))
			}
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x02)
					{
						"device-id", 
						Buffer (0x04)
						{
							0x34, 0x3A, 0x00, 0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

only USB4 remained unpatched, whyever .. outch ..

 

Kizwan, can you add the _PSW control method appropriate for my DSDT into above sample so I see what you mean?

Link to comment
Share on other sites

Yes but with correction. Which chipset do you have? Was it ICH7? This is your USB1 after modification, based on my DSDT:-

			Device (USB1)
		 {
			 Name (_ADR, 0x001D0000)
			 // add for _PSW control method
			 OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
			 Field (U1CS, DWordAcc, NoLock, Preserve)
			 {
				 U1EN,   2
			 }
			 // end
			 Method (_PRW, 0, NotSerialized)
			 {
				 Return (GPRW (0x03, 0x04))
			 }
			 // add _PSW control method
			 Method (_PSW, 1, NotSerialized)
			 {
				 If (Arg0)
				 {
					 // Store (0x03, U1EN)
					 // Disable USB1 capability to wake a sleeping system
					 Store (Zero, U1EN)
				 }
				 Else
				 {
					 Store (Zero, U1EN)
				 }
			 }
			 // end
			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x02)
					 {
						 "device-id", 
						 Buffer (0x04)
						 {
							 0x34, 0x3A, 0x00, 0x00
						 }
					 }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				 Return (Local0)
			 }
		 }

Same goes to your USB2:-

			Device (USB2)
		 {
			 Name (_ADR, 0x001D0001)
			 // add for _PSW control method
			 OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
			 Field (U2CS, DWordAcc, NoLock, Preserve)
			 {
				 U2EN,   2
			 }
			 // end
			 Method (_PRW, 0, NotSerialized)
			 {
				 Return (GPRW (0x04, 0x04))
			 }
			 // add _PSW control method
			 Method (_PSW, 1, NotSerialized)
			 {
				 If (Arg0)
				 {
					 // Store (0x03, U2EN)
					 // Disable USB2 capability to wake a sleeping system
					 Store (Zero, U2EN)
				 }
				 Else
				 {
					 Store (Zero, U2EN)
				 }
			 }
			 // end
			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x02)
					 {
						 "device-id", 
						 Buffer (0x04)
						 {
							 0x35, 0x3A, 0x00, 0x00
						 }
					 }, Local0)
				 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				 Return (Local0)
			 }
		 }

Proceed with USB3 & USB4. Hope you see the pattern here.

Link to comment
Share on other sites

Yes, Intel 945GC / ICH7. On compile I get "Error: U1EN/U2EN etc. does not exist". The only other method which uses _PRW at all in this DSDT is Method (PS2K._PSW, 1, NotSerialized). When I use KBFG instead UxEN I get "Error: Object is not accessible from this scope". I looked at where and how KBFG but that is too tricky. Darn - seems I'm stuck now :borg: <-- was referring to code from two postings above. What you posted in your last posting actually compiled, yippie. I am working on a corporate project parallel so please excuse my bit if confusion. Will test aml in the morning and report back, but this looks good now :)

Link to comment
Share on other sites

Yes, Intel 945GC / ICH7. On compile I get "Error: U1EN/U2EN etc. does not exist". The only other method which uses _PRW at all in this DSDT is Method (PS2K._PSW, 1, NotSerialized). When I use KBFG instead UxEN I get "Error: Object is not accessible from this scope". I looked at where and how KBFG but that is too tricky. Darn - seems I'm stuck now :)

Please refer to my previous post, I also add OperationRegion code. I managed to add the _PSW control method to your DSDT & it compiled without any error.

EDIT:-

Yes, Intel 945GC / ICH7. On compile I get "Error: U1EN/U2EN etc. does not exist". The only other method which uses _PRW at all in this DSDT is Method (PS2K._PSW, 1, NotSerialized). When I use KBFG instead UxEN I get "Error: Object is not accessible from this scope". I looked at where and how KBFG but that is too tricky. Darn - seems I'm stuck now :borg: <-- was referring to code from two postings above. What you posted in your last posting actually compiled, yippie. I am working on a corporate project parallel so please excuse my bit if confusion. Will test aml in the morning and report back, but this looks good now :)

No problem. :borg:

Link to comment
Share on other sites

Hi Kizwan,

 

I have a similar issue and I am hoping you can help. I am on an HP 311, and every time I sleep the computer the WWAN card wakes it up:

 

8/26/10 2:50:17 PM	kernel	System Sleep
8/26/10 2:50:21 PM	kernel	Wake reason = USB0
8/26/10 2:50:21 PM	kernel	System Wake
8/26/10 2:50:21 PM	kernel	Previous Sleep Cause: 0
8/26/10 2:50:21 PM	kernel	VoodooHDADevice[0x30e04000]::resume
8/26/10 2:50:21 PM	kernel	Resetting controller...
8/26/10 2:50:21 PM	kernel	USB (EHCI):Port 4 on bus 0x24 connected or disconnected: portSC(0x103802)
8/26/10 2:50:21 PM	kernel	USB (EHCI):Port 2 on bus 0x26 connected or disconnected: portSC(0x301803)
8/26/10 2:50:21 PM	kernel	The USB device HP Webcam-50 (Port 2 of Hub at 0x26000000) may have caused a wake by being disconnected
8/26/10 2:50:21 PM	kernel	Recsel fails src=010001c0 oss=00000000
8/26/10 2:50:21 PM	kernel	Enabling output audio routing switching at node 11:
8/26/10 2:50:21 PM	kernel	The USB device HP Integrated Module (Port 4 of Hub at 0x4000000) may have caused a wake by being disconnected
8/26/10 2:50:21 PM	kernel	The USB device AirCard (Port 5 of Hub at 0x4000000) may have caused a wake by being disconnected

 

My USB0 section looks like this:

 

			Device (USB0)
		{
			Name (_ADR, 0x00040000)
			Method (_S1D, 0, NotSerialized)
			{
				Return (One)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x03)
			}

			Name (_PRW, Package (0x02)
			{
				0x0D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x03)
					{
						"AAPL,device-internal", 
						0x60, 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}

			Device (RHUB)
			{
				Name (_ADR, Zero)
				Device (PRT0)
				{
					Name (_ADR, One)
					Name (_UPC, Package (0x04)
					{
						0xFF, 
						Zero, 
						Zero, 
						Zero
					})
				}

				Device (PRT2)
				{
					Name (_ADR, 0x02)
					Name (_UPC, Package (0x04)
					{
						0xFF, 
						Zero, 
						Zero, 
						Zero
					})
				}

				Device (PRT4)
				{
					Name (_ADR, 0x03)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}

				Device (PRT6)
				{
					Name (_ADR, 0x04)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}

				Device (PRT8)
				{
					Name (_ADR, 0x05)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}

				Device (PT10)
				{
					Name (_ADR, 0x06)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}
			}
		}

 

Strangely..just following USB0 is USB1, and it seems awfully similar??(there is also a USB2 and a counterpart of that as well)

 

	Device (USB1)
		{
			Name (_ADR, 0x00040001)
			OperationRegion (P020, PCI_Config, 0x49, One)
			Field (P020, AnyAcc, NoLock, Preserve)
			{
				U0WK,   1
			}

			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x05)
					{
						"AAPL,clock-id", 
						0x02, 
						"AAPL,device-internal", 
						0x10, 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (Zero, U0WK)
				}
				Else
				{
					Store (Zero, U0WK)
				}
			}

			Method (_S1D, 0, NotSerialized)
			{
				Return (One)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (One)
			}

			Name (_PRW, Package (0x02)
			{
				0x05, 
				Zero
			})
			Device (RHUB)
			{
				Name (_ADR, Zero)
				Device (PRT0)
				{
					Name (_ADR, One)
					Name (_UPC, Package (0x04)
					{
						0xFF, 
						Zero, 
						Zero, 
						Zero
					})
				}

				Device (PRT2)
				{
					Name (_ADR, 0x02)
					Name (_UPC, Package (0x04)
					{
						0xFF, 
						Zero, 
						Zero, 
						Zero
					})
				}

				Device (PRT4)
				{
					Name (_ADR, 0x03)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}

				Device (PRT6)
				{
					Name (_ADR, 0x04)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}

				Device (PRT8)
				{
					Name (_ADR, 0x05)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}

				Device (PT10)
				{
					Name (_ADR, 0x06)
					Name (_UPC, Package (0x04)
					{
						Zero, 
						0xFF, 
						Zero, 
						Zero
					})
				}
			}
		}

Any help you can offer would be greatly appreciated!

Link to comment
Share on other sites

  • 1 month later...

FINALLY, got it WORKING !!

 

Sorry it took that long. It did not work with kizwan's code instructions - verified each line from USB 1 -4 several times, I had scripted everything right. I got frustrated, then real life had a more-than-tight grip on me ..

 

Then I did some more research and stumbled across this posting from gsam_fan over at projectosx.com. He made a mistake in his code sample, so before you struggle too long, here's what you need to do for each USB device if you want to disable wake-from-sleep for it:

------------------------------------------------------------------------------------- delete from here
			 Method (_PRW, 0, NotSerialized)
			 {
				 Return (GPRW (0x03, 0x04))
			 }
-------------------------------------------------------------------------------------  to here

actually, since - for documentation and future guideline, I like to keep code rather than delete it, this is how I did it:

------------------------------------------------------------------------------------- 
			 // Method (_PRW, 0, NotSerialized)
			 // {
			 //	Return (GPRW (0x03, 0x04))
			 // }
-------------------------------------------------------------------------------------

Thank you kizwan and gsam_fan :rolleyes: ! Working DSDT (based on BIOS v.403) for the ASUS AT3GC-I attached.

 

@ movingmage: maybe this helps you, too? Don't know, though. You said WLAN but I saw that that the wake event was caused by USB0, so I guess you have a USB WLAN adapter connected?

 

PS: however, wake-from-sleep via power-button does NOT work when my Dell PS/2 mouse is plugged in (fan starts spinning but blank screen), even though moving or clicking the mouse does NOT invoke a wake-event. Tried ALL PS/2 kexts out there which I could get a hold of (quite a lot, actually).

 

Wake-from-sleep works with a PS/2 keyboard plugged in, so what the heck. Four USB ports + the 1 port for the kb are enough, I can live with that. On request I would post the PS/2 section of the Asus' DSDT if somebody wants to check it out and fiddle with it.

ASUS_AT3GC_I_DSDT.ZIP

Link to comment
Share on other sites

Hi Kizwan,

 

I have a similar issue and I am hoping you can help. I am on an HP 311, and every time I sleep the computer the WWAN card wakes it up:

 

8/26/10 2:50:17 PM	kernel	System Sleep
8/26/10 2:50:21 PM	kernel	Wake reason = USB0
8/26/10 2:50:21 PM	kernel	System Wake
8/26/10 2:50:21 PM	kernel	Previous Sleep Cause: 0
8/26/10 2:50:21 PM	kernel	VoodooHDADevice[0x30e04000]::resume
8/26/10 2:50:21 PM	kernel	Resetting controller...
8/26/10 2:50:21 PM	kernel	USB (EHCI):Port 4 on bus 0x24 connected or disconnected: portSC(0x103802)
8/26/10 2:50:21 PM	kernel	USB (EHCI):Port 2 on bus 0x26 connected or disconnected: portSC(0x301803)
8/26/10 2:50:21 PM	kernel	The USB device HP Webcam-50 (Port 2 of Hub at 0x26000000) may have caused a wake by being disconnected
8/26/10 2:50:21 PM	kernel	Recsel fails src=010001c0 oss=00000000
8/26/10 2:50:21 PM	kernel	Enabling output audio routing switching at node 11:
8/26/10 2:50:21 PM	kernel	The USB device HP Integrated Module (Port 4 of Hub at 0x4000000) may have caused a wake by being disconnected
8/26/10 2:50:21 PM	kernel	The USB device AirCard (Port 5 of Hub at 0x4000000) may have caused a wake by being disconnected

@movingimage, sorry for late reply. It seems I haven't got notification when somebody post over here. Anyway, looks like BugsB have found the solution. I believe you can use the BugsB's solution to solve your problem. Since USB0 wake your computer, just pay attention/change USB0 only. If you have problem making the changes, please post your DSDT here.

Link to comment
Share on other sites

  • 3 weeks later...
 Share

×
×
  • Create New...