[parisc-linux-cvs] Serial port changes
Matthew Wilcox
willy@ldl.fc.hp.com
Thu, 30 Aug 2001 20:03:12 -0600
This patch adds a new driver that will recognise serial port #1 on
machines where we currently get the ports in the wrong order.
Index: drivers/gsc/serial.c
===================================================================
RCS file: /home/cvs/parisc/linux/drivers/gsc/serial.c,v
retrieving revision 1.19
diff -u -p -r1.19 serial.c
--- serial.c 2001/08/17 06:10:11 1.19
+++ serial.c 2001/08/31 01:59:11
@@ -92,8 +92,40 @@ static struct parisc_device_id serial_tb
{ 0 }
};
+/* Hack. PDC reports the second serial port first on some machines.
+ * So we register this driver which knows about the _first_ serial port
+ * only on those machines. This needs to get fixed properly somehow.
+ */
+static struct parisc_device_id serial1_tbl[] = {
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x019, 0x0008C }, /* B180L+ */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x022, 0x0008C }, /* B132L+ */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x03B, 0x0008C }, /* C1xx/C1xxL */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x03C, 0x0008C }, /* B132L */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x03D, 0x0008C }, /* B160L */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x03E, 0x0008C }, /* B132L+ */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x03F, 0x0008C }, /* B180L+ */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x040, 0x0008C }, /* B132L */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x041, 0x0008C }, /* B160L */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x046, 0x0008C }, /* Rocky2 120 */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x047, 0x0008C }, /* Rocky2 150 */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x048, 0x0008C }, /* Rocky2 120 */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x049, 0x0008C }, /* Rocky2 150 */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x04E, 0x0008C }, /* Kiji L2 132 */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x04F, 0x0008C }, /* Kiji L2 132 */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x056, 0x0008C }, /* Raven+ */
+ { HPHW_FIO, HVERSION_REV_ANY_ID, 0x05F, 0x00081 }, /* A-class 180 */
+ { 0 }
+};
+
+
MODULE_DEVICE_TABLE(parisc, serial_tbl);
+static struct parisc_driver serial1_driver = {
+ name: "Serial RS232",
+ id_table: serial1_tbl,
+ probe: serial_init_chip,
+};
+
static struct parisc_driver serial_driver = {
name: "Serial RS232",
id_table: serial_tbl,
@@ -105,5 +137,6 @@ void __init probe_serial_gsc(void)
#ifdef CONFIG_SUPERIO
superio_serial_init();
#endif
+ register_parisc_driver(&serial1_driver);
register_parisc_driver(&serial_driver);
}