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