diff options
Diffstat (limited to 'drivers/tty/serial')
| -rw-r--r-- | drivers/tty/serial/8250/8250_dw.c | 7 | ||||
| -rw-r--r-- | drivers/tty/serial/amba-pl011.c | 2 | ||||
| -rw-r--r-- | drivers/tty/serial/mcf.c | 4 | ||||
| -rw-r--r-- | drivers/tty/serial/mpc52xx_uart.c | 11 | ||||
| -rw-r--r-- | drivers/tty/serial/nwpserial.c | 2 | ||||
| -rw-r--r-- | drivers/tty/serial/samsung.c | 1 |
6 files changed, 19 insertions, 8 deletions
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c index beaa283f5cc6..d07b6af3a937 100644 --- a/drivers/tty/serial/8250/8250_dw.c +++ b/drivers/tty/serial/8250/8250_dw.c | |||
| @@ -338,7 +338,8 @@ static int dw8250_runtime_suspend(struct device *dev) | |||
| 338 | { | 338 | { |
| 339 | struct dw8250_data *data = dev_get_drvdata(dev); | 339 | struct dw8250_data *data = dev_get_drvdata(dev); |
| 340 | 340 | ||
| 341 | clk_disable_unprepare(data->clk); | 341 | if (!IS_ERR(data->clk)) |
| 342 | clk_disable_unprepare(data->clk); | ||
| 342 | 343 | ||
| 343 | return 0; | 344 | return 0; |
| 344 | } | 345 | } |
| @@ -347,7 +348,8 @@ static int dw8250_runtime_resume(struct device *dev) | |||
| 347 | { | 348 | { |
| 348 | struct dw8250_data *data = dev_get_drvdata(dev); | 349 | struct dw8250_data *data = dev_get_drvdata(dev); |
| 349 | 350 | ||
| 350 | clk_prepare_enable(data->clk); | 351 | if (!IS_ERR(data->clk)) |
| 352 | clk_prepare_enable(data->clk); | ||
| 351 | 353 | ||
| 352 | return 0; | 354 | return 0; |
| 353 | } | 355 | } |
| @@ -367,6 +369,7 @@ MODULE_DEVICE_TABLE(of, dw8250_of_match); | |||
| 367 | static const struct acpi_device_id dw8250_acpi_match[] = { | 369 | static const struct acpi_device_id dw8250_acpi_match[] = { |
| 368 | { "INT33C4", 0 }, | 370 | { "INT33C4", 0 }, |
| 369 | { "INT33C5", 0 }, | 371 | { "INT33C5", 0 }, |
| 372 | { "80860F0A", 0 }, | ||
| 370 | { }, | 373 | { }, |
| 371 | }; | 374 | }; |
| 372 | MODULE_DEVICE_TABLE(acpi, dw8250_acpi_match); | 375 | MODULE_DEVICE_TABLE(acpi, dw8250_acpi_match); |
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index 8ab70a620919..e2774f9ecd59 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c | |||
| @@ -332,7 +332,7 @@ static void pl011_dma_probe_initcall(struct device *dev, struct uart_amba_port * | |||
| 332 | dmaengine_slave_config(chan, &rx_conf); | 332 | dmaengine_slave_config(chan, &rx_conf); |
| 333 | uap->dmarx.chan = chan; | 333 | uap->dmarx.chan = chan; |
| 334 | 334 | ||
| 335 | if (plat->dma_rx_poll_enable) { | 335 | if (plat && plat->dma_rx_poll_enable) { |
| 336 | /* Set poll rate if specified. */ | 336 | /* Set poll rate if specified. */ |
| 337 | if (plat->dma_rx_poll_rate) { | 337 | if (plat->dma_rx_poll_rate) { |
| 338 | uap->dmarx.auto_poll_rate = false; | 338 | uap->dmarx.auto_poll_rate = false; |
diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c index e956377a38fe..65be0c00c4bf 100644 --- a/drivers/tty/serial/mcf.c +++ b/drivers/tty/serial/mcf.c | |||
| @@ -707,8 +707,10 @@ static int __init mcf_init(void) | |||
| 707 | if (rc) | 707 | if (rc) |
| 708 | return rc; | 708 | return rc; |
| 709 | rc = platform_driver_register(&mcf_platform_driver); | 709 | rc = platform_driver_register(&mcf_platform_driver); |
| 710 | if (rc) | 710 | if (rc) { |
| 711 | uart_unregister_driver(&mcf_driver); | ||
| 711 | return rc; | 712 | return rc; |
| 713 | } | ||
| 712 | return 0; | 714 | return 0; |
| 713 | } | 715 | } |
| 714 | 716 | ||
diff --git a/drivers/tty/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c index 018bad922554..f51b280f3bf2 100644 --- a/drivers/tty/serial/mpc52xx_uart.c +++ b/drivers/tty/serial/mpc52xx_uart.c | |||
| @@ -1497,18 +1497,23 @@ mpc52xx_uart_init(void) | |||
| 1497 | if (psc_ops && psc_ops->fifoc_init) { | 1497 | if (psc_ops && psc_ops->fifoc_init) { |
| 1498 | ret = psc_ops->fifoc_init(); | 1498 | ret = psc_ops->fifoc_init(); |
| 1499 | if (ret) | 1499 | if (ret) |
| 1500 | return ret; | 1500 | goto err_init; |
| 1501 | } | 1501 | } |
| 1502 | 1502 | ||
| 1503 | ret = platform_driver_register(&mpc52xx_uart_of_driver); | 1503 | ret = platform_driver_register(&mpc52xx_uart_of_driver); |
| 1504 | if (ret) { | 1504 | if (ret) { |
| 1505 | printk(KERN_ERR "%s: platform_driver_register failed (%i)\n", | 1505 | printk(KERN_ERR "%s: platform_driver_register failed (%i)\n", |
| 1506 | __FILE__, ret); | 1506 | __FILE__, ret); |
| 1507 | uart_unregister_driver(&mpc52xx_uart_driver); | 1507 | goto err_reg; |
| 1508 | return ret; | ||
| 1509 | } | 1508 | } |
| 1510 | 1509 | ||
| 1511 | return 0; | 1510 | return 0; |
| 1511 | err_reg: | ||
| 1512 | if (psc_ops && psc_ops->fifoc_uninit) | ||
| 1513 | psc_ops->fifoc_uninit(); | ||
| 1514 | err_init: | ||
| 1515 | uart_unregister_driver(&mpc52xx_uart_driver); | ||
| 1516 | return ret; | ||
| 1512 | } | 1517 | } |
| 1513 | 1518 | ||
| 1514 | static void __exit | 1519 | static void __exit |
diff --git a/drivers/tty/serial/nwpserial.c b/drivers/tty/serial/nwpserial.c index 77287c54f331..549c70a2a63e 100644 --- a/drivers/tty/serial/nwpserial.c +++ b/drivers/tty/serial/nwpserial.c | |||
| @@ -199,7 +199,7 @@ static void nwpserial_shutdown(struct uart_port *port) | |||
| 199 | dcr_write(up->dcr_host, UART_IER, up->ier); | 199 | dcr_write(up->dcr_host, UART_IER, up->ier); |
| 200 | 200 | ||
| 201 | /* free irq */ | 201 | /* free irq */ |
| 202 | free_irq(up->port.irq, port); | 202 | free_irq(up->port.irq, up); |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | static int nwpserial_verify_port(struct uart_port *port, | 205 | static int nwpserial_verify_port(struct uart_port *port, |
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 074b9194144f..89429410a245 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c | |||
| @@ -1803,6 +1803,7 @@ static int __init s3c24xx_serial_modinit(void) | |||
| 1803 | 1803 | ||
| 1804 | static void __exit s3c24xx_serial_modexit(void) | 1804 | static void __exit s3c24xx_serial_modexit(void) |
| 1805 | { | 1805 | { |
| 1806 | platform_driver_unregister(&samsung_serial_driver); | ||
| 1806 | uart_unregister_driver(&s3c24xx_uart_drv); | 1807 | uart_unregister_driver(&s3c24xx_uart_drv); |
| 1807 | } | 1808 | } |
| 1808 | 1809 | ||
