2008-06-06 08:10:57

by Catalin(ux) M. BOIE

[permalink] [raw]
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 the fake name "PDR".

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 <[email protected]>
---
drivers/serial/8250_pci.c | 22 ++++++++++++++++++++++
include/linux/pci_ids.h | 2 ++
2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 788c355..77d9f77 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -884,6 +884,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_PDR,
+ .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 +1165,7 @@ enum pci_board_num_t {
pbn_panacom4,
pbn_exsys_4055,
pbn_plx_romulus,
+ pbn_plx_pdr,
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] = {
+ .flags = FL_BASE0,
+ .num_ports = 4,
+ .base_baud = 115200,
+ .uart_offset = 8,
+ },
[pbn_b0_1_115200] = {
.flags = FL_BASE0,
.num_ports = 1,
@@ -2199,6 +2216,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 },
+ /* PDR */
+ { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
+ PCI_VENDOR_ID_PLX,
+ PCI_SUBDEVICE_ID_PDR, 0, 0,
+ pbn_plx_pdr },
{ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
PCI_SUBVENDOR_ID_KEYSPAN,
PCI_SUBDEVICE_ID_KEYSPAN_SX2, 0, 0,
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 9b940e6..17a01b1 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -966,6 +966,8 @@
#define PCI_DEVICE_ID_PLX_9080 0x9080
#define PCI_DEVICE_ID_PLX_GTEK_SERIAL2 0xa001

+#define PCI_SUBDEVICE_ID_PDR 0x1584
+
#define PCI_VENDOR_ID_MADGE 0x10b6
#define PCI_DEVICE_ID_MADGE_MK2 0x0002

--
1.5.5.1


2008-06-06 10:30:06

by Alan

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

On Fri, 6 Jun 2008 10:13:13 +0300
"Catalin(ux) M BOIE" <[email protected]> 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


> .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


> + pbn_plx_pdr,

_unknown1

> 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

2008-06-06 12:56:53

by Andrey Panin

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

On 158, 06 06, 2008 at 10:13:13AM +0300, Catalin(ux) M BOIE wrote:
> It is a no-name PCI card. I found no reference to a producer so I
> used the fake name "PDR".
>
> 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 <[email protected]>
> ---
> drivers/serial/8250_pci.c | 22 ++++++++++++++++++++++
> include/linux/pci_ids.h | 2 ++
> 2 files changed, 24 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
> index 788c355..77d9f77 100644
> --- a/drivers/serial/8250_pci.c
> +++ b/drivers/serial/8250_pci.c
> @@ -884,6 +884,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_PDR,
> + .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 +1165,7 @@ enum pci_board_num_t {
> pbn_panacom4,
> pbn_exsys_4055,
> pbn_plx_romulus,
> + pbn_plx_pdr,
> 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] = {
> + .flags = FL_BASE0,
> + .num_ports = 4,
> + .base_baud = 115200,
> + .uart_offset = 8,
> + },

This definition is not needed, just use pbn_b0_4_115200.

> [pbn_b0_1_115200] = {
> .flags = FL_BASE0,
> .num_ports = 1,
> @@ -2199,6 +2216,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 },
> + /* PDR */
> + { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
> + PCI_VENDOR_ID_PLX,
> + PCI_SUBDEVICE_ID_PDR, 0, 0,
> + pbn_plx_pdr },
> { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
> PCI_SUBVENDOR_ID_KEYSPAN,
> PCI_SUBDEVICE_ID_KEYSPAN_SX2, 0, 0,
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 9b940e6..17a01b1 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -966,6 +966,8 @@
> #define PCI_DEVICE_ID_PLX_9080 0x9080
> #define PCI_DEVICE_ID_PLX_GTEK_SERIAL2 0xa001
>
> +#define PCI_SUBDEVICE_ID_PDR 0x1584
> +
> #define PCI_VENDOR_ID_MADGE 0x10b6
> #define PCI_DEVICE_ID_MADGE_MK2 0x0002
>
> --
> 1.5.5.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

--
Andrey Panin | Linux and UNIX system administrator
[email protected] | PGP key: wwwkeys.pgp.net


Attachments:
(No filename) (3.91 kB)
signature.asc (189.00 B)
Digital signature
Download all attachments

2008-06-06 13:27:10

by Catalin(ux) M. BOIE

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

>From 5beb2583b6f69a8ea3ad0d8e033cf4e55f5d530d Mon Sep 17 00:00:00 2001
From: Catalin(ux) M BOIE <[email protected]>
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 <[email protected]>
---
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


Attachments:
0001-Add-support-for-a-no-name-4-ports-multiserial-card.patch (3.58 kB)

2008-06-06 14:22:55

by Catalin(ux) M. BOIE

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

>From fa0fceda773f553c2691f69ad989e81a3c5cc031 Mon Sep 17 00:00:00 2001
From: Catalin(ux) M BOIE <[email protected]>
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 <[email protected]>
---
drivers/serial/8250_pci.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 788c355..b64a17c 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,
@@ -2199,6 +2211,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_b0_4_115200 },
{ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
PCI_SUBVENDOR_ID_KEYSPAN,
PCI_SUBDEVICE_ID_KEYSPAN_SX2, 0, 0,
--
1.5.5.1


Attachments:
0001-Add-support-for-a-no-name-4-ports-multiserial-card.patch (3.04 kB)

2008-06-06 15:21:05

by Alan

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

> > Either the hex or a local and obviously unknown name like ID_UNKNOWN_1
>
> Do you agree to use ID_UNKNOWN_0x1584?

Excellent idea


> And here pbn_plx_unknown_0x1584?

Ditto

Acked-by: Alan Cox <[email protected]>

Alan

2008-06-06 19:41:08

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

On Fri, Jun 06, 2008 at 11:14:00AM +0100, Alan Cox wrote:
> On Fri, 6 Jun 2008 10:13:13 +0300
> "Catalin(ux) M BOIE" <[email protected]> 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
>
>
> > .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
>
>
> > + pbn_plx_pdr,
>
> _unknown1
>
> > 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.

And there's no need for half the patch either - which I tried to explain
in a previous reply to Catalin but I just got repeated "My email address
has changed to ..." responses... so I gave up.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:

2008-06-09 20:08:04

by Catalin(ux) M. BOIE

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

>From fa0fceda773f553c2691f69ad989e81a3c5cc031 Mon Sep 17 00:00:00 2001
From: Catalin(ux) M BOIE <[email protected]>
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 <[email protected]>
---
drivers/serial/8250_pci.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 788c355..b64a17c 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,
@@ -2199,6 +2211,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_b0_4_115200 },
{ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050,
PCI_SUBVENDOR_ID_KEYSPAN,
PCI_SUBDEVICE_ID_KEYSPAN_SX2, 0, 0,
--
1.5.5.1


Attachments:
0001-Add-support-for-a-no-name-4-ports-multiserial-card.patch (3.04 kB)

2008-06-09 21:10:32

by Russell King

[permalink] [raw]
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card

On Mon, Jun 09, 2008 at 11:04:28PM +0300, Catalin(ux) M BOIE wrote:
> Rusell, I am very sorry about: sending e-mail without patch,
> sending from an old mail address and calling you "Rusty".

Keep going, you made another mistake above. 8)

> Andrew, please hold on a little bit to get the Ack from Russel.

And again but differently.

> The last version of the patch is attached. Please Ack it if it is OK
> for you. If not, please let me know.

Acked-by: Russell King <[email protected]>

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: