Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
serial: mfd: fix bug in serial_hsu_remove()
serial: amba-pl010: fix set_ldisc

+11 -15
+2 -7
drivers/serial/amba-pl010.c
··· 472 472 spin_unlock_irqrestore(&uap->port.lock, flags); 473 473 } 474 474 475 - static void pl010_set_ldisc(struct uart_port *port) 475 + static void pl010_set_ldisc(struct uart_port *port, int new) 476 476 { 477 - int line = port->line; 478 - 479 - if (line >= port->state->port.tty->driver->num) 480 - return; 481 - 482 - if (port->state->port.tty->ldisc->ops->num == N_PPS) { 477 + if (new == N_PPS) { 483 478 port->flags |= UPF_HARDPPS_CD; 484 479 pl010_enable_ms(port); 485 480 } else
+9 -8
drivers/serial/mfd.c
··· 1423 1423 } 1424 1424 1425 1425 phsu = hsu; 1426 - 1427 1426 hsu_debugfs_init(hsu); 1428 1427 return; 1429 1428 ··· 1434 1435 1435 1436 static void serial_hsu_remove(struct pci_dev *pdev) 1436 1437 { 1437 - struct hsu_port *hsu; 1438 - int i; 1438 + void *priv = pci_get_drvdata(pdev); 1439 + struct uart_hsu_port *up; 1439 1440 1440 - hsu = pci_get_drvdata(pdev); 1441 - if (!hsu) 1441 + if (!priv) 1442 1442 return; 1443 1443 1444 - for (i = 0; i < 3; i++) 1445 - uart_remove_one_port(&serial_hsu_reg, &hsu->port[i].port); 1444 + /* For port 0/1/2, priv is the address of uart_hsu_port */ 1445 + if (pdev->device != 0x081E) { 1446 + up = priv; 1447 + uart_remove_one_port(&serial_hsu_reg, &up->port); 1448 + } 1446 1449 1447 1450 pci_set_drvdata(pdev, NULL); 1448 - free_irq(hsu->irq, hsu); 1451 + free_irq(pdev->irq, priv); 1449 1452 pci_disable_device(pdev); 1450 1453 } 1451 1454