bk://bk.arm.linux.org.uk/linux-2.6-serial
dick@com.rmk.(none)[rmk]|ChangeSet|20050319182640|15411 dick

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/03/19 18:26:40+00:00 dick@com.rmk.(none) 
#   [SERIAL] sealevel 8 port RS-232/RS-422/RS-485 board
#   
#   Patch from Dick Hollenbeck
#   
#   Vendor Sealevel suggested these changes for its new board.  Tried
#   them, they work with the card.  Please apply the patch below, which
#   was made from 2.6.10 but can be applied to 2.6.11.2 without errors.
# 
# include/linux/pci_ids.h
#   2005/03/19 18:20:34+00:00 dick@com.rmk.(none) +1 -0
#   [PATCH] sealevel 8 port RS-232/RS-422/RS-485 board
# 
# drivers/serial/8250_pci.c
#   2005/03/19 18:20:34+00:00 dick@com.rmk.(none) +3 -0
#   [PATCH] sealevel 8 port RS-232/RS-422/RS-485 board
# 
# drivers/pci/pci.ids
#   2005/03/19 18:20:32+00:00 dick@com.rmk.(none) +1 -0
#   [PATCH] sealevel 8 port RS-232/RS-422/RS-485 board
# 
# ChangeSet
#   2005/03/19 16:22:50+00:00 afong@org.rmk.(none) 
#   [SERIAL] 8250/sbc8560 bug/fix
#   
#   Patch from Amy Fong
#   
#   On the sbc8560 platform, changes were introduced as of 2.6.10-rc2
#   which caused the sbc8560 to splutter noise all over the serial
#   console.  It seems that ALPHA_KLUDGE_MCR was mulitply and differently
#   defined in both drivers/serial/8250.h and include/linux/serialP.h
#    
#   Below is a patch that clones the definition of ALPHA_KLUDGE_MCR from
#   serialP.h, it has been tested and works on the sbc8560.
# 
# drivers/serial/8250.h
#   2005/03/19 16:17:38+00:00 afong@org.rmk.(none) +7 -0
#   [PATCH] 8250/sbc8560 bug/fix
# 
# ChangeSet
#   2005/03/19 16:11:36+00:00 alex.williamson@com.rmk.(none) 
#   [SERIAL] new hp diva console port
#   
#   Patch from Alex Williamson
#   
#   The patch below adds IDs and setup for a new PCI Diva console port.
#   This device provides a single UART described by PCI Bar 1.  ID already
#   submitted to pciids.sf.net.
#   
#   Signed-off-by: Alex Williamson
# 
# include/linux/pci_ids.h
#   2005/03/19 16:06:09+00:00 alex.williamson@com.rmk.(none) +1 -0
#   [PATCH] new hp diva console port
# 
# drivers/serial/8250_pci.c
#   2005/03/19 16:06:08+00:00 alex.williamson@com.rmk.(none) +3 -0
#   [PATCH] new hp diva console port
# 
# drivers/pci/pci.ids
#   2005/03/19 16:06:07+00:00 alex.williamson@com.rmk.(none) +1 -0
#   [PATCH] new hp diva console port
# 
diff -Nru a/drivers/pci/pci.ids b/drivers/pci/pci.ids
--- a/drivers/pci/pci.ids	2005-03-20 16:41:33 -08:00
+++ b/drivers/pci/pci.ids	2005-03-20 16:41:33 -08:00
@@ -1812,6 +1812,7 @@
 		103c 1226  Keystone SP2
 		103c 1227  Powerbar SP2
 		103c 1282  Everest SP2
+		103c 1301  Diva RMP3
 	1054  PCI Local Bus Adapter
 	1064  79C970 PCnet Ethernet Controller
 	108b  Visualize FXe
@@ -6304,6 +6305,7 @@
 	7401  Four Port RS-232 Interface
 	7402  Four Port RS-422/485 Interface
 	7801  Eight Port RS-232 Interface
+	7804  Eight Port RS-232/422/485 Interface
 	8001  8001 Digital I/O Adapter
 135f  I-Data International A-S
 1360  Meinberg Funkuhren
diff -Nru a/drivers/serial/8250.h b/drivers/serial/8250.h
--- a/drivers/serial/8250.h	2005-03-20 16:41:33 -08:00
+++ b/drivers/serial/8250.h	2005-03-20 16:41:33 -08:00
@@ -80,6 +80,13 @@
  * is cleared, the machine locks up with endless interrupts.
  */
 #define ALPHA_KLUDGE_MCR  (UART_MCR_OUT2 | UART_MCR_OUT1)
+#elif defined(CONFIG_SBC8560)
+/*
+ * WindRiver did something similarly broken on their SBC8560 board. The
+ * UART tristates its IRQ output while OUT2 is clear, but they pulled
+ * the interrupt line _up_ instead of down, so if we register the IRQ
+ * while the UART is in that state, we die in an IRQ storm. */
+#define ALPHA_KLUDGE_MCR (UART_MCR_OUT2)
 #else
 #define ALPHA_KLUDGE_MCR 0
 #endif
diff -Nru a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
--- a/drivers/serial/8250_pci.c	2005-03-20 16:41:33 -08:00
+++ b/drivers/serial/8250_pci.c	2005-03-20 16:41:33 -08:00
@@ -1877,6 +1877,9 @@
 	{	PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_COMM8,
 		PCI_ANY_ID, PCI_ANY_ID, 0, 0, 
 		pbn_b2_8_115200 },
+	{	PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_UCOMM8,
+		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+		pbn_b2_8_115200 },
 
 	{	PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_GTEK_SERIAL2,
 		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
@@ -2184,6 +2187,9 @@
 	/*
 	 * HP Diva card
 	 */
+	{	PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_DIVA,
+		PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_DIVA_RMP3, 0, 0,
+		pbn_b1_1_115200 },
 	{	PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_DIVA,
 		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
 		pbn_b0_5_115200 },
diff -Nru a/include/linux/pci_ids.h b/include/linux/pci_ids.h
--- a/include/linux/pci_ids.h	2005-03-20 16:41:33 -08:00
+++ b/include/linux/pci_ids.h	2005-03-20 16:41:33 -08:00
@@ -709,6 +709,7 @@
 #define PCI_DEVICE_ID_HP_SX1000_IOC	0x127c
 #define PCI_DEVICE_ID_HP_DIVA_EVEREST	0x1282
 #define PCI_DEVICE_ID_HP_DIVA_AUX	0x1290
+#define PCI_DEVICE_ID_HP_DIVA_RMP3	0x1301
 #define PCI_DEVICE_ID_HP_CISSA		0x3220
 #define PCI_DEVICE_ID_HP_CISSB		0x3230
 #define PCI_DEVICE_ID_HP_ZX2_IOC	0x4031
@@ -1908,6 +1909,7 @@
 #define PCI_DEVICE_ID_SEALEVEL_UCOMM232	0x7202
 #define PCI_DEVICE_ID_SEALEVEL_COMM4	0x7401
 #define PCI_DEVICE_ID_SEALEVEL_COMM8	0x7801
+#define PCI_DEVICE_ID_SEALEVEL_UCOMM8	0x7804
 
 #define PCI_VENDOR_ID_HYPERCOPE		0x1365
 #define PCI_DEVICE_ID_HYPERCOPE_PLX	0x9050
