No psm with if_ath on current

John Baldwin jhb at freebsd.org
Thu Oct 19 20:58:11 UTC 2006


On Thursday 19 October 2006 15:19, Kevin Oberman wrote:
> > From: John Baldwin <jhb at freebsd.org>
> > Date: Thu, 19 Oct 2006 13:12:43 -0400
> > 
> > On Thursday 19 October 2006 12:50, Kevin Oberman wrote:
> > > 527,533c548
> > > < psmcpnp0: <PS/2 mouse port> irq 12 on acpi0
> > > < psm0: current command byte:0047
> > > < psm0: <PS/2 Mouse> flags 0x2000 irq 12 on atkbdc0
> > > < psm0: [GIANT-LOCKED]
> > > < psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons
> > > < psm0: config:00002000, flags:00000008, packet size:3
> > > < psm0: syncmask:c0, syncbits:00
> > > ---
> > > > acpi_ibm0: <IBM ThinkPad ACPI Extras> irq 12 on acpi0
> > > 549d563
> > > < acpi_ibm0: <IBM ThinkPad ACPI Extras> on acpi0
> > 
> > This is odd.  Do you have your ASL handy, and can you show the
> > 'devinfo -v' line for acpi_ibm0 for the 2 cases (w/ if_ath and w/o)?
> 
> The ASL is available at:
> <http://home.comcast.net/~ykoberman/FreeBSD/T43.asl> 
> 
> if_ath loaded before boot. No psm found.
>     acpi_ibm0 pnpinfo _HID=IBM0057 _UID=0 at handle=\_SB_.PCI0.LPC_.MOU_
> 
> if_ath loaded after boot. psm available.
>     acpi_ibm0 pnpinfo _HID=IBM0068 _UID=0 at 
handle=\_SB_.PCI0.LPC_.EC__.HKEY
> 
> If I understand this (and I probably don't) this is really weird.

Yeah, your mouse normally has an ACPI ID of IBM3870, not 0057.  That's really 
odd.

                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)
                        }
                    }
                }

Oh, wait, the MHID thing changes it.  Hmm, PADD is some byte (bit?) in memory 
and it's getting changed for some reason.  You can sabotage your ASL and use 
a custom DSDT that always forces it to IBM3780.  You can also maybe hack 
acpi_ibm to not attach to a device that matches the PS/2 mouse device.  Or 
give acpi_ibm a lower priority than the psm driver.  You can do this it looks 
like by just changing acpi_ibm_probe() to return BUS_PROBE_DEFAULT instead of 
0 on success.

-- 
John Baldwin


More information about the freebsd-mobile mailing list