All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Catalin(ux) M BOIE" <catab@embedromix.ro>
To: pazke@pazke.donpac.ru
Cc: linux-kernel@vger.kernel.org, rmk+serial@arm.linux.org.uk,
	linux-serial@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH] Add support for a no-name 4 ports multiserial card
Date: Fri, 06 Jun 2008 17:20:05 +0300	[thread overview]
Message-ID: <48494795.2050408@embedromix.ro> (raw)
In-Reply-To: <20080606125233.GA31927@pazke.donpac.ru>

[-- Attachment #1: Type: text/plain, Size: 4138 bytes --]

Andrey Panin wrote:
> 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 <catab@embedromix.ro>
>> ---
>>  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.

Thanks, Andrey!

>>  	[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 majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
>>
> 


New patch attached.

Thank you!

-- 
Catalin(ux) M BOIE
http://kernel.embedromix.ro/

[-- Attachment #2: 0001-Add-support-for-a-no-name-4-ports-multiserial-card.patch --]
[-- Type: text/plain, Size: 3114 bytes --]

>From fa0fceda773f553c2691f69ad989e81a3c5cc031 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 |   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


  reply	other threads:[~2008-06-06 14:22 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-06  7:13 [PATCH] Add support for a no-name 4 ports multiserial card Catalin(ux) M BOIE
2008-06-06 10:14 ` Alan Cox
2008-06-06 12:42   ` Catalin(ux) M BOIE
2008-06-06 15:04     ` Alan Cox
2008-06-06 19:40   ` Russell King
2008-06-09 20:04     ` Catalin(ux) M BOIE
2008-06-09 21:10       ` Russell King
2008-06-06 12:52 ` Andrey Panin
2008-06-06 14:20   ` Catalin(ux) M BOIE [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-04-07 22:21 Catalin(ux) M BOIE

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48494795.2050408@embedromix.ro \
    --to=catab@embedromix.ro \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=pazke@pazke.donpac.ru \
    --cc=rmk+serial@arm.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.