From: Niels de Vos Date: Mon, 16 Jul 2007 06:41:35 +0000 (-0700) Subject: parport_pc: it887x fix X-Git-Tag: v2.6.23-rc1~826 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7c310c36e5fdf1b83a459e5db167bfbd86137db;p=linux-2.6 parport_pc: it887x fix 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 Signed-off-by: Linus Torvalds --- diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index 7bfbad5787..5d58ad55d8 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c @@ -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]);