This series was sent wrong. Should be v5. Drop this one. Sorry and thanks, Lars
On Thu, Oct 29, 2020 at 10:50:07AM +0100, poesc...@lemonage.de wrote: > From: Lars Poeschel <poesc...@lemonage.de> > > This tries to make charlcd device independent. At the moment hd44780 > device specific code is contained deep in charlcd. This moves this out > into a hd44780_common module, where the two hd44780 drivers we have at > the moment (hd44780 and panel) can use this from. The goal is that at > the end other drivers can use the charlcd interface. > I add one such driver for a modtronix lcd displau with the last patch. > I submitted this already some time ago, where the wish was so split > this into smaller chunks what I try to do with this patchset. > > This is v5 of the patchset. I address a few review comments with this. > I fixed some typos, but more importantly Miguel spotted that I reverted > commit 3f03b6498 ("auxdisplay: charlcd: Reuse hex_to_bin() instead of > custom code") during rebasing. This is corrected now. > > As a note to patch 23: > 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 so 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 inconsistens across different displays. > The new behaviour is to stop writing character 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. > > Link: https://lore.kernel.org/lkml/20191016082430.5955-1-poesc...@lemonage.de/ > Link: > https://lore.kernel.org/lkml/CANiq72kS-u_Xd_m+2CQVh-JCncPf1XNXrXAZ=4z+mze8fwv...@mail.gmail.com/ > > Changes in v5: > - patch 1: Fix a commit message typo: of -> on > - patch 2: Remove some unnecessary newlines > - patch 8: Fix some typos > - patch 14: Fix commit message typo: it's -> its > - patch 15: this patch is squashed together from the former individual > hd44780_common_ function patches > - patch 16: combined two cleanup patches > - patch 17: I did previously undo commit 3f03b6498 which was a mistake. > This is now corrected. > - patch 24: Picked up Robs Reviewed-by > - patch 25: use hex_to_bin like in commit 3f03b6498 but for the lcd2s.c > file > > Changes in v4: > - modtronix -> Modtronix in new lcd2s driver > - Kconfig: remove "default n" in new lcd2s driver > > Changes in v3: > - Fix some typos in Kconfig stuff > - Fix kernel test robot reported error: Missed EXPORT_SYMBOL_GPL > - new patch to reduce display timeout > - better patch description to why not move cursor beyond end of a line > - Fixed make dt_binding_doc errors > > Changes in v2: > - split whole patch into many smaller chunks > - device tree doc in yaml > > Lars Poeschel (25): > auxdisplay: Use an enum for charlcd backlight on/off ops > auxdisplay: Introduce hd44780_common.[ch] > auxdisplay: Move hwidth and bwidth to struct hd44780_common > auxdisplay: Move ifwidth to struct hd44780_common > auxdisplay: Move write_data pointer to hd44780_common > auxdisplay: Move write_cmd pointers to hd44780 drivers > auxdisplay: Move addr out of charlcd_priv > auxdisplay: hd44780_common_print > auxdisplay: provide hd44780_common_gotoxy > auxdisplay: add home to charlcd_ops > auxdisplay: Move clear_display to hd44780_common > auxdisplay: make charlcd_backlight visible to hd44780_common > auxdisplay: Make use of enum for backlight on / off > auxdisplay: Move init_display to hd44780_common > auxdisplay: implement various hd44780_common_ functions > auxdisplay: cleanup unnecessary hd44780 code in charlcd > auxdisplay: Move char redefine code to hd44780_common > auxdisplay: Call charlcd_backlight in place > auxdisplay: hd44780_common: Reduce clear_display timeout > auxdisplay: hd44780: Remove clear_fast > auxdisplay: charlcd: replace last device specific stuff > auxdisplay: Change gotoxy calling interface > auxdisplay: charlcd: Do not print chars at end of line > auxdisplay: lcd2s DT binding doc > auxdisplay: add a driver for lcd2s character display > > .../bindings/auxdisplay/modtronix,lcd2s.yaml | 58 +++ > .../devicetree/bindings/vendor-prefixes.yaml | 2 + > drivers/auxdisplay/Kconfig | 30 ++ > drivers/auxdisplay/Makefile | 2 + > drivers/auxdisplay/charlcd.c | 412 +++++------------- > drivers/auxdisplay/charlcd.h | 86 +++- > drivers/auxdisplay/hd44780.c | 120 +++-- > drivers/auxdisplay/hd44780_common.c | 361 +++++++++++++++ > drivers/auxdisplay/hd44780_common.h | 33 ++ > drivers/auxdisplay/lcd2s.c | 403 +++++++++++++++++ > drivers/auxdisplay/panel.c | 180 ++++---- > 11 files changed, 1237 insertions(+), 450 deletions(-) > create mode 100644 > Documentation/devicetree/bindings/auxdisplay/modtronix,lcd2s.yaml > create mode 100644 drivers/auxdisplay/hd44780_common.c > create mode 100644 drivers/auxdisplay/hd44780_common.h > create mode 100644 drivers/auxdisplay/lcd2s.c > > -- > 2.28.0 >