2.6.22-rc: regression: no irda0 interface (2.6.21 was OK), smsc does not find chip

Bjorn Helgaas bjorn.helgaas at hp.com
Sun Jun 10 17:03:28 EDT 2007

On Sunday 10 June 2007 12:47:07 am Andrey Borzenkov wrote:
> > Maybe we should also run the legacy probe when the PnP one fails. I
> > don't know how the preconfiguration stuff will behave with the device
> > being PnP enabled, but with your patch Andrey will still need to
> > modprobe smsc-ircc with smsc_nopnp.
> One thing that makes me uneasy - ideally we have to do it *after* PnP probe 
> fails. Currently we lie to PnP layer that we successfully probed for device 
> while in effect we did not (at least, not where PnP told us to).
> > So, here is the patch I propose (I had to move smsc_ircc_legacy_probe()
> > a bit earlier in the code to avoid forward declaration, but it's
> > basically your patch plus a call to smsc_ircc_legacy_probe() from the
> > pnp_probe() routine):

This patch does the legacy probe if PNP says we have an SMCf010, but
we couldn't make it work.  In that situation, I think we need a PNP
quirk or other kernel PNP fix.  Ultimately, we should only use the
legacy probe if we don't have PNP at all.  

But we're a long ways from that.  First, we have to figure out how
to make PNP detection work at all, then make sure it works for all
the machines we know about.

> Yes this patch works:
> [58674.337465] pnp: Device 00:0a activated.
> [58674.337465] smsc_ircc_present(), addr 0x02e8 - no device found!
> [58674.337465] PnP probe failed
> [58674.340799] Detected unconfigured Toshiba laptop with ALi ISA bridge SMSC 
> IrDA chip, pre-configuring device.

So while this patch works, I don't think it's the right long-term

> {pts/1}% lspnp -vv 00:0a
> 00:0a SMCf010 SMC Fast Infrared Port
>     state = active
>     allocated resources:
>         io 0x100-0x107
> ...

> {pts/1}% cat /proc/ioports
> ...
> 0100-013f : pcmcia_socket0
> ...

> {pts/1}% sudo cat /sys/class/pcmcia_socket/pcmcia_socket0/available_resources_io
> 0x00000100 - 0x000003af
> 0x000003e0 - 0x000004ff
> 0x00000820 - 0x000008ff
> 0x00000a00 - 0x00000aff
> 0x00000c00 - 0x00000cf7

It's indeed very interesting that pcmcia_socket0 seems to have its
fingers in the same ioport range the IR device thinks it's using.
I don't know much about PCMCIA, but I can see I'm going to have to
learn something :-)

Can you send me your "lspci -vv" output, the whole /proc/ioports and
/proc/iomem, and your dmesg log?  And maybe your pcmcia_socket
available_resources_io and available_resources_mem for good measure.


More information about the linux-pcmcia mailing list