Commit e7c310c3 authored by Niels de Vos's avatar Niels de Vos Committed by Linus Torvalds

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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f84d5a76
...@@ -2424,7 +2424,6 @@ static int __devinit sio_ite_8872_probe (struct pci_dev *pdev, int autoirq, ...@@ -2424,7 +2424,6 @@ static int __devinit sio_ite_8872_probe (struct pci_dev *pdev, int autoirq,
u32 ite8872set; u32 ite8872set;
u32 ite8872_lpt, ite8872_lpthi; u32 ite8872_lpt, ite8872_lpthi;
u8 ite8872_irq, type; u8 ite8872_irq, type;
char *fake_name = "parport probe";
int irq; int irq;
int i; int i;
...@@ -2432,11 +2431,11 @@ static int __devinit sio_ite_8872_probe (struct pci_dev *pdev, int autoirq, ...@@ -2432,11 +2431,11 @@ static int __devinit sio_ite_8872_probe (struct pci_dev *pdev, int autoirq,
// make sure which one chip // make sure which one chip
for(i = 0; i < 5; i++) { 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) { if (base_res) {
int test; int test;
pci_write_config_dword (pdev, 0x60, pci_write_config_dword (pdev, 0x60,
0xe7000000 | inta_addr[i]); 0xe5000000 | inta_addr[i]);
pci_write_config_dword (pdev, 0x78, pci_write_config_dword (pdev, 0x78,
0x00000000 | inta_addr[i]); 0x00000000 | inta_addr[i]);
test = inb (inta_addr[i]); test = inb (inta_addr[i]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment