<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/auxdisplay/charlcd.c, branch linux-4.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-01-13T08:51:03Z</updated>
<entry>
<title>auxdisplay: charlcd: fix x/y command parsing</title>
<updated>2019-01-13T08:51:03Z</updated>
<author>
<name>Mans Rullgard</name>
</author>
<published>2018-12-05T13:52:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=218c81851f11712653487ee36a7a564ea3b7a254'/>
<id>urn:sha1:218c81851f11712653487ee36a7a564ea3b7a254</id>
<content type='text'>
[ Upstream commit 9bc30ab82108e6a34dc63bf956b49edf71b1681a ]

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 &lt;mans@mansr.com&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: delete mdelay in long_sleep</title>
<updated>2018-08-01T16:55:36Z</updated>
<author>
<name>Jia-Ju Bai</name>
</author>
<published>2018-01-26T15:19:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=171613926abc9980e58cb36d5d54fe60e58a03a5'/>
<id>urn:sha1:171613926abc9980e58cb36d5d54fe60e58a03a5</id>
<content type='text'>
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 &lt;baijiaju1990@gmail.com&gt;
Acked-by: Willy Tarreau &lt;w@1wt.eu&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: Replace licenses with SPDX identifiers</title>
<updated>2018-04-12T17:02:45Z</updated>
<author>
<name>Miguel Ojeda</name>
</author>
<published>2018-02-17T19:33:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=351f683b9823a3d1bffb6e2e3f381601aa0b2671'/>
<id>urn:sha1:351f683b9823a3d1bffb6e2e3f381601aa0b2671</id>
<content type='text'>
Cc: Philippe Ombredanne &lt;pombredanne@nexb.com&gt;
Acked-by: Willy Tarreau &lt;w@1wt.eu&gt;
Acked-by: Linus Walleij &lt;triad@dflund.se&gt;
Acked-by: Robin van der Gracht &lt;robin@protonic.nl&gt;
Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: Fix and clean up handling of x/y commands</title>
<updated>2018-04-12T17:02:44Z</updated>
<author>
<name>Miguel Ojeda</name>
</author>
<published>2018-02-27T22:09:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b34050fadb86c55d2066ec78a9d05e9809ff5812'/>
<id>urn:sha1:b34050fadb86c55d2066ec78a9d05e9809ff5812</id>
<content type='text'>
The current version is not parsing multiple x/y commands as the code
originally intended. On top of that, kstrtoul() expects
NULL-terminated strings. Finally, the code does two passes over
the string.

Some explanations about the supported syntax are added as well.

Cc: Willy Tarreau &lt;w@1wt.eu&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: Andy Shevchenko &lt;andy.shevchenko@gmail.com&gt;
Cc: Robert Abel &lt;rabel@robertabel.eu&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: fix hex literal ranges for graphics command</title>
<updated>2018-04-12T17:02:44Z</updated>
<author>
<name>Robert Abel</name>
</author>
<published>2018-02-09T23:50:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e8c04f75731bbd968fa77e94ed856f2dcf53ae6'/>
<id>urn:sha1:2e8c04f75731bbd968fa77e94ed856f2dcf53ae6</id>
<content type='text'>
The graphics command expects 16 hexadecimal literals, but would allow
characters in range [0-9a-zA-Z] instead of [0-9a-fA-F].

Signed-off-by: Robert Abel &lt;rabel@robertabel.eu&gt;
Acked-by: Willy Tarreau &lt;w@1wt.eu&gt;
Reviewed-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: fix two-line command ^[[LN not marked as processed</title>
<updated>2018-04-12T17:02:43Z</updated>
<author>
<name>Robert Abel</name>
</author>
<published>2018-02-25T23:54:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=99b9b4909c72e06b46e2fdf083c96b585cb84adb'/>
<id>urn:sha1:99b9b4909c72e06b46e2fdf083c96b585cb84adb</id>
<content type='text'>
Signed-off-by: Robert Abel &lt;rabel@robertabel.eu&gt;
Reviewed-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: replace octal literal with form-feed escape sequence</title>
<updated>2018-04-12T17:02:43Z</updated>
<author>
<name>Robert Abel</name>
</author>
<published>2018-02-09T23:50:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9629ccca3b82491402ebbed8c03d34d32bb59d58'/>
<id>urn:sha1:9629ccca3b82491402ebbed8c03d34d32bb59d58</id>
<content type='text'>
There is no need to resort to octal escape sequence for the form feed
character when an established escape sequence exists.

Signed-off-by: Robert Abel &lt;rabel@robertabel.eu&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: use null character instead of zero literal to terminate strings</title>
<updated>2018-04-12T17:02:43Z</updated>
<author>
<name>Robert Abel</name>
</author>
<published>2018-02-09T23:50:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8c483758afe4f1dc34cb8319f36302aa31776ac9'/>
<id>urn:sha1:8c483758afe4f1dc34cb8319f36302aa31776ac9</id>
<content type='text'>
Using '\0' instead of plain 0 makes the intent clearer that this is
indeed a string and not a series of integers.

Signed-off-by: Robert Abel &lt;rabel@robertabel.eu&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing changes</title>
<updated>2018-04-12T17:02:42Z</updated>
<author>
<name>Sean Young</name>
</author>
<published>2018-01-15T09:43:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54bc937f0cc2a7b9cb9802b9992f936259d015a1'/>
<id>urn:sha1:54bc937f0cc2a7b9cb9802b9992f936259d015a1</id>
<content type='text'>
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 &lt;sean@mess.org&gt;
Reviewed-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Miguel Ojeda &lt;miguel.ojeda.sandonis@gmail.com&gt;
</content>
</entry>
<entry>
<title>auxdisplay: charlcd: properly restore atomic counter on error path</title>
<updated>2017-09-18T14:06:00Z</updated>
<author>
<name>Willy Tarreau</name>
</author>
<published>2017-09-07T13:37:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93dc1774d2a4c7a298d5cdf78cc8acdcb7b1428d'/>
<id>urn:sha1:93dc1774d2a4c7a298d5cdf78cc8acdcb7b1428d</id>
<content type='text'>
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 &lt;marius.gorski@gmail.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: Miguel Ojeda Sandonis &lt;miguel.ojeda.sandonis@gmail.com&gt;
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
