Individual Computers' Catweasel card incorrectly detected by serial driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi everyone,

Individual Computers is basically a single-man company, which manufacturers some boards for old Amiga and C64 enthusiasts. There are a few hundred of these boards in circulation.

The board I have, the Catweasel Mk4, has PCI ID e159:0001. (This unfortunately belongs to TigerJet 300 ISDN device, because the Individual Computers is not registered.) It has ports for things like Amiga mice and keyboards, and I'm guessing these may be serial in nature. Whatever the reason, it classes itself as a serial communications controller.

I have a custom driver for this hardware, which used to work some half a year ago, probably on 2.6.20. It seems that with 2.6.22, the custom driver does not probe the Catweasel card any longer. Upon investigation, I found out that the serial driver has claimed it: it contains a guessing logic that will claim almost any serial communications controller for itself.

I'm looking for a way to make serial driver give that one device up. Which one of these solutions would seem most acceptable, on the level that a small patch could be placed in 8250_pci.c or elsewhere:

1) during generic probe, immediately return if the dev->vendor == PCI_VENDOR_ID_TIGERJET and dev->device == PCI_VENDOR_ID_TIGERJET_300 with comment that explains that this really targets Individual Computer's Catweasel line of cards. There should be no harm to TigerJet 300 because it is an ISDN device with its own driver.

2) have a kernel commandline option or module option that says "do not attempt generic serial probe on this system". This could be defensible on the grounds that generic probes can't always work, so there should be a way to fix things up when they don't.

3) Some userland way to make the driver give up particular device. Rmmod doesn't work for me, because the driver is linked in the kernel on Ubuntu G, but if there could be a way to somehow deregister the driver, that could be quite useful to me. Blacklisting? Command line parameter to tell kernel to skip "serial" driver completely? Anything at all?

As possibility 3) implies, I can live without the serial driver. I'm unfortunately somewhat ignorant about available ways to accomplish this.

3) also results in a side question: how does the kernel resolve situations where two drivers look capable of driving the same hardware? Does it priorize the drivers by insertion order, alphabetic sorting by name, or by most specific match in the pci id table, or any other explicit rule like that which I could exploit?

With regards,
Antti
-
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux