linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: poeschel@lemonage.de
To: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>,
	linux-kernel@vger.kernel.org (open list)
Cc: Lars Poeschel <poeschel@lemonage.de>, Willy Tarreau <w@1wt.eu>
Subject: [PATCH v6 23/25] auxdisplay: charlcd: Do not print chars at end of line
Date: Tue,  3 Nov 2020 10:58:26 +0100	[thread overview]
Message-ID: <20201103095828.515831-24-poeschel@lemonage.de> (raw)
In-Reply-To: <20201103095828.515831-1-poeschel@lemonage.de>

From: Lars Poeschel <poeschel@lemonage.de>

Skip printing characters at the end of a display line. This fits to the
behaviour we already had, that the cursor is nailed to the last position
of a line.
This might slightly change behaviour.
On hd44780 displays with one or two lines the previous implementation
did still write characters to the buffer of the display even if they are
currently not visible. The shift_display command could be used to set
the "viewing window" to a new position in the buffer and then you could
see the characters previously written.
This described behaviour does not work for hd44780 displays with more
than two display lines. There simply is not enough buffer.
So the behaviour was a bit inconsistent across different displays.
The new behaviour is to stop writing characters at the end of a visible
line, even if there would be room in the buffer. This allows us to have
an easy implementation, that should behave equal on all supported
displays. This is not hd44780 hardware dependent anymore.

Reviewed-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Lars Poeschel <poeschel@lemonage.de>
---
Changes in v6:
- Fix some typos in commit message

Changes in v3:
- Better patch description
---
 drivers/auxdisplay/charlcd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/auxdisplay/charlcd.c b/drivers/auxdisplay/charlcd.c
index ef10b5ca0e16..f43430e9dcee 100644
--- a/drivers/auxdisplay/charlcd.c
+++ b/drivers/auxdisplay/charlcd.c
@@ -111,6 +111,9 @@ static void charlcd_home(struct charlcd *lcd)
 
 static void charlcd_print(struct charlcd *lcd, char c)
 {
+	if (lcd->addr.x >= lcd->width)
+		return;
+
 	if (lcd->char_conv)
 		c = lcd->char_conv[(unsigned char)c];
 
-- 
2.28.0


  parent reply	other threads:[~2020-11-03  9:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-03  9:58 [PATCH v6 00/25] Make charlcd device independent poeschel
2020-11-03  9:58 ` [PATCH v6 01/25] auxdisplay: Use an enum for charlcd backlight on/off ops poeschel
2020-11-03  9:58 ` [PATCH v6 02/25] auxdisplay: Introduce hd44780_common.[ch] poeschel
2020-11-03  9:58 ` [PATCH v6 03/25] auxdisplay: Move hwidth and bwidth to struct hd44780_common poeschel
2020-11-03  9:58 ` [PATCH v6 04/25] auxdisplay: Move ifwidth " poeschel
2020-11-03  9:58 ` [PATCH v6 05/25] auxdisplay: Move write_data pointer to hd44780_common poeschel
2020-11-03  9:58 ` [PATCH v6 06/25] auxdisplay: Move write_cmd pointers to hd44780 drivers poeschel
2020-11-03  9:58 ` [PATCH v6 07/25] auxdisplay: Move addr out of charlcd_priv poeschel
2020-11-03  9:58 ` [PATCH v6 08/25] auxdisplay: hd44780_common_print poeschel
2020-11-03  9:58 ` [PATCH v6 09/25] auxdisplay: provide hd44780_common_gotoxy poeschel
2020-11-03  9:58 ` [PATCH v6 10/25] auxdisplay: add home to charlcd_ops poeschel
2020-11-03  9:58 ` [PATCH v6 11/25] auxdisplay: Move clear_display to hd44780_common poeschel
2020-11-03  9:58 ` [PATCH v6 12/25] auxdisplay: make charlcd_backlight visible " poeschel
2020-11-03  9:58 ` [PATCH v6 13/25] auxdisplay: Make use of enum for backlight on / off poeschel
2020-11-03  9:58 ` [PATCH v6 14/25] auxdisplay: Move init_display to hd44780_common poeschel
2020-11-03  9:58 ` [PATCH v6 15/25] auxdisplay: implement various hd44780_common_ functions poeschel
2020-11-03  9:58 ` [PATCH v6 16/25] auxdisplay: cleanup unnecessary hd44780 code in charlcd poeschel
2020-11-03  9:58 ` [PATCH v6 17/25] auxdisplay: Move char redefine code to hd44780_common poeschel
2020-11-03  9:58 ` [PATCH v6 18/25] auxdisplay: Call charlcd_backlight in place poeschel
2020-11-03  9:58 ` [PATCH v6 19/25] auxdisplay: hd44780_common: Reduce clear_display timeout poeschel
2020-11-03  9:58 ` [PATCH v6 20/25] auxdisplay: hd44780: Remove clear_fast poeschel
2020-11-03  9:58 ` [PATCH v6 21/25] auxdisplay: charlcd: replace last device specific stuff poeschel
2020-11-03  9:58 ` [PATCH v6 22/25] auxdisplay: Change gotoxy calling interface poeschel
2020-11-03  9:58 ` poeschel [this message]
2020-11-03  9:58 ` [PATCH v6 24/25] auxdisplay: lcd2s DT binding doc poeschel
2020-11-03  9:58 ` [PATCH v6 25/25] auxdisplay: add a driver for lcd2s character display poeschel
2020-11-04 13:30 ` [PATCH v6 00/25] Make charlcd device independent Miguel Ojeda
2020-11-06 10:11   ` Lars Poeschel
2020-11-06 12:17     ` Miguel Ojeda
2020-11-06 16:35       ` Randy Dunlap
2020-11-09  9:31         ` [PATCH] auxdisplay: hd44780_common: Fix build error poeschel
2020-11-09  9:45           ` Miguel Ojeda
2020-11-09 17:30           ` Randy Dunlap
2020-11-09  9:53         ` [PATCH v6 00/25] Make charlcd device independent Miguel Ojeda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201103095828.515831-24-poeschel@lemonage.de \
    --to=poeschel@lemonage.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miguel.ojeda.sandonis@gmail.com \
    --cc=w@1wt.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).