lkml.org 
[lkml]   [2008]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] Add support for a no-name 4 ports multiserial card
Alan Cox wrote:
> On Fri, 6 Jun 2008 10:13:13 +0300
> "Catalin(ux) M BOIE" <catab@embedromix.ro> wrote:
>
>> It is a no-name PCI card. I found no reference to a producer so I
>> used the fake name "PDR".
>
> We don't really want to get fake names into pci_ids. I'd rather

Thanks Alan for review!

>
>> .vendor = PCI_VENDOR_ID_PLX,
>> + .device = PCI_DEVICE_ID_PLX_9050,
>> + .subvendor = PCI_VENDOR_ID_PLX,
>> + .subdevice = PCI_SUBDEVICE_ID_PDR,
>
> Either the hex or a local and obviously unknown name like ID_UNKNOWN_1

Do you agree to use ID_UNKNOWN_0x1584?

>
>> + pbn_plx_pdr,
>
> _unknown1

And here pbn_plx_unknown_0x1584?

>> pbn_oxsemi,
>> pbn_intel_i960,
>> pbn_sgi_ioc3,
>> @@ -1186,6 +1196,13 @@ static struct pciserial_board pci_boards[] __devinitdata = {
>> .base_baud = 115200,
>> .uart_offset = 8,
>> },
>> + /* PDR */
>> + [pbn_plx_pdr] = {
>
> Ditto
>
>> + /* PDR */
>
> Ditto
>
>> + { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
>> + PCI_VENDOR_ID_PLX,
>> + PCI_SUBDEVICE_ID_PDR, 0, 0,
>
> Ditto
>
>
>> +#define PCI_SUBDEVICE_ID_PDR 0x1584
>> +
>
> And not in here at all.
>
> Alan

If you agree, the patch is attached.
If not, let me know and I will correct it.

Thank you!

--
Catalin(ux) M BOIE
http://kernel.embedromix.ro/
From 5beb2583b6f69a8ea3ad0d8e033cf4e55f5d530d Mon Sep 17 00:00:00 2001
From: Catalin(ux) M BOIE <catab@embedromix.ro>
Date: Tue, 8 Apr 2008 00:59:20 +0300
Subject: [PATCH] Add support for a no-name 4 ports multiserial card

It is a no-name PCI card. I found no reference to a producer so I
used "UNKNOWN_0x1584" as the name.

Full lspci:
01:07.0 0780: 10b5:9050 (rev 01)
Subsystem: 10b5:1584
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 10
Region 1: I/O ports at ec00 [size=128]
Region 2: I/O ports at e480 [size=32]
Region 3: I/O ports at e400 [size=8]
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-
Capabilities: [48] #06 [0080]
Capabilities: [4c] Vital Product Data

After:
0000:01:07.0: ttyS4 at I/O 0xe480 (irq = 10) is a 16550A
0000:01:07.0: ttyS5 at I/O 0xe488 (irq = 10) is a 16550A
0000:01:07.0: ttyS6 at I/O 0xe490 (irq = 10) is a 16550A
0000:01:07.0: ttyS7 at I/O 0xe498 (irq = 10) is a 16550A

Signed-off-by: Catalin(ux) M BOIE <catab@embedromix.ro>
---
drivers/serial/8250_pci.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 788c355..3ad5941 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -769,6 +769,9 @@ pci_default_setup(struct serial_private *priv, struct pciserial_board *board,
#define PCI_SUBDEVICE_ID_POCTAL232 0x0308
#define PCI_SUBDEVICE_ID_POCTAL422 0x0408

+/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
+#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
+
/*
* Master list of serial port init/setup/exit quirks.
* This does not describe the general nature of the port.
@@ -884,6 +887,15 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
},
{
.vendor = PCI_VENDOR_ID_PLX,
+ .device = PCI_DEVICE_ID_PLX_9050,
+ .subvendor = PCI_VENDOR_ID_PLX,
+ .subdevice = PCI_SUBDEVICE_ID_UNKNOWN_0x1584,
+ .init = pci_plx9050_init,
+ .setup = pci_default_setup,
+ .exit = __devexit_p(pci_plx9050_exit),
+ },
+ {
+ .vendor = PCI_VENDOR_ID_PLX,
.device = PCI_DEVICE_ID_PLX_ROMULUS,
.subvendor = PCI_VENDOR_ID_PLX,
.subdevice = PCI_DEVICE_ID_PLX_ROMULUS,
@@ -1156,6 +1168,7 @@ enum pci_board_num_t {
pbn_panacom4,
pbn_exsys_4055,
pbn_plx_romulus,
+ pbn_plx_unknown_0x1584,
pbn_oxsemi,
pbn_intel_i960,
pbn_sgi_ioc3,
@@ -1186,6 +1199,13 @@ static struct pciserial_board pci_boards[] __devinitdata = {
.base_baud = 115200,
.uart_offset = 8,
},
+ /* Unknow card - subdevice 0x1584 */
+ [pbn_plx_unknown_0x1584] = {
+ .flags = FL_BASE0,
+ .num_ports = 4,
+ .base_baud = 115200,
+ .uart_offset = 8,
+ },
[pbn_b0_1_115200] = {
.flags = FL_BASE0,
.num_ports = 1,
@@ -2199,6 +2219,11 @@ static struct pci_device_id serial_pci_tbl[] = {
{ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_1077,
PCI_ANY_ID, PCI_ANY_ID, 0, 0,
pbn_b2_4_921600 },
+ /* Unknown card - subdevice 0x1584 */
+ { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
+ PCI_VENDOR_ID_PLX,
+ PCI_SUBDEVICE_ID_UNKNOWN_0x1584, 0, 0,
+ pbn_plx_unknown_0x1584 },
{ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
PCI_SUBVENDOR_ID_KEYSPAN,
PCI_SUBDEVICE_ID_KEYSPAN_SX2, 0, 0,
--
1.5.5.1
\
 
 \ /
  Last update: 2008-06-06 15:29    [W:0.109 / U:0.628 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site