2002-02-21 00:05:33

by Ed Vance

[permalink] [raw]
Subject: RE: Oxford Semiconductor's OXCB950 UART not recognized by serial. c

[email protected] wrote:
>
> We have 32-bit CardBus cards with OXCB950 CardBus (PCI ID 1415:950b) UART
> chips on them (OXCB950 is the CardBus version of 16C950) . The module
> serial_cb in the pcmcia-cs package recognizes them correctly. But, when
> not using serial_cb, the function serial_pci_guess_board in serial.c
> doesn't (kernel 2.4.17 tested). The problem is that the card advertises 3
> i/o memory regions and 2 ports. If one replaces the line
>
> if (num_iomem <= 1 && num_port == 1) {
>
> with
>
> if (num_port >= 1) {
>
> in the function serial_pci_guess_board(), the card is detected and works
> perfectly. Only, when inserting it, the kernel displays the message:
>
> Redundant entry in serial pci_table. Please send the output of
> lspci -vv, this message (1415,950b,1415,0001)
> and the manufacturer and name of serial board or modem board
> to [email protected].

The "Redundant entry" message comes out of serial.c when a card is found in
the PCI ID board list, but which function serial_pci_guess_board() also
detects as a generic single UART card (and overwrites the card's
board->flags field in the pci_boards[] array).

Does anybody think this is a feature? Did I misunderstand?

I suspect that the thought was to detect and eventually remove pci_boards[]
entries for generic single-port cards that could also be detected by the
serial_pci_guess_board() function. Can anybody confirm or deny?

Shouldn't the detection process be considered done when the PCI IDs match?
Why should the "guess" function even be called when the card has already
been found in the PCI board table?

----------------------------------------------------------------
Ed Vance [email protected]
Macrolink, Inc. 1500 N. Kellogg Dr Anaheim, CA 92807
----------------------------------------------------------------


2002-02-21 09:53:27

by Andrey Panin

[permalink] [raw]
Subject: Re: Oxford Semiconductor's OXCB950 UART not recognized by serial. c

On Срд, Фев 20, 2002 at 04:05:13 -0800, Ed Vance wrote:
> [email protected] wrote:
> >
> > We have 32-bit CardBus cards with OXCB950 CardBus (PCI ID 1415:950b) UART
> > chips on them (OXCB950 is the CardBus version of 16C950) . The module
> > serial_cb in the pcmcia-cs package recognizes them correctly. But, when
> > not using serial_cb, the function serial_pci_guess_board in serial.c
> > doesn't (kernel 2.4.17 tested). The problem is that the card advertises 3
> > i/o memory regions and 2 ports. If one replaces the line
> >
> > if (num_iomem <= 1 && num_port == 1) {
> >
> > with
> >
> > if (num_port >= 1) {
> >
> > in the function serial_pci_guess_board(), the card is detected and works
> > perfectly. Only, when inserting it, the kernel displays the message:
> >
> > Redundant entry in serial pci_table. Please send the output of
> > lspci -vv, this message (1415,950b,1415,0001)
> > and the manufacturer and name of serial board or modem board
> > to [email protected].
>
> The "Redundant entry" message comes out of serial.c when a card is found in
> the PCI ID board list, but which function serial_pci_guess_board() also
> detects as a generic single UART card (and overwrites the card's
> board->flags field in the pci_boards[] array).
>
> Does anybody think this is a feature? Did I misunderstand?
>
> I suspect that the thought was to detect and eventually remove pci_boards[]
> entries for generic single-port cards that could also be detected by the
> serial_pci_guess_board() function. Can anybody confirm or deny?

You are right.

Does the attached patch remove this message ?

Best regards.

--
Andrey Panin | Embedded systems software engineer
[email protected] | PGP key: wwwkeys.eu.pgp.net


Attachments:
(No filename) (0.00 B)
(No filename) (232.00 B)
Download all attachments