aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2010-03-19 00:47:01 -0400
committerPaul Mundt <lethal@linux-sh.org>2010-03-23 04:19:50 -0400
commitf354a38175f5219146f4675dca770e114cf3c502 (patch)
tree559e5f3686836e3d068a3ef90ced6902e6682d76 /drivers/serial
parent02ca5083f60521d09f13224596564a405108bc4c (diff)
serial: sh-sci: Use sg_dma_len() and sg_dma_address()
Convert the dmaengine code in sh-sci.c from directly accessing the struct scatterlist members length, dma_length and dma_address to using the macros sg_dma_len() and sg_dma_address(). Makes the code build for ARM. Signed-off-by: Magnus Damm <damm@opensource.se> Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/sh-sci.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 2d9a06db83b5..cd52dd64edf0 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -916,10 +916,10 @@ static void sci_dma_tx_complete(void *arg)
916 916
917 spin_lock_irqsave(&port->lock, flags); 917 spin_lock_irqsave(&port->lock, flags);
918 918
919 xmit->tail += s->sg_tx.length; 919 xmit->tail += sg_dma_len(&s->sg_tx);
920 xmit->tail &= UART_XMIT_SIZE - 1; 920 xmit->tail &= UART_XMIT_SIZE - 1;
921 921
922 port->icount.tx += s->sg_tx.length; 922 port->icount.tx += sg_dma_len(&s->sg_tx);
923 923
924 async_tx_ack(s->desc_tx); 924 async_tx_ack(s->desc_tx);
925 s->cookie_tx = -EINVAL; 925 s->cookie_tx = -EINVAL;
@@ -1134,14 +1134,13 @@ static void work_fn_tx(struct work_struct *work)
1134 */ 1134 */
1135 spin_lock_irq(&port->lock); 1135 spin_lock_irq(&port->lock);
1136 sg->offset = xmit->tail & (UART_XMIT_SIZE - 1); 1136 sg->offset = xmit->tail & (UART_XMIT_SIZE - 1);
1137 sg->dma_address = (sg_dma_address(sg) & ~(UART_XMIT_SIZE - 1)) + 1137 sg_dma_address(sg) = (sg_dma_address(sg) & ~(UART_XMIT_SIZE - 1)) +
1138 sg->offset; 1138 sg->offset;
1139 sg->length = min((int)CIRC_CNT(xmit->head, xmit->tail, UART_XMIT_SIZE), 1139 sg_dma_len(sg) = min((int)CIRC_CNT(xmit->head, xmit->tail, UART_XMIT_SIZE),
1140 CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE)); 1140 CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE));
1141 sg->dma_length = sg->length;
1142 spin_unlock_irq(&port->lock); 1141 spin_unlock_irq(&port->lock);
1143 1142
1144 BUG_ON(!sg->length); 1143 BUG_ON(!sg_dma_len(sg));
1145 1144
1146 desc = chan->device->device_prep_slave_sg(chan, 1145 desc = chan->device->device_prep_slave_sg(chan,
1147 sg, s->sg_len_tx, DMA_TO_DEVICE, 1146 sg, s->sg_len_tx, DMA_TO_DEVICE,
@@ -1342,8 +1341,7 @@ static void sci_request_dma(struct uart_port *port)
1342 sg_init_table(sg, 1); 1341 sg_init_table(sg, 1);
1343 sg_set_page(sg, virt_to_page(buf[i]), s->buf_len_rx, 1342 sg_set_page(sg, virt_to_page(buf[i]), s->buf_len_rx,
1344 (int)buf[i] & ~PAGE_MASK); 1343 (int)buf[i] & ~PAGE_MASK);
1345 sg->dma_address = dma[i]; 1344 sg_dma_address(sg) = dma[i];
1346 sg->dma_length = sg->length;
1347 } 1345 }
1348 1346
1349 INIT_WORK(&s->work_rx, work_fn_rx); 1347 INIT_WORK(&s->work_rx, work_fn_rx);