Re: [PATCH 1/5] auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 15, 2018 at 10:58 AM, Sean Young <sean@xxxxxxxx> wrote:
> If the line extends beyond the width to the screen, nothing changes. The
> existing code will call charlcd_gotoxy every time for this case.
>
> Signed-off-by: Sean Young <sean@xxxxxxxx>
> ---
>  drivers/auxdisplay/charlcd.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/auxdisplay/charlcd.c b/drivers/auxdisplay/charlcd.c
> index 642afd88870b..45ec5ce697c4 100644
> --- a/drivers/auxdisplay/charlcd.c
> +++ b/drivers/auxdisplay/charlcd.c
> @@ -192,10 +192,11 @@ static void charlcd_print(struct charlcd *lcd, char c)
>                         c = lcd->char_conv[(unsigned char)c];
>                 lcd->ops->write_data(lcd, c);
>                 priv->addr.x++;
> +
> +               /* prevents the cursor from wrapping onto the next line */
> +               if (priv->addr.x == lcd->bwidth)
> +                       charlcd_gotoxy(lcd);
>         }
> -       /* prevents the cursor from wrapping onto the next line */
> -       if (priv->addr.x == lcd->bwidth)
> -               charlcd_gotoxy(lcd);
>  }
>

Willy, Geert: is this fine with you? Seems fine: charlcd_write_char()
right now does an unconditional write_cmd() when writing a normal
character; so unless some HW requires the command for some reason even
if there is nothing changed, we can skip it.

>  static void charlcd_clear_fast(struct charlcd *lcd)
> --
> 2.14.3
>



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux