Date: Thu, 25 Oct 2007 12:34:58 -0400 From: John Baldwin <jhb@freebsd.org> To: Tom Judge <tom@tomjudge.com> Cc: njl@freebsd.org, freebsd-mobile@freebsd.org Subject: Re: ACPI Attach (acpi_ibm) stops mouse from working Message-ID: <200710251234.59272.jhb@freebsd.org> In-Reply-To: <471FCE4C.70303@tomjudge.com> References: <471CCA24.4080400@tomjudge.com> <200710232328.18947.jhb@freebsd.org> <471FCE4C.70303@tomjudge.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 24 October 2007 06:59:24 pm Tom Judge wrote: > John Baldwin wrote: > > On Monday 22 October 2007 12:04:52 pm Tom Judge wrote: > >> Hi, > >> > >> > >> I have recently setup an IBM/Lenovo T43 with RELENG_7 as of mid last > >> week, however I have a problem with the acpi_ibm module. > >> > >> If I add acpi_ibm_load="YES" to loader.conf I get the following message > >> during boot: > >> > >> psm0: unable to allocate IRQ > >> > >> This is followed by a message stating that the acpi_ibm module has > >> attached to IRQ 12. > >> > >> If I remove this module from loader.conf and boot the system the mouse > >> attaches and works as expected. If I then kldload acpi_ibm the module > >> attaches to acpi0. > >> > >> > >> Is there any way to make this work without loading the acpi module after > >> boot? > > > > Can you provide your acpidump as well as devinfo -rv output from both cases? > > (i.e. when it is loaded at boot and when it is kldloaded after boot) > > > Hi, > > After spending many hours trying to reproduce this I have narrowed it > down to the order in which the modules are loaded (and by nature listed > in /boot/loader.conf). It seems that the psm will only attach when > acpi_ibm is listed at the end of loader.conf. > > I have run a sequence of tests and gathered the following data > > acpidump -dt > devinfo -rv > /var/run/dmesg.boot > Kernel config (T43) > > The file names are in the format {data}-{acpi_ibm_load line number in > loader.conf}-{good=psm attached/bad=psm failed to attach} > > The files are avaliable here: http://www.tomjudge.com/tmp/debug.tgz > > If you want any more information please let me know. You BIOS makes your PS/2 mouse show up as an acpi_ibm(4) device which is your problem. acpi_ibm(4) looks for two different IDs: static char *ibm_ids[] = {"IBM0057", "IBM0068", NULL}; Your hotkey device shows up as "IBM0068": Device (HKEY) { Name (_HID, EisaId ("IBM0068")) ... } You mouse has a split personality and picks the "IBM" ID during boot via the MOU.MHID() method: Scope (\_SB) { Method (_INI, 0, NotSerialized) { ... \_SB.PCI0.LPC.MOU.MHID () ... } ... Device (MOU) { Name (_HID, EisaId ("IBM3780")) Name (_CID, 0x130FD041) Name (_CRS, ResourceTemplate () { IRQNoFlags () {12} }) Method (MHID, 0, NotSerialized) { If (\_SB.PCI0.LPC.PADD) { Store (0x80374D24, _HID) } Else { Store (0x57004D24, _HID) } } } ... } So, it starts out as "IBM3780", but if 'PADD' is zero (maybe changed via a BIOS setting?) it uses "IBM0057" which causes acpi_ibm(4) to attach to this device if it sees it before the psm(4) driver sees it. The linux acpi_ibm driver only attaches to IBM0068 FWIW. You can try removing "IBM0057" from the ID list in acpi_ibm.c, that should fix your mouse issue. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710251234.59272.jhb>