parport_pc: it887x fix
authorNiels de Vos <niels.devos@wincor-nixdorf.com>
Mon, 16 Jul 2007 06:41:35 +0000 (23:41 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 16 Jul 2007 16:05:50 +0000 (09:05 -0700)
The IO port range requested by parport_pc.c:sio_ite_8872_probe is too small.
The IO-ports of ttyS1 (0x2f8) will be missconfigured by the ITE-chip.  The ITE
starts looking for the chip a 0x2a0.  An IO-portrange of 32 will not overwrite
the ports of ttyS1.  Therefore register 0x60 should be written with
0xe5000000, enabling the ITE and setting IO-portsize to 32 bytes.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/parport/parport_pc.c

index 7bfbad5..5d58ad5 100644 (file)
@@ -2424,7 +2424,6 @@ static int __devinit sio_ite_8872_probe (struct pci_dev *pdev, int autoirq,
        u32 ite8872set;
        u32 ite8872_lpt, ite8872_lpthi;
        u8 ite8872_irq, type;
-       char *fake_name = "parport probe";
        int irq;
        int i;
 
@@ -2432,11 +2431,11 @@ static int __devinit sio_ite_8872_probe (struct pci_dev *pdev, int autoirq,
        
        // make sure which one chip
        for(i = 0; i < 5; i++) {
-               base_res = request_region(inta_addr[i], 0x8, fake_name);
+               base_res = request_region(inta_addr[i], 32, "it887x");
                if (base_res) {
                        int test;
                        pci_write_config_dword (pdev, 0x60,
-                                               0xe7000000 | inta_addr[i]);
+                                               0xe5000000 | inta_addr[i]);
                        pci_write_config_dword (pdev, 0x78,
                                                0x00000000 | inta_addr[i]);
                        test = inb (inta_addr[i]);