serial: PL011: move interrupt clearing
[pandora-kernel.git] / drivers / tty / serial / omap-serial.c
index f809041..0121486 100644 (file)
@@ -159,7 +159,7 @@ static void serial_omap_stop_tx(struct uart_port *port)
                serial_out(up, UART_IER, up->ier);
        }
 
-       if (!up->use_dma && pdata->set_forceidle)
+       if (!up->use_dma && pdata && pdata->set_forceidle)
                pdata->set_forceidle(up->pdev);
 
        pm_runtime_mark_last_busy(&up->pdev->dev);
@@ -298,7 +298,7 @@ static void serial_omap_start_tx(struct uart_port *port)
        if (!up->use_dma) {
                pm_runtime_get_sync(&up->pdev->dev);
                serial_omap_enable_ier_thri(up);
-               if (pdata->set_noidle)
+               if (pdata && pdata->set_noidle)
                        pdata->set_noidle(up->pdev);
                pm_runtime_mark_last_busy(&up->pdev->dev);
                pm_runtime_put_autosuspend(&up->pdev->dev);
@@ -1613,7 +1613,7 @@ static int serial_omap_runtime_resume(struct device *dev)
        struct uart_omap_port *up = dev_get_drvdata(dev);
        struct omap_uart_port_info *pdata = dev->platform_data;
 
-       if (up) {
+       if (up && pdata) {
                if (pdata->get_context_loss_count) {
                        u32 loss_cnt = pdata->get_context_loss_count(dev);