- perle-multimodem-card-pci-ras-detection.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     Perle multimodem card (PCI-RAS) detection

has been removed from the -mm tree.  Its filename is

     perle-multimodem-card-pci-ras-detection.patch

This patch was dropped because an updated version will be merged

------------------------------------------------------
Subject: Perle multimodem card (PCI-RAS) detection
From: Thomas Hoehn <thomas.hoehn@xxxxxxxxxxx>

Get the Perle quad-modem PCI card (PCI-RAS4) detected by current serial
driver code in 2.6 kernel.  It may also get the PCI-RAS8 (Perle 8-port
modem PIC card) running, but I can't guarantee as I only have a PCI-RAS4
for testing.

Here are the pci infos about the card (lspci -vn):

0000:02:07.0 0700: 10b5:9030 (prog-if 02)
         Subsystem: 155f:f001
         Flags: medium devsel, IRQ 10
         Memory at d0100400 (32-bit, non-prefetchable) [size=128]
         I/O ports at 3800 [size=128]
         I/O ports at 3400 [size=32]

i.e.:
Vendor ID: 10b5 (PLX Technology, Inc.)
Device ID: 9030 (PLX PCI <-> IOBus Bridge Hot Swap)
Subvendor ID: 155f (Perle Systems Ltd)
Subdevice ID: f001 (PCI-RAS4), f010 (PCI-RAS8)
Uses BAR: 2 (IO port 0x3400)

The PCI card has a TI TL16C754BPN (Texas Instruments) Quad-UART with 64
Byte Rx/Tx-FIFO onboard, which is compatible to ST16654 so it should be
detected by the serial driver code.

Actually the autoconf() in 8250.c bails out because the IER test fails.  It
turns out that bit 4 is set on my card regardless what is written to IER.

Looking in the TL16C754B datasheet gives the clue that EFR is involved (see
http://focus.ti.com/docs/prod/folders/print/tl16c754b.html, pdf p.30):
"NOTE: IER[7:4] can only be modified if EFR[4] is set, i.e.  EFR[4] is a
write enable:".  So I and'ed the IER read-back-value in scratch2 and
scratch3 with 0x0f in order to test only bit 0-3 (but I'm not sure if that
is fine for general case).  Whith that UART type ST16654 is found.

It was also neccessary to add vendor/device ID's for PLX chip 9030 and
Perles subsystem components in pci_ids.h.

The "(Maximum) number of 8250/16550 serial ports" in the kernel config
should also be set properly (4 internal + 4/8 on Perle card).

Cc: Russell King <rmk@xxxxxxxxxxxxxxxx>
Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 drivers/serial/8250.c     |    4 ++--
 drivers/serial/8250_pci.c |   16 ++++++++++++++++
 include/linux/pci_ids.h   |    5 +++++
 3 files changed, 23 insertions(+), 2 deletions(-)

diff -puN drivers/serial/8250.c~perle-multimodem-card-pci-ras-detection drivers/serial/8250.c
--- a/drivers/serial/8250.c~perle-multimodem-card-pci-ras-detection
+++ a/drivers/serial/8250.c
@@ -937,12 +937,12 @@ static void autoconfig(struct uart_8250_
 #ifdef __i386__
 		outb(0xff, 0x080);
 #endif
-		scratch2 = serial_inp(up, UART_IER);
+		scratch2 = serial_inp(up, UART_IER) & 0x0f;
 		serial_outp(up, UART_IER, 0x0F);
 #ifdef __i386__
 		outb(0, 0x080);
 #endif
-		scratch3 = serial_inp(up, UART_IER);
+		scratch3 = serial_inp(up, UART_IER) & 0x0f;
 		serial_outp(up, UART_IER, scratch);
 		if (scratch2 != 0 || scratch3 != 0x0F) {
 			/*
diff -puN drivers/serial/8250_pci.c~perle-multimodem-card-pci-ras-detection drivers/serial/8250_pci.c
--- a/drivers/serial/8250_pci.c~perle-multimodem-card-pci-ras-detection
+++ a/drivers/serial/8250_pci.c
@@ -679,6 +679,13 @@ static struct pci_serial_quirk pci_seria
 	 */
 	{
 		.vendor		= PCI_VENDOR_ID_PLX,
+		.device		= PCI_DEVICE_ID_PLX_9030,
+		.subvendor	= PCI_SUBVENDOR_ID_PERLE,
+		.subdevice	= PCI_ANY_ID,
+		.setup		= pci_default_setup,
+	},
+	{
+		.vendor		= PCI_VENDOR_ID_PLX,
 		.device		= PCI_DEVICE_ID_PLX_9050,
 		.subvendor	= PCI_SUBVENDOR_ID_EXSYS,
 		.subdevice	= PCI_SUBDEVICE_ID_EXSYS_4055,
@@ -2355,6 +2362,15 @@ static struct pci_device_id serial_pci_t
 		pbn_b2_2_115200 },
 
 	/*
+	 * Perle PCI-RAS cards
+	 */
+	{       PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030,
+		PCI_SUBVENDOR_ID_PERLE, PCI_SUBDEVICE_ID_PCI_RAS4,
+		0, 0, pbn_b2_4_921600 },
+	{       PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030,
+		PCI_SUBVENDOR_ID_PERLE, PCI_SUBDEVICE_ID_PCI_RAS8,
+		0, 0, pbn_b2_8_921600 },
+	/*
 	 * These entries match devices with class COMMUNICATION_SERIAL,
 	 * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL
 	 */
diff -puN include/linux/pci_ids.h~perle-multimodem-card-pci-ras-detection include/linux/pci_ids.h
--- a/include/linux/pci_ids.h~perle-multimodem-card-pci-ras-detection
+++ a/include/linux/pci_ids.h
@@ -949,6 +949,7 @@
 #define PCI_DEVICE_ID_PLX_R753		0x1152
 #define PCI_DEVICE_ID_PLX_OLITEC	0x1187
 #define PCI_DEVICE_ID_PLX_PCI200SYN	0x3196
+#define PCI_DEVICE_ID_PLX_9030          0x9030
 #define PCI_DEVICE_ID_PLX_9050		0x9050
 #define PCI_DEVICE_ID_PLX_9080		0x9080
 #define PCI_DEVICE_ID_PLX_GTEK_SERIAL2	0xa001
@@ -1964,6 +1965,10 @@
 
 #define PCI_VENDOR_ID_CHELSIO		0x1425
 
+#define PCI_SUBVENDOR_ID_PERLE          0x155f
+#define PCI_SUBDEVICE_ID_PCI_RAS4       0xf001
+#define PCI_SUBDEVICE_ID_PCI_RAS8       0xf010
+
 
 #define PCI_VENDOR_ID_SYBA		0x1592
 #define PCI_DEVICE_ID_SYBA_2P_EPP	0x0782
_

Patches currently in -mm which might be from thomas.hoehn@xxxxxxxxxxx are

perle-multimodem-card-pci-ras-detection.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux