OXCB950 support (was RE: Oxford Semiconductor's OXCB950 UART not recognized by serial. c)

OXCB950 support (was RE: Oxford Semiconductor's OXCB950 UART not recognized by serial. c)

Post by fabrizio.genn.. » Sat, 02 Mar 2002 20:20:14



This patch (tested on 2.4.17) includes OXCB950 in serial_pci_tbl[].
pbn_b0_bt_1_115200 is used instead of pbn_b0_1_115200: the effect is the
same since the OXCB950 is single-port, but pbn_b0_bt_1_115200 is different
from pbn_default.

Fabrizio Gennari
Philips Research Monza
via G.Casati 23, 20052 Monza (MI), Italy
tel. +39 039 2037816, fax +39 039 2037800

diff -ruN linux/drivers/char/serial.c linux-new/drivers/char/serial.c
--- linux/drivers/char/serial.c Fri Dec 21 18:41:54 2001

        {       PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952,
                PCI_ANY_ID, PCI_ANY_ID, 0, 0,
                pbn_b0_2_115200 },
+       {       PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_OXCB950,
+               PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+               pbn_b0_bt_1_115200 },


        {       PCI_VENDOR_ID_ATT, PCI_DEVICE_ID_ATT_VENUS_MODEM,
diff -ruN linux/include/linux/pci_ids.h linux-new/include/linux/pci_ids.h
--- linux/include/linux/pci_ids.h       Fri Dec 21 18:42:03 2001

 #define PCI_DEVICE_ID_OXSEMI_12PCI840  0x8403
 #define PCI_DEVICE_ID_OXSEMI_16PCI954  0x9501
 #define PCI_DEVICE_ID_OXSEMI_16PCI952  0x950A
+#define PCI_DEVICE_ID_OXSEMI_OXCB950   0x950B
 #define PCI_DEVICE_ID_OXSEMI_16PCI95N  0x9511
 #define PCI_DEVICE_ID_OXSEMI_16PCI954PP        0x9513


21/02/2002 01.05




        Subject:        RE: Oxford Semiconductor's OXCB950 UART not recognized by serial.       c
        Classification:


> 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


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?

----------------------------------------------------------------

Macrolink, Inc.       1500 N. Kellogg Dr  Anaheim, CA  92807
----------------------------------------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

1. Oxford Semiconductor's OXCB950 UART not recognized by serial.c

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

And this is the output of lspci -vv, only the part relevant to the Oxford
card:

03:00.0 Serial controller: Oxford Semiconductor Ltd CardBus Device
(prog-if 06 [16950])
        Subsystem: Oxford Semiconductor Ltd: Unknown device 0001
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at 4800 [size=8]
        Region 1: Memory at 10c00000 (32-bit, non-prefetchable) [size=4K]
        Region 2: I/O ports at 4810 [size=16]
        Region 3: Memory at 10c01000 (32-bit, non-prefetchable) [size=4K]
        Region 4: Memory at 10c02000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 1
                Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA
PME(D0+,D1-,D2+,D3hot+,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Fabrizio Gennari
Philips Research Monza
via G.Casati 23, 20052 Monza (MI), Italy
tel. +39 039 2037816, fax +39 039 2037800
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

2. using backreferences in a regex

3. Oxford Semiconductor's OXCB950 UART not recognized by serial. c

4. error message in GNOME when startup

5. Linux Frequently Asked Questions with Answers (Part 3 of 6)

6. NCD-19 printer attached won't print

7. PCI-Printerport Oxford-Semiconductors

8. Problem to use a Oxford semiconductor Intelligent DUAL Channe l UA RT (OX16PCI952)

9. Using an Oxford Semiconductor 840 Parport

10. Problem to use a Oxford semiconductor Intelligent DUAL Channe l UA RT (OX16PCI952)

11. PCI device ID Oxford 952 UART