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 >