mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-19 08:05:27 +08:00
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 <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f84d5a76c5
commit
e7c310c36e
@ -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,
|
|||||||
|
|
||||||
// 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]);
|
||||||
|
Loading…
Reference in New Issue
Block a user