diff options
Diffstat (limited to 'drivers/tty/serial/sh-sci.c')
| -rw-r--r-- | drivers/tty/serial/sh-sci.c | 25 | 
1 files changed, 8 insertions, 17 deletions
| diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 9871c57b348..1945c70539c 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1446,12 +1446,8 @@ static bool filter(struct dma_chan *chan, void *slave)  	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) @@ -1477,10 +1473,10 @@ static void sci_request_dma(struct uart_port *port)  	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); @@ -1490,7 +1486,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; -	param->dma_dev = s->cfg->dma_dev;  	s->cookie_tx = -EINVAL;  	chan = dma_request_channel(mask, filter, param); @@ -1519,7 +1514,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; -	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); @@ -1564,9 +1558,6 @@ static void sci_free_dma(struct uart_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) @@ -1981,9 +1972,9 @@ static int __devinit sci_init_single(struct platform_device *dev,  	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;  } | 
