[ltp] DMA hotswap 0.2.0

Pezhman Givy linux-thinkpad@linux-thinkpad.org
Wed, 22 Feb 2006 14:56:02 +0100


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Cool! It works here on T42p.
Kernel version is 2.6.15.

Ejecting and inserting DVD-ROM works perfectly:

Feb 22 14:38:16 localhost kernel: lt_hotswap: Requesting IDE eject!
Feb 22 14:38:16 localhost kernel: lt_hotswap: Attempting to eject
Feb 22 14:38:48 localhost kernel: Mate c0408fa0 channel 1
Feb 22 14:38:48 localhost kernel:     ide1: BM-DMA at 0x1868-0x186f,
BIOS settings: hdc:DMA, hdd:pio
Feb 22 14:38:48 localhost kernel: hdc: MATSHITADVD-RAM UJ-822S, ATAPI
CD/DVD-ROM drive
Feb 22 14:38:49 localhost kernel: ide1 at 0x170-0x177,0x376 on irq 15
Feb 22 14:38:49 localhost kernel: hdc: ATAPI 24X DVD-ROM DVD-R-RAM
CD-R/RW drive, 2048kB Cache, UDMA(33)


But inserting an Ultra-Bay Battery results in following messages:

Feb 22 14:44:17 localhost kernel: lt_hotswap: Requesting IDE eject!
Feb 22 14:44:17 localhost kernel: lt_hotswap: Attempting to eject
Feb 22 14:44:34 localhost kernel: acpi_bus-0073 [340374] bus_get_device
       : No context for object [c20d8e68]
Feb 22 14:44:34 localhost kernel: acpi_bus-0073 [340373] bus_get_device
       : No context for object [c20d8e68]
Feb 22 14:44:34 localhost kernel: acpi_bus-0073 [340373] bus_get_device
       : No context for object [c20d8e68]
Feb 22 14:44:34 localhost kernel:  dswload-0292: *** Error: Looking up
[SERN] in namespace, AE_ALREADY_EXISTS
Feb 22 14:44:34 localhost kernel:   psloop-0287 [340389] ps_parse_loop
       : During name lookup/catalog, AE_ALREADY_EXISTS
Feb 22 14:44:34 localhost kernel:  psparse-0508: *** Error: Method
execution failed [\_SB_.PCI0.LPC_.EC__.GBIF] (Node c20d92e8),
AE_ALREADY_EXISTS
Feb 22 14:44:34 localhost kernel:      osl-0854 [340393]
os_wait_semaphore     : Failed to acquire semaphore[dfffe5e0|1|0], AE_TIME
Feb 22 14:44:34 localhost kernel: ACPI: Battery Slot [BAT1] (battery
present)
Feb 22 14:44:34 localhost kernel: lt_hotswap: Old handler found!
00000002 00000000 c213cdbc
Feb 22 14:44:34 localhost kernel: lt_hotswap: Calling old handler,
c02182f9 f5dd2260
Feb 22 14:44:37 localhost kernel: dsmethod-0213: *** Error: Method
reached maximum reentrancy limit (255)
Feb 22 14:44:37 localhost kernel:  psparse-0508: *** Error: Method
execution failed [\_SB_.PCI0.LPC_.EC__.BAT0._BIF] (Node c20d8f28),
AE_AML_METHOD_LIMIT
Feb 22 14:44:37 localhost kernel: acpi_battery-0144 [340367]
battery_get_info      : Error evaluating _BIF
Feb 22 14:44:39 localhost kernel: lt_hotswap: Calling old handler,
c02182f9 f5dd2260
Feb 22 14:44:40 localhost kernel: dsmethod-0213: *** Error: Method
reached maximum reentrancy limit (255)
Feb 22 14:44:40 localhost kernel:  psparse-0508: *** Error: Method
execution failed [\_SB_.PCI0.LPC_.EC__.BAT0._BIF] (Node c20d8f28),
AE_AML_METHOD_LIMIT
Feb 22 14:44:40 localhost kernel: acpi_battery-0144 [340374]
battery_get_info      : Error evaluating _BIF
Feb 22 14:44:44 localhost kernel: dsmethod-0213: *** Error: Method
reached maximum reentrancy limit (255)
Feb 22 14:44:44 localhost kernel:  psparse-0508: *** Error: Method
execution failed [\_SB_.PCI0.LPC_.EC__.BAT0._BIF] (Node c20d8f28),
AE_AML_METHOD_LIMIT
Feb 22 14:44:44 localhost kernel: acpi_battery-0144 [340379]
battery_get_info      : Error evaluating _BIF
Feb 22 14:44:47 localhost kernel: dsmethod-0213: *** Error: Method
reached maximum reentrancy limit (255)
Feb 22 14:44:47 localhost kernel:  psparse-0508: *** Error: Method
execution failed [\_SB_.PCI0.LPC_.EC__.BAT0._BIF] (Node c20d8f28),
AE_AML_METHOD_LIMIT

And so on. And

cat /proc/acpi/battery/BAT?/info

results in

present:                 yes
ERROR: Unable to read battery information
present:                 yes
ERROR: Unable to read battery information

Greetings

Pezhman


Jim Duchek wrote:
> http://churchofjim.org/sources/lt_hotswap-0.2.0.tar.gz
> 
> There were some issues with DMA setup.  It's much, much better now,
> although it's a pretty kludgy solution.
> 
> Use the auto_eject=1 command-line option until you think you're getting
> clean ide1 un/reregisters.  Then switch to the userspace acpid  stuff --
> trust me, it's a better idea and you're less likely to dick up your
> system.  Remember that with auto_eject=1, you _must_ have everything
> umounted and make sure you're not using it, or your system is going to
> get really confused. 
> 
> See configs/lths.sh (it gets installed in /usr/local/sbin) for 'what
> userspace stuff it should do upon insertion/removal'.  You probably want
> to customize it.
> 
> If you do 'make install' it'll put the module and acpi scripts in
> (probably, anyway ;) the right places.  Restart acpid, load the kernel
> module, and you should be in business.
> 
> Oh, when you load the module at boot, make sure it loads AFTER
> everything else ACPI.  I dig around in some internal ACPI stuff and
> things need to already be in place.
> 
> Jim
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Debian - http://enigmail.mozdev.org

iD8DBQFD/G1yz6aJiiMTCIwRAlHcAKCu7oDSbi8UlDZlsVBc4BRxZmUjlgCaAw+v
LpTIoyscKOJw1/1KLe6+tHw=
=ORlX
-----END PGP SIGNATURE-----