Re: serial driver not properly detecting modem

Jeff Garzik (jgarzik@mandrakesoft.com)
Tue, 24 Apr 2001 09:46:47 -0400


Alan Cox wrote:
>
> > I've fixed this here merely by adding an entry to the PCI table of
> > serial.c for PCI_CLASS_COMMUNICATION_OTHER. Is this the best way to fix
> > this? Is there some reason that this shouldn't be done in general? If
> > not, I'd like to see it fix in the kernel proper.
>
> Most class other devices wont be 16x50 compatible.

winmodems are class other

> > It should be noted that the modem is listed in serial.c's pci_boards,
> > perhaps it would be best for the serial driver to list PCI_ID_ANY for a
> > class, and only use pci_boards to further identify serial ports? Or
> > would this be too inefficient to correct for a few misguided hardware
> > makers?
>
> Probably serial.c should look for class serial || (class_other && in table)

no need to consider class other at all, since there are so many
exceptions. Build the serial.c pci table like

board 1
board 2
board 3
class 1
class 2
class 3

Special cases go before the classes. A 16x50 compatible class other is
definitely a special case...

On a side note, an outstanding to-do item for the serial driver is to
move its huge honkin' custom PCI table into the pci_device_id standard
table. The pci_device_id::driver_data member would then become an index
into the smaller custom PCI table.

-- 
Jeff Garzik      | The difference between America and England is that
Building 1024    | the English think 100 miles is a long distance and
MandrakeSoft     | the Americans think 100 years is a long time.
                 |      (random fortune)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/