09 Aug, 2019

1 commit


17 Mar, 2019

4 commits


22 Dec, 2018

1 commit

  • The x/y command parsing has been broken since commit 129957069e6a
    ("staging: panel: Fixed checkpatch warning about simple_strtoul()").

    Commit b34050fadb86 ("auxdisplay: charlcd: Fix and clean up handling of
    x/y commands") fixed some problems by rewriting the parsing code,
    but also broke things further by removing the check for a complete
    command before attempting to parse it. As a result, parsing is
    terminated at the first x or y character.

    This reinstates the check for a final semicolon. Whereas the original
    code use strchr(), this is wasteful seeing as the semicolon is always
    at the end of the buffer. Thus check this character directly instead.

    Signed-off-by: Mans Rullgard
    Signed-off-by: Miguel Ojeda

    Mans Rullgard
     

02 Aug, 2018

1 commit

  • The function long_sleep() calls mdelay() when in an interrupt handler.
    But only charlcd_clear_display() and charlcd_init_display calls
    long_sleep(), and my tool finds that the two functions
    are never called in an interrupt handler.
    Thus mdelay() and in_interrupt() are not necessary.

    This is found by a static analysis tool named DCNS written by myself.

    Signed-off-by: Jia-Ju Bai
    Acked-by: Willy Tarreau
    Signed-off-by: Miguel Ojeda

    Jia-Ju Bai
     

13 Apr, 2018

7 commits


18 Sep, 2017

1 commit

  • Commit f4757af ("staging: panel: Fix single-open policy race condition")
    introduced in 3.19-rc1 attempted to fix a race condition on the open, but
    failed to properly do it and used to exit without restoring the semaphore.

    This results in -EBUSY being returned after the first open error until
    the module is reloaded or the system restarted (ie: consecutive to a
    dual open resulting in -EBUSY or to a permission error).

    [ Note for stable maintainers: the code moved from drivers/misc/panel.c
    to drivers/auxdisplay/{charlcd,panel}.c during 4.12. The patch easily
    applies there (modulo the renamed atomic counter) but I can provide a
    tested backport if desired. ]

    Fixes: f4757af85 # 3.19-rc1
    Cc: stable@vger.kernel.org
    Cc: Mariusz Gorski
    Cc: Geert Uytterhoeven
    Cc: Miguel Ojeda Sandonis
    Signed-off-by: Willy Tarreau
    Signed-off-by: Greg Kroah-Hartman

    Willy Tarreau
     

17 Mar, 2017

3 commits

  • On displays with more than two lines, the additional lines are stored in
    the buffers used for the first two lines, but beyond the visible parts.
    Adjust the DDRAM address calculation to cater for this.

    When clearing the display, avoid writing more spaces than the actual
    size of the physical buffer.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • In 4-bit mode, 8-bit commands and data are written using two raw writes
    to the data interface: high nibble first, low nibble last. This must be
    handled by the low-level driver.

    However, as we don't know in which mode (4-bit or 8-bit) nor 4-bit phase
    the LCD was left, initialization must always be handled using raw
    writes, and needs to configure the LCD for 8-bit mode first.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • Extract the character LCD core from the Parallel port LCD/Keypad Panel
    driver in the misc subsystem, and convert it into a subdriver in the
    auxdisplay subsystem. This allows the character LCD core to be used by
    other drivers later.

    Compilation is controlled by its own Kconfig symbol CHARLCD, which is to
    be selected by its users, but can be enabled manually for
    compile-testing.

    All functions changed their prefix from "lcd_" to "charlcd_", and gained
    a "struct charlcd *" parameter to operate on a specific instance.
    While the driver API thus is ready to support multiple instances, the
    current limitation of a single display (/dev/lcd has a single misc minor
    assigned) is retained.

    No functional changes intended.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven