public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 8250_pci: add support for MCS9865 / SYBA 6x Serial Port Card
@ 2009-12-04 22:24 Ira W. Snyder
  2009-12-14  9:25 ` Darius Augulis
  0 siblings, 1 reply; 3+ messages in thread
From: Ira W. Snyder @ 2009-12-04 22:24 UTC (permalink / raw)
  To: linux-kernel, linux-serial, augulis.darius

This patch is heavily based on an earlier patch found on the linux-serial
mailing list [1], written by Darius Augulis.

The previous incarnation of this patch only supported a 2x serial port
card. I have added support for my SYBA 6x serial port card, and tested on
x86.

[1]: http://marc.info/?l=linux-serial&m=124975806304760

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Cc: Darius Augulis <augulis.darius@gmail.com>
Cc: linux-serial@vger.kernel.org
---

According to MAINTAINERS the 8250/16550 support currently lacks a
maintainer. The earlier incarnation of this patch was posted all the way
back in August.

If necessary, I can post an incremental patch from the Darius' earlier
patch. It would be great if someone could pick it up. I hate when new
hardware doesn't work, especially something as simple as this.

 drivers/parport/parport_pc.c |    6 ++++++
 drivers/serial/8250_pci.c    |   22 +++++++++++++++++++++-
 include/linux/pci_ids.h      |    1 +
 3 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index 2597145..85204f0 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -2908,6 +2908,7 @@ enum parport_pc_pci_cards {
 	netmos_9805,
 	netmos_9815,
 	netmos_9901,
+	netmos_9865,
 	quatech_sppxp100,
 };
 
@@ -2989,6 +2990,7 @@ static struct parport_pc_pci {
 	/* netmos_9805 */               { 1, { { 0, -1 }, } },
 	/* netmos_9815 */               { 2, { { 0, -1 }, { 2, -1 }, } },
 	/* netmos_9901 */               { 1, { { 0, -1 }, } },
+	/* netmos_9865 */               { 1, { { 0, -1 }, } },
 	/* quatech_sppxp100 */		{ 1, { { 0, 1 }, } },
 };
 
@@ -3092,6 +3094,10 @@ static const struct pci_device_id parport_pc_pci_tbl[] = {
 	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9815 },
 	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901,
 	  0xA000, 0x2000, 0, 0, netmos_9901 },
+	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
+	  0xA000, 0x1000, 0, 0, netmos_9865 },
+	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
+	  0xA000, 0x2000, 0, 0, netmos_9865 },
 	/* Quatech SPPXP-100 Parallel port PCI ExpressCard */
 	{ PCI_VENDOR_ID_QUATECH, PCI_DEVICE_ID_QUATECH_SPPXP_100,
 	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, quatech_sppxp100 },
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index b28af13..8b18c3c 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -760,7 +760,8 @@ static int pci_netmos_init(struct pci_dev *dev)
 	/* subdevice 0x00PS means <P> parallel, <S> serial */
 	unsigned int num_serial = dev->subsystem_device & 0xf;
 
-	if (dev->device == PCI_DEVICE_ID_NETMOS_9901)
+	if ((dev->device == PCI_DEVICE_ID_NETMOS_9901) ||
+		(dev->device == PCI_DEVICE_ID_NETMOS_9865))
 		return 0;
 	if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM &&
 			dev->subsystem_device == 0x0299)
@@ -1479,6 +1480,7 @@ enum pci_board_num_t {
 
 	pbn_b0_bt_1_115200,
 	pbn_b0_bt_2_115200,
+	pbn_b0_bt_4_115200,
 	pbn_b0_bt_8_115200,
 
 	pbn_b0_bt_1_460800,
@@ -1703,6 +1705,12 @@ static struct pciserial_board pci_boards[] __devinitdata = {
 		.base_baud	= 115200,
 		.uart_offset	= 8,
 	},
+	[pbn_b0_bt_4_115200] = {
+		.flags		= FL_BASE0|FL_BASE_BARS,
+		.num_ports	= 4,
+		.base_baud	= 115200,
+		.uart_offset	= 8,
+	},
 	[pbn_b0_bt_8_115200] = {
 		.flags		= FL_BASE0|FL_BASE_BARS,
 		.num_ports	= 8,
@@ -3649,6 +3657,18 @@ static struct pci_device_id serial_pci_tbl[] = {
 		0, 0, pbn_b0_1_115200 },
 
 	/*
+	 * Best Connectivity PCI Multi I/O cards
+	 */
+
+	{	PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
+		0xA000, 0x1000,
+		0, 0, pbn_b0_1_115200 },
+
+	{	PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
+		0xA000, 0x3004,
+		0, 0, pbn_b0_bt_4_115200 },
+
+	/*
 	 * These entries match devices with class COMMUNICATION_SERIAL,
 	 * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL
 	 */
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 84cf1f3..b2c0bf3 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2675,6 +2675,7 @@
 #define PCI_DEVICE_ID_NETMOS_9835	0x9835
 #define PCI_DEVICE_ID_NETMOS_9845	0x9845
 #define PCI_DEVICE_ID_NETMOS_9855	0x9855
+#define PCI_DEVICE_ID_NETMOS_9865	0x9865
 #define PCI_DEVICE_ID_NETMOS_9901	0x9901
 
 #define PCI_VENDOR_ID_3COM_2		0xa727
-- 
1.5.4.3


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] 8250_pci: add support for MCS9865 / SYBA 6x Serial Port Card
  2009-12-04 22:24 [PATCH] 8250_pci: add support for MCS9865 / SYBA 6x Serial Port Card Ira W. Snyder
@ 2009-12-14  9:25 ` Darius Augulis
  2009-12-16 16:49   ` Ira W. Snyder
  0 siblings, 1 reply; 3+ messages in thread
From: Darius Augulis @ 2009-12-14  9:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ira W. Snyder, linux-serial

hi community!

can anybody ack this simple patch and merge it to 2.6.33-rc1 ?
I still waiting for this half year!

Darius A.


On 12/05/2009 12:24 AM, Ira W. Snyder wrote:
> This patch is heavily based on an earlier patch found on the linux-serial
> mailing list [1], written by Darius Augulis.
>
> The previous incarnation of this patch only supported a 2x serial port
> card. I have added support for my SYBA 6x serial port card, and tested on
> x86.
>
> [1]: http://marc.info/?l=linux-serial&m=124975806304760
>
> Signed-off-by: Ira W. Snyder<iws@ovro.caltech.edu>
> Cc: Darius Augulis<augulis.darius@gmail.com>
> Cc: linux-serial@vger.kernel.org
> ---
>
> According to MAINTAINERS the 8250/16550 support currently lacks a
> maintainer. The earlier incarnation of this patch was posted all the way
> back in August.
>
> If necessary, I can post an incremental patch from the Darius' earlier
> patch. It would be great if someone could pick it up. I hate when new
> hardware doesn't work, especially something as simple as this.
>
>   drivers/parport/parport_pc.c |    6 ++++++
>   drivers/serial/8250_pci.c    |   22 +++++++++++++++++++++-
>   include/linux/pci_ids.h      |    1 +
>   3 files changed, 28 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
> index 2597145..85204f0 100644
> --- a/drivers/parport/parport_pc.c
> +++ b/drivers/parport/parport_pc.c
> @@ -2908,6 +2908,7 @@ enum parport_pc_pci_cards {
>   	netmos_9805,
>   	netmos_9815,
>   	netmos_9901,
> +	netmos_9865,
>   	quatech_sppxp100,
>   };
>
> @@ -2989,6 +2990,7 @@ static struct parport_pc_pci {
>   	/* netmos_9805 */               { 1, { { 0, -1 }, } },
>   	/* netmos_9815 */               { 2, { { 0, -1 }, { 2, -1 }, } },
>   	/* netmos_9901 */               { 1, { { 0, -1 }, } },
> +	/* netmos_9865 */               { 1, { { 0, -1 }, } },
>   	/* quatech_sppxp100 */		{ 1, { { 0, 1 }, } },
>   };
>
> @@ -3092,6 +3094,10 @@ static const struct pci_device_id parport_pc_pci_tbl[] = {
>   	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9815 },
>   	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901,
>   	  0xA000, 0x2000, 0, 0, netmos_9901 },
> +	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> +	  0xA000, 0x1000, 0, 0, netmos_9865 },
> +	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> +	  0xA000, 0x2000, 0, 0, netmos_9865 },
>   	/* Quatech SPPXP-100 Parallel port PCI ExpressCard */
>   	{ PCI_VENDOR_ID_QUATECH, PCI_DEVICE_ID_QUATECH_SPPXP_100,
>   	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, quatech_sppxp100 },
> diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
> index b28af13..8b18c3c 100644
> --- a/drivers/serial/8250_pci.c
> +++ b/drivers/serial/8250_pci.c
> @@ -760,7 +760,8 @@ static int pci_netmos_init(struct pci_dev *dev)
>   	/* subdevice 0x00PS means<P>  parallel,<S>  serial */
>   	unsigned int num_serial = dev->subsystem_device&  0xf;
>
> -	if (dev->device == PCI_DEVICE_ID_NETMOS_9901)
> +	if ((dev->device == PCI_DEVICE_ID_NETMOS_9901) ||
> +		(dev->device == PCI_DEVICE_ID_NETMOS_9865))
>   		return 0;
>   	if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM&&
>   			dev->subsystem_device == 0x0299)
> @@ -1479,6 +1480,7 @@ enum pci_board_num_t {
>
>   	pbn_b0_bt_1_115200,
>   	pbn_b0_bt_2_115200,
> +	pbn_b0_bt_4_115200,
>   	pbn_b0_bt_8_115200,
>
>   	pbn_b0_bt_1_460800,
> @@ -1703,6 +1705,12 @@ static struct pciserial_board pci_boards[] __devinitdata = {
>   		.base_baud	= 115200,
>   		.uart_offset	= 8,
>   	},
> +	[pbn_b0_bt_4_115200] = {
> +		.flags		= FL_BASE0|FL_BASE_BARS,
> +		.num_ports	= 4,
> +		.base_baud	= 115200,
> +		.uart_offset	= 8,
> +	},
>   	[pbn_b0_bt_8_115200] = {
>   		.flags		= FL_BASE0|FL_BASE_BARS,
>   		.num_ports	= 8,
> @@ -3649,6 +3657,18 @@ static struct pci_device_id serial_pci_tbl[] = {
>   		0, 0, pbn_b0_1_115200 },
>
>   	/*
> +	 * Best Connectivity PCI Multi I/O cards
> +	 */
> +
> +	{	PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> +		0xA000, 0x1000,
> +		0, 0, pbn_b0_1_115200 },
> +
> +	{	PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> +		0xA000, 0x3004,
> +		0, 0, pbn_b0_bt_4_115200 },
> +
> +	/*
>   	 * These entries match devices with class COMMUNICATION_SERIAL,
>   	 * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL
>   	 */
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 84cf1f3..b2c0bf3 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -2675,6 +2675,7 @@
>   #define PCI_DEVICE_ID_NETMOS_9835	0x9835
>   #define PCI_DEVICE_ID_NETMOS_9845	0x9845
>   #define PCI_DEVICE_ID_NETMOS_9855	0x9855
> +#define PCI_DEVICE_ID_NETMOS_9865	0x9865
>   #define PCI_DEVICE_ID_NETMOS_9901	0x9901
>
>   #define PCI_VENDOR_ID_3COM_2		0xa727


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] 8250_pci: add support for MCS9865 / SYBA 6x Serial Port Card
  2009-12-14  9:25 ` Darius Augulis
@ 2009-12-16 16:49   ` Ira W. Snyder
  0 siblings, 0 replies; 3+ messages in thread
From: Ira W. Snyder @ 2009-12-16 16:49 UTC (permalink / raw)
  To: Darius Augulis; +Cc: linux-kernel, linux-serial, Andrew Morton

On Mon, Dec 14, 2009 at 11:25:08AM +0200, Darius Augulis wrote:
> hi community!
> 
> can anybody ack this simple patch and merge it to 2.6.33-rc1 ?
> I still waiting for this half year!
> 

Perhaps AKPM can pick this up and add it to -mm. I've had him pick up
similar patches from me before. I've added him to the CC list.

Ira

> On 12/05/2009 12:24 AM, Ira W. Snyder wrote:
> > This patch is heavily based on an earlier patch found on the linux-serial
> > mailing list [1], written by Darius Augulis.
> >
> > The previous incarnation of this patch only supported a 2x serial port
> > card. I have added support for my SYBA 6x serial port card, and tested on
> > x86.
> >
> > [1]: http://marc.info/?l=linux-serial&m=124975806304760
> >
> > Signed-off-by: Ira W. Snyder<iws@ovro.caltech.edu>
> > Cc: Darius Augulis<augulis.darius@gmail.com>
> > Cc: linux-serial@vger.kernel.org
> > ---
> >
> > According to MAINTAINERS the 8250/16550 support currently lacks a
> > maintainer. The earlier incarnation of this patch was posted all the way
> > back in August.
> >
> > If necessary, I can post an incremental patch from the Darius' earlier
> > patch. It would be great if someone could pick it up. I hate when new
> > hardware doesn't work, especially something as simple as this.
> >
> >   drivers/parport/parport_pc.c |    6 ++++++
> >   drivers/serial/8250_pci.c    |   22 +++++++++++++++++++++-
> >   include/linux/pci_ids.h      |    1 +
> >   3 files changed, 28 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
> > index 2597145..85204f0 100644
> > --- a/drivers/parport/parport_pc.c
> > +++ b/drivers/parport/parport_pc.c
> > @@ -2908,6 +2908,7 @@ enum parport_pc_pci_cards {
> >   	netmos_9805,
> >   	netmos_9815,
> >   	netmos_9901,
> > +	netmos_9865,
> >   	quatech_sppxp100,
> >   };
> >
> > @@ -2989,6 +2990,7 @@ static struct parport_pc_pci {
> >   	/* netmos_9805 */               { 1, { { 0, -1 }, } },
> >   	/* netmos_9815 */               { 2, { { 0, -1 }, { 2, -1 }, } },
> >   	/* netmos_9901 */               { 1, { { 0, -1 }, } },
> > +	/* netmos_9865 */               { 1, { { 0, -1 }, } },
> >   	/* quatech_sppxp100 */		{ 1, { { 0, 1 }, } },
> >   };
> >
> > @@ -3092,6 +3094,10 @@ static const struct pci_device_id parport_pc_pci_tbl[] = {
> >   	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9815 },
> >   	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901,
> >   	  0xA000, 0x2000, 0, 0, netmos_9901 },
> > +	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> > +	  0xA000, 0x1000, 0, 0, netmos_9865 },
> > +	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> > +	  0xA000, 0x2000, 0, 0, netmos_9865 },
> >   	/* Quatech SPPXP-100 Parallel port PCI ExpressCard */
> >   	{ PCI_VENDOR_ID_QUATECH, PCI_DEVICE_ID_QUATECH_SPPXP_100,
> >   	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, quatech_sppxp100 },
> > diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
> > index b28af13..8b18c3c 100644
> > --- a/drivers/serial/8250_pci.c
> > +++ b/drivers/serial/8250_pci.c
> > @@ -760,7 +760,8 @@ static int pci_netmos_init(struct pci_dev *dev)
> >   	/* subdevice 0x00PS means<P>  parallel,<S>  serial */
> >   	unsigned int num_serial = dev->subsystem_device&  0xf;
> >
> > -	if (dev->device == PCI_DEVICE_ID_NETMOS_9901)
> > +	if ((dev->device == PCI_DEVICE_ID_NETMOS_9901) ||
> > +		(dev->device == PCI_DEVICE_ID_NETMOS_9865))
> >   		return 0;
> >   	if (dev->subsystem_vendor == PCI_VENDOR_ID_IBM&&
> >   			dev->subsystem_device == 0x0299)
> > @@ -1479,6 +1480,7 @@ enum pci_board_num_t {
> >
> >   	pbn_b0_bt_1_115200,
> >   	pbn_b0_bt_2_115200,
> > +	pbn_b0_bt_4_115200,
> >   	pbn_b0_bt_8_115200,
> >
> >   	pbn_b0_bt_1_460800,
> > @@ -1703,6 +1705,12 @@ static struct pciserial_board pci_boards[] __devinitdata = {
> >   		.base_baud	= 115200,
> >   		.uart_offset	= 8,
> >   	},
> > +	[pbn_b0_bt_4_115200] = {
> > +		.flags		= FL_BASE0|FL_BASE_BARS,
> > +		.num_ports	= 4,
> > +		.base_baud	= 115200,
> > +		.uart_offset	= 8,
> > +	},
> >   	[pbn_b0_bt_8_115200] = {
> >   		.flags		= FL_BASE0|FL_BASE_BARS,
> >   		.num_ports	= 8,
> > @@ -3649,6 +3657,18 @@ static struct pci_device_id serial_pci_tbl[] = {
> >   		0, 0, pbn_b0_1_115200 },
> >
> >   	/*
> > +	 * Best Connectivity PCI Multi I/O cards
> > +	 */
> > +
> > +	{	PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> > +		0xA000, 0x1000,
> > +		0, 0, pbn_b0_1_115200 },
> > +
> > +	{	PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
> > +		0xA000, 0x3004,
> > +		0, 0, pbn_b0_bt_4_115200 },
> > +
> > +	/*
> >   	 * These entries match devices with class COMMUNICATION_SERIAL,
> >   	 * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL
> >   	 */
> > diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> > index 84cf1f3..b2c0bf3 100644
> > --- a/include/linux/pci_ids.h
> > +++ b/include/linux/pci_ids.h
> > @@ -2675,6 +2675,7 @@
> >   #define PCI_DEVICE_ID_NETMOS_9835	0x9835
> >   #define PCI_DEVICE_ID_NETMOS_9845	0x9845
> >   #define PCI_DEVICE_ID_NETMOS_9855	0x9855
> > +#define PCI_DEVICE_ID_NETMOS_9865	0x9865
> >   #define PCI_DEVICE_ID_NETMOS_9901	0x9901
> >
> >   #define PCI_VENDOR_ID_3COM_2		0xa727
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-12-16 16:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-04 22:24 [PATCH] 8250_pci: add support for MCS9865 / SYBA 6x Serial Port Card Ira W. Snyder
2009-12-14  9:25 ` Darius Augulis
2009-12-16 16:49   ` Ira W. Snyder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox