diff mbox

[5/8] serial: sh-sci: Use offset_in_page() helper instead of open coding

Message ID 1432145174-11534-6-git-send-email-geert+renesas@glider.be (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show

Commit Message

Geert Uytterhoeven May 20, 2015, 6:06 p.m. UTC
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 drivers/tty/serial/sh-sci.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Laurent Pinchart May 23, 2015, 7:13 p.m. UTC | #1
Hi Geert,

Thank you for the patch.

On Wednesday 20 May 2015 20:06:11 Geert Uytterhoeven wrote:
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
>  drivers/tty/serial/sh-sci.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
> index 73f4115159a7fbbc..d2734e13b17bf720 100644
> --- a/drivers/tty/serial/sh-sci.c
> +++ b/drivers/tty/serial/sh-sci.c
> @@ -1715,10 +1715,10 @@ static void sci_request_dma(struct uart_port *port)
>  		s->chan_tx = chan;
>  		sg_init_table(&s->sg_tx, 1);
>  		/* UART circular tx buffer is an aligned page. */
> -		BUG_ON((uintptr_t)port->state->xmit.buf & ~PAGE_MASK);
> +		BUG_ON(offset_in_page(port->state->xmit.buf));
>  		sg_set_page(&s->sg_tx, virt_to_page(port->state->xmit.buf),
>  			    UART_XMIT_SIZE,
> -			    (uintptr_t)port->state->xmit.buf & ~PAGE_MASK);
> +			    offset_in_page(port->state->xmit.buf));

If a non-zero offset is a bug, do we really need to pass it to sg_set_page() 
here and below ? I also expect this code to be simplified if we switch to 
dma_map_single().

>  		nent = dma_map_sg(chan->device->dev, &s->sg_tx, 1,
>  				  DMA_TO_DEVICE);
>  		if (!nent)
> @@ -1768,7 +1768,7 @@ static void sci_request_dma(struct uart_port *port)
> 
>  			sg_init_table(sg, 1);
>  			sg_set_page(sg, virt_to_page(buf[i]), s->buf_len_rx,
> -				    (uintptr_t)buf[i] & ~PAGE_MASK);
> +				    offset_in_page(buf[i]));
>  			sg_dma_address(sg) = dma[i];
>  		}
diff mbox

Patch

diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index 73f4115159a7fbbc..d2734e13b17bf720 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -1715,10 +1715,10 @@  static void sci_request_dma(struct uart_port *port)
 		s->chan_tx = chan;
 		sg_init_table(&s->sg_tx, 1);
 		/* UART circular tx buffer is an aligned page. */
-		BUG_ON((uintptr_t)port->state->xmit.buf & ~PAGE_MASK);
+		BUG_ON(offset_in_page(port->state->xmit.buf));
 		sg_set_page(&s->sg_tx, virt_to_page(port->state->xmit.buf),
 			    UART_XMIT_SIZE,
-			    (uintptr_t)port->state->xmit.buf & ~PAGE_MASK);
+			    offset_in_page(port->state->xmit.buf));
 		nent = dma_map_sg(chan->device->dev, &s->sg_tx, 1,
 				  DMA_TO_DEVICE);
 		if (!nent)
@@ -1768,7 +1768,7 @@  static void sci_request_dma(struct uart_port *port)
 
 			sg_init_table(sg, 1);
 			sg_set_page(sg, virt_to_page(buf[i]), s->buf_len_rx,
-				    (uintptr_t)buf[i] & ~PAGE_MASK);
+				    offset_in_page(buf[i]));
 			sg_dma_address(sg) = dma[i];
 		}