On Wed, Dec 08, 2010 at 09:58:35PM +0200, Gleb Natapov wrote:
On Wed, Dec 08, 2010 at 04:01:18PM -0200, Marcelo Tosatti wrote:
On Wed, Dec 08, 2010 at 07:34:42PM +0200, Gleb Natapov wrote:
On Wed, Dec 08, 2010 at 03:08:59PM -0200, Marcelo Tosatti wrote:
Use _RMV method to indicate whether device can be removed.
But Windows still shows device as removable in the gui and allows to remove it, correct?
No. From "Designing Hardware for Surprise Removal under Windows XP" document:
"An ACPI BIOS can override the Removable capability by using the _RMV method ..."
Cool. I wonder how it co-exists with _EJ0 method for the same device.
The Linux driver, at least, will use the _EJ0 method of the first device object. I guess Windows does the same.
+#define gen_pci_device(name, nr) \
Device(SL##name) { \
Name (_ADR, nr##0000) \
Method (_RMV) { \
If (And(\_SB.PCI0.PCRM, ShiftLeft(1, nr))) { \
Return (0x1) \
} \
Return (0x0) \
} \
Name (_SUN, name) \
}
Why not add this to hotplug_slot() macro?
Because its ignored if declared in the device object thats a child of SB.PCI0 (hotplug_slot).
Any idea why?
-- Gleb.
Because _EJ0 overrides _RMV when deciding removability, inside a device object (just checked). So the above "if declared in a child of SB.PCI0..." is wrong.