[ltp] /proc/acpi/ibm/bay gone with ThinkPad ACPI Extras v0.19-20080107/2.6.24

Marc MERLIN linux-thinkpad@linux-thinkpad.org
Thu, 31 Jan 2008 00:05:09 +1100


On Wed, Jan 30, 2008 at 10:36:36AM -0200, Henrique de Moraes Holschuh wrote:
> On Wed, 30 Jan 2008, Marc MERLIN wrote:
> > thinkpad_acpi: ThinkPad BIOS 7FETA4WW (2.22 ), EC 7FHT26WW-1.08
> > thinkpad_acpi: Lenovo ThinkPad Z61p
> > 
> > I am also slightly confused about the bay driver in 2.6.24:
kernel: ACPI: \_SB_.PCI0.IDE0.PRIM.MSTR: found ejectable bay
kernel: ACPI: \_SB_.PCI0.IDE0.PRIM.MSTR: Adding notify handler
kernel: ACPI: Error installing bay notify handler
kernel: ACPI: Bay [\_SB_.PCI0.IDE0.PRIM.MSTR] Added
> 
> I will look into this, it should have screamed bloody murder and refused to
> load: without the notify handler, it won't work right(!), although it
> *would* be able to command the thinkpad to eject the bay.
 
Just to confirm, I could eject for 2.6.22.15 but not 2.6.24 (I get no
eject even in acpid, and no /proc/acpi/ibm/bay)

> > 1) what's this 'Error installing bay notify handler' which I've always
> >    had?
> 
> It means another driver is already handling that ACPI node, and only one
> driver at a time can handle an ACPI node.
 
Sounds fair. Is that a kernel acpi bay vs thinkpad_acpi problem both
fighting for the bay? If so, who should handle it in 2.6.24?

> I.e. you have ACPI bay.c loaded.

Yes, it's bay.c that generated the above:

gandalf:~# tail -n0 -f /var/log/kern.log | sed "s/*.kernel: /kernel: /" &
[1] 11836
gandalf:~# rmmod bay 
kernel: ACPI Exception (evxface-0544): AE_BAD_PARAMETER, Removing notify handler [20070126]                              
gandalf:~# rmmod thinkpad_acpi 
gandalf:~# modprobe bay
kernel: ACPI: \_SB_.PCI0.IDE0.PRIM.MSTR: found ejectable bay
kernel: ACPI: \_SB_.PCI0.IDE0.PRIM.MSTR: Adding notify handler
kernel: ACPI: Error installing bay notify handler
kernel: ACPI: Bay [\_SB_.PCI0.IDE0.PRIM.MSTR] Added
gandalf:~# find /proc | grep bay
gandalf:~# rmmod bay
kernel: ACPI Exception (evxface-0544): AE_BAD_PARAMETER, Removing notify handler [20070126]
gandalf:~# modprobe thinkpad_acpi 
kernel: thinkpad_acpi: ThinkPad ACPI Extras v0.19-20080107
kernel: thinkpad_acpi: http://ibm-acpi.sf.net/
kernel: thinkpad_acpi: ThinkPad BIOS 7FETA4WW (2.22 ), EC 7FHT26WW-1.08
kernel: thinkpad_acpi: Lenovo ThinkPad Z61p
kernel: thinkpad_acpi: radio switch found; radios are enabled
kernel: thinkpad_acpi: standard ACPI backlight interface available, not loading native one...
kernel: input: ThinkPad Extra Buttons as /devices/virtual/input/input26
gandalf:~# l /proc/acpi/ibm/bay 
ls: /proc/acpi/ibm/bay: No such file or directo

> > 2) why does the kernel config say that this bay driver is supposed to work
> >    on thinkpads when it looks like it never worked for me and I always had
> >    the bay driver from {ibm,thinkpad}-acpi
> 
> Which kernel config?  The ACPI generic bay driver *does* work on any

2.6.24:
 .config - Linux Kernel v2.6.24-hdaps-tpacpi0.19-p4core2smp-preempt-1khz-noticks
-qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  lqqqqqqqqqqqqqqqqqq Removable Drive Bay (EXPERIMENTAL) qqqqqqqqqqqqqqqqqqqk
  x CONFIG_ACPI_BAY:                                                        x  
  x                                                                         x  
  x This driver adds support for ACPI controlled removable drive            x  
  x bays such as the IBM ultrabay or the Dell Module Bay.

> thinkpads with hotswap bays.  It won't work on some older thinkpads that do
> warmswap (tell it to eject, SLEEP, remove device, WAKE), but I am not sure
> even thinkpad-acpi would work right with warmswap.
 
I guess that doesn't apply to me. I think I never got bay to work with
2.6.22, but thinkpad-acpi bay was working fine, generating events in acpid, and
letting me unregister the ide device.

> > Also, note that I also patched drivers/misc/thinkpad_acpi.c as recommended
> > by tytso to add \_SB_.PCI0.IDE0.PRIM.MSTR: as per
> > http://www.mail-archive.com/linux-acpi%40vger.kernel.org/msg04716.html
> > As per the messages I got above, it looks like my Z61p with sata but IDE
> > ultrabay still requires this patch which isn't in mainline.
> 
> And it will never be, it breaks other thinkpads. I would have to rewrite the
> bay handler to fix it, and sincerely, it is deprecated and not worth the
> bother, UNLESS ACPI bay never works right (which, AFAIK, isn't true).
> 
> I will probably remove bay and dock handling from thinkpad-acpi in 2.6.26,
> since ACPI generic bay is supposed to start working for batteries in 2.6.25.

Ok, so from what I understand, /proc/acpi/ibm/bay was meant to be removed from
thinkpad-acpi, but my problem is that I was relying on /proc/acpi/ibm/bay and
I'm currently out of luck because kernel CONFIG_ACPI_BAY doesn't work on my Z61p.
Correct?

If so, let me know what info I can give you, and I'll see if I can
revert to an older thinkpad-acpi that still has /proc/acpi/ibm/bay
working on 2.6.24, or just plain revert to 2.6.22.15 otherwise.

Does that sound right?

As for \_SB_.PCI0.IDE0.PRIM.MSTR, am I supposed to keep patching that in the kernel, 
or are things supposed to work without it for me, considering that my bay does seem
to be there according to:
kernel: ACPI: \_SB_.PCI0.IDE0.PRIM.MSTR: found ejectable bay

Thanks,
Marc
-- 
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems & security ....
                                      .... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/