No psm with if_ath on current

John Baldwin jhb at freebsd.org
Thu Oct 19 22:04:23 UTC 2006


On Thursday 19 October 2006 17:07, Kevin Oberman wrote:
> > From: John Baldwin <jhb at freebsd.org>
> > Date: Thu, 19 Oct 2006 16:55:51 -0400
> > 
> > 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.
> 
> Ah. This all makes sense (and is still weird), but why does having
> if_ath loaded trigger the problem? I may be missing something
> fundamental, but I don't see the link. Does probing ath cause the probes
> to re-order or something?

I have no idea on that one.

> I'll take a look at hacking acpi_ibm in a bit. I get uncomfortable about
> hacking the DSDT, although I have done it in the past for broken cases
> (like my old K6-3 system).

Yeah, hacking acpi_ibm() is probably better.  It's a simple 
s/0/BUS_DEFAULT_PROBE/.

-- 
John Baldwin


More information about the freebsd-mobile mailing list