Merge branches 'sh/pm-runtime' and 'common/clkfwk' into sh-fixes-for-linus
[pandora-kernel.git] / drivers / tty / serial / sh-sci.c
index 1b6ec56..aff9d61 100644 (file)
@@ -1465,12 +1465,8 @@ static bool filter(struct dma_chan *chan, void *slave)
        dev_dbg(chan->device->dev, "%s: slave ID %d\n", __func__,
                param->slave_id);
 
        dev_dbg(chan->device->dev, "%s: slave ID %d\n", __func__,
                param->slave_id);
 
-       if (param->dma_dev == chan->device->dev) {
-               chan->private = param;
-               return true;
-       } else {
-               return false;
-       }
+       chan->private = param;
+       return true;
 }
 
 static void rx_timer_fn(unsigned long arg)
 }
 
 static void rx_timer_fn(unsigned long arg)
@@ -1496,10 +1492,10 @@ static void sci_request_dma(struct uart_port *port)
        dma_cap_mask_t mask;
        int nent;
 
        dma_cap_mask_t mask;
        int nent;
 
-       dev_dbg(port->dev, "%s: port %d DMA %p\n", __func__,
-               port->line, s->cfg->dma_dev);
+       dev_dbg(port->dev, "%s: port %d\n", __func__,
+               port->line);
 
 
-       if (!s->cfg->dma_dev)
+       if (s->cfg->dma_slave_tx <= 0 || s->cfg->dma_slave_rx <= 0)
                return;
 
        dma_cap_zero(mask);
                return;
 
        dma_cap_zero(mask);
@@ -1509,7 +1505,6 @@ static void sci_request_dma(struct uart_port *port)
 
        /* Slave ID, e.g., SHDMA_SLAVE_SCIF0_TX */
        param->slave_id = s->cfg->dma_slave_tx;
 
        /* Slave ID, e.g., SHDMA_SLAVE_SCIF0_TX */
        param->slave_id = s->cfg->dma_slave_tx;
-       param->dma_dev = s->cfg->dma_dev;
 
        s->cookie_tx = -EINVAL;
        chan = dma_request_channel(mask, filter, param);
 
        s->cookie_tx = -EINVAL;
        chan = dma_request_channel(mask, filter, param);
@@ -1538,7 +1533,6 @@ static void sci_request_dma(struct uart_port *port)
 
        /* Slave ID, e.g., SHDMA_SLAVE_SCIF0_RX */
        param->slave_id = s->cfg->dma_slave_rx;
 
        /* Slave ID, e.g., SHDMA_SLAVE_SCIF0_RX */
        param->slave_id = s->cfg->dma_slave_rx;
-       param->dma_dev = s->cfg->dma_dev;
 
        chan = dma_request_channel(mask, filter, param);
        dev_dbg(port->dev, "%s: RX: got channel %p\n", __func__, chan);
 
        chan = dma_request_channel(mask, filter, param);
        dev_dbg(port->dev, "%s: RX: got channel %p\n", __func__, chan);
@@ -1583,9 +1577,6 @@ static void sci_free_dma(struct uart_port *port)
 {
        struct sci_port *s = to_sci_port(port);
 
 {
        struct sci_port *s = to_sci_port(port);
 
-       if (!s->cfg->dma_dev)
-               return;
-
        if (s->chan_tx)
                sci_tx_dma_release(s, false);
        if (s->chan_rx)
        if (s->chan_tx)
                sci_tx_dma_release(s, false);
        if (s->chan_rx)
@@ -2000,9 +1991,9 @@ static int __devinit sci_init_single(struct platform_device *dev,
        port->serial_in         = sci_serial_in;
        port->serial_out        = sci_serial_out;
 
        port->serial_in         = sci_serial_in;
        port->serial_out        = sci_serial_out;
 
-       if (p->dma_dev)
-               dev_dbg(port->dev, "DMA device %p, tx %d, rx %d\n",
-                       p->dma_dev, p->dma_slave_tx, p->dma_slave_rx);
+       if (p->dma_slave_tx > 0 && p->dma_slave_rx > 0)
+               dev_dbg(port->dev, "DMA tx %d, rx %d\n",
+                       p->dma_slave_tx, p->dma_slave_rx);
 
        return 0;
 }
 
        return 0;
 }