2011-05-11 19:28:12

by Kilau, Scott

[permalink] [raw]
Subject: [PATCH] 8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter

From: Scott Kilau <[email protected]>

Add support to the 8250 PCI serial driver for the Digi/IBM PCIe 2-port Async EIA-232 Adapter.


Oxford Semiconductor produces a 2/4/8 port UART (OXPCIe952/OXPCIe954/OXPCIe958) chip
called the Tornado, that can be used to create a very simple serial board product.
The kernel sources currently have just 2 vendors using this chip, which is Oxford and Mainpipe.
This new Digi/IBM serial product now uses it as well.

Rather than create a long running comment of vendors using the chip, the one changed comment
in the patch below now just lists "For Oxford Semiconductor Tornado based devices" to be a
more generic comment for all vendors that end up using the Oxford Tornado chip.


Patch was created against 2.6.38.6


Cc: Greg Kroah-Hartman <[email protected]>
Cc: Michael Reed <[email protected]>
Signed-off-by: Scott Kilau <[email protected]>


diff -uprN -X linux-2.6.38.6-vanilla/Documentation/dontdiff linux-2.6.38.6-vanilla/drivers/tty/serial/8250_pci.c linux-2.6.38.6/drivers/tty/serial/8250_pci.c
--- linux-2.6.38.6-vanilla/drivers/tty/serial/8250_pci.c 2011-04-21 16:34:46.000000000 -0500
+++ linux-2.6.38.6/drivers/tty/serial/8250_pci.c 2011-04-28 09:12:29.000000000 -0500
@@ -1412,7 +1412,7 @@ static struct pci_serial_quirk pci_seria
.setup = pci_default_setup,
},
/*
- * For Oxford Semiconductor and Mainpine
+ * For Oxford Semiconductor Tornado based devices
*/
{
.vendor = PCI_VENDOR_ID_OXSEMI,
@@ -1430,6 +1430,14 @@ static struct pci_serial_quirk pci_seria
.init = pci_oxsemi_tornado_init,
.setup = pci_default_setup,
},
+ {
+ .vendor = PCI_VENDOR_ID_DIGI,
+ .device = PCIE_DEVICE_ID_NEO_2_OX_IBM,
+ .subvendor = PCI_SUBVENDOR_ID_IBM,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_default_setup,
+ },
/*
* Default "match everything" terminator entry
*/
@@ -3075,6 +3083,14 @@ static struct pci_device_id serial_pci_t
{ PCI_VENDOR_ID_MAINPINE, 0x4000, /* IQ Express 8 Port V.34 Super-G3 Fax */
PCI_VENDOR_ID_MAINPINE, 0x4008, 0, 0,
pbn_oxsemi_8_4000000 },
+
+ /*
+ * Digi/IBM PCIe 2-port Async EIA-232 Adapter utilizing OxSemi Tornado
+ */
+ { PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_2_OX_IBM,
+ PCI_SUBVENDOR_ID_IBM, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_4000000 },
+
/*
* SBS Technologies, Inc. P-Octal and PMC-OCTPRO cards,
* from [email protected]
diff -uprN -X linux-2.6.38.6-vanilla/Documentation/dontdiff linux-2.6.38.6-vanilla/include/linux/pci_ids.h linux-2.6.38.6/include/linux/pci_ids.h
--- linux-2.6.38.6-vanilla/include/linux/pci_ids.h 2011-04-21 16:34:46.000000000 -0500
+++ linux-2.6.38.6/include/linux/pci_ids.h 2011-04-27 14:56:30.000000000 -0500
@@ -1476,6 +1476,7 @@
#define PCI_DEVICE_ID_NEO_2RJ45 0x00CA
#define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB
#define PCIE_DEVICE_ID_NEO_4_IBM 0x00F4
+#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6

#define PCI_VENDOR_ID_XIRCOM 0x115d
#define PCI_DEVICE_ID_XIRCOM_RBM56G 0x0101


2011-05-11 19:43:30

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH] 8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter

On Wed, May 11, 2011 at 02:28:07PM -0500, Kilau, Scott wrote:
> --- linux-2.6.38.6-vanilla/include/linux/pci_ids.h 2011-04-21 16:34:46.000000000 -0500
> +++ linux-2.6.38.6/include/linux/pci_ids.h 2011-04-27 14:56:30.000000000 -0500
> @@ -1476,6 +1476,7 @@
> #define PCI_DEVICE_ID_NEO_2RJ45 0x00CA
> #define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB
> #define PCIE_DEVICE_ID_NEO_4_IBM 0x00F4
> +#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6

Please see the top of this file for why you shouldn't be adding new
device ids into it.

Third time's a charm?

thanks,

greg k-h

2011-05-11 20:27:28

by Kilau, Scott

[permalink] [raw]
Subject: RE: [PATCH] 8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter

> From: Greg KH [mailto:[email protected]]
> Sent: Wednesday, May 11, 2011 2:43 PM
> To: Kilau, Scott
> Cc: '[email protected]'; '[email protected]'; 'Alan Cox'
> Subject: Re: [PATCH] 8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter

> On Wed, May 11, 2011 at 02:28:07PM -0500, Kilau, Scott wrote:
> > --- linux-2.6.38.6-vanilla/include/linux/pci_ids.h 2011-04-21 16:34:46.000000000 -0500
> > +++ linux-2.6.38.6/include/linux/pci_ids.h 2011-04-27 14:56:30.000000000 -0500
> > @@ -1476,6 +1476,7 @@
> > #define PCI_DEVICE_ID_NEO_2RJ45 0x00CA
> > #define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB
> > #define PCIE_DEVICE_ID_NEO_4_IBM 0x00F4
> > +#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6

> Please see the top of this file for why you shouldn't be adding new
> device ids into it.
> Third time's a charm?
> thanks,
> greg k-h

Sorry about that.
Should I just be putting them into 8250_pci.c directly instead?

I was conflicted as to where to put it, as I saw this comment in 8250_pci.c, before a list of device ids:
/* This should be in linux/pci_ids.h */

Thanks for your help!
Scott

2011-05-11 20:33:37

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH] 8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter

On Wed, May 11, 2011 at 03:27:25PM -0500, Kilau, Scott wrote:
> > From: Greg KH [mailto:[email protected]]
> > Sent: Wednesday, May 11, 2011 2:43 PM
> > To: Kilau, Scott
> > Cc: '[email protected]'; '[email protected]'; 'Alan Cox'
> > Subject: Re: [PATCH] 8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter
>
> > On Wed, May 11, 2011 at 02:28:07PM -0500, Kilau, Scott wrote:
> > > --- linux-2.6.38.6-vanilla/include/linux/pci_ids.h 2011-04-21 16:34:46.000000000 -0500
> > > +++ linux-2.6.38.6/include/linux/pci_ids.h 2011-04-27 14:56:30.000000000 -0500
> > > @@ -1476,6 +1476,7 @@
> > > #define PCI_DEVICE_ID_NEO_2RJ45 0x00CA
> > > #define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB
> > > #define PCIE_DEVICE_ID_NEO_4_IBM 0x00F4
> > > +#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6
>
> > Please see the top of this file for why you shouldn't be adding new
> > device ids into it.
> > Third time's a charm?
> > thanks,
> > greg k-h
>
> Sorry about that.
> Should I just be putting them into 8250_pci.c directly instead?

Yes.

> I was conflicted as to where to put it, as I saw this comment in
> 8250_pci.c, before a list of device ids:
> /* This should be in linux/pci_ids.h */

That comment should be removed :)

thanks,

greg k-h

2011-05-11 20:42:05

by Kilau, Scott

[permalink] [raw]
Subject: RE: [PATCH] 8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter

From: Scott Kilau <[email protected]>

Add support to the 8250 PCI serial driver for the Digi/IBM PCIe 2-port Async EIA-232 Adapter.


Oxford Semiconductor produces a 2/4/8 port UART (OXPCIe952/OXPCIe954/OXPCIe958) chip
called the Tornado, that can be used to create a very simple serial board product.
The kernel sources currently have just 2 vendors using this chip, which is Oxford and Mainpipe.
This new Digi/IBM serial product now uses it as well.

Rather than create a long running comment of vendors using the chip, the one changed comment
in the patch below now just lists "For Oxford Semiconductor Tornado based devices" to be a
more generic comment for all vendors that end up using the Oxford Tornado chip.


Patch was created against 2.6.38.6


Cc: Greg Kroah-Hartman <[email protected]>
Cc: Michael Reed <[email protected]>
Signed-off-by: Scott Kilau <[email protected]>


diff -uprN -X linux-2.6.38.6-vanilla/Documentation/dontdiff linux-2.6.38.6-vanilla/drivers/tty/serial/8250_pci.c linux-2.6.38.6/drivers/tty/serial/8250_pci.c
--- linux-2.6.38.6-vanilla/drivers/tty/serial/8250_pci.c 2011-05-09 17:16:23.000000000 -0500
+++ linux-2.6.38.6/drivers/tty/serial/8250_pci.c 2011-05-11 15:08:51.000000000 -0500
@@ -1012,6 +1012,7 @@ static int skip_tx_en_setup(struct seria
#define PCI_DEVICE_ID_TITAN_200EI 0xA016
#define PCI_DEVICE_ID_TITAN_200EISI 0xA017
#define PCI_DEVICE_ID_OXSEMI_16PCI958 0x9538
+#define PCIE_DEVICE_ID_NEO_2_OX_IBM 0x00F6

/* Unknown vendors/cards - this should not be in linux/pci_ids.h */
#define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584
@@ -1412,7 +1413,7 @@ static struct pci_serial_quirk pci_seria
.setup = pci_default_setup,
},
/*
- * For Oxford Semiconductor and Mainpine
+ * For Oxford Semiconductor Tornado based devices
*/
{
.vendor = PCI_VENDOR_ID_OXSEMI,
@@ -1430,6 +1431,14 @@ static struct pci_serial_quirk pci_seria
.init = pci_oxsemi_tornado_init,
.setup = pci_default_setup,
},
+ {
+ .vendor = PCI_VENDOR_ID_DIGI,
+ .device = PCIE_DEVICE_ID_NEO_2_OX_IBM,
+ .subvendor = PCI_SUBVENDOR_ID_IBM,
+ .subdevice = PCI_ANY_ID,
+ .init = pci_oxsemi_tornado_init,
+ .setup = pci_default_setup,
+ },
/*
* Default "match everything" terminator entry
*/
@@ -3075,6 +3084,14 @@ static struct pci_device_id serial_pci_t
{ PCI_VENDOR_ID_MAINPINE, 0x4000, /* IQ Express 8 Port V.34 Super-G3 Fax */
PCI_VENDOR_ID_MAINPINE, 0x4008, 0, 0,
pbn_oxsemi_8_4000000 },
+
+ /*
+ * Digi/IBM PCIe 2-port Async EIA-232 Adapter utilizing OxSemi Tornado
+ */
+ { PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_2_OX_IBM,
+ PCI_SUBVENDOR_ID_IBM, PCI_ANY_ID, 0, 0,
+ pbn_oxsemi_2_4000000 },
+
/*
* SBS Technologies, Inc. P-Octal and PMC-OCTPRO cards,
* from [email protected]