Revision tags: v6.6.25, v6.6.24, v6.6.23, v6.6.16, v6.6.15, v6.6.14, v6.6.13, v6.6.12, v6.6.11, v6.6.10, v6.6.9, v6.6.8, v6.6.7, v6.6.6, v6.6.5, v6.6.4, v6.6.3, v6.6.2, v6.5.11, v6.6.1, v6.5.10, v6.6, v6.5.9, v6.5.8, v6.5.7, v6.5.6, v6.5.5, v6.5.4, v6.5.3, v6.5.2, v6.1.51, v6.5.1, v6.1.50, v6.5, v6.1.49, v6.1.48, v6.1.46, v6.1.45, v6.1.44, v6.1.43, v6.1.42, v6.1.41, v6.1.40, v6.1.39, v6.1.38, v6.1.37, v6.1.36, v6.4, v6.1.35, v6.1.34, v6.1.33, v6.1.32, v6.1.31, v6.1.30, v6.1.29, v6.1.28, v6.1.27, v6.1.26, v6.3, v6.1.25, v6.1.24, v6.1.23, v6.1.22, v6.1.21, v6.1.20, v6.1.19, v6.1.18, v6.1.17, v6.1.16, v6.1.15, v6.1.14, v6.1.13, v6.2, v6.1.12, v6.1.11, v6.1.10, v6.1.9, v6.1.8, v6.1.7, v6.1.6, v6.1.5, v6.0.19, v6.0.18, v6.1.4, v6.1.3, v6.0.17, v6.1.2, v6.0.16, v6.1.1, v6.0.15, v6.0.14, v6.0.13, v6.1, v6.0.12, v6.0.11, v6.0.10, v5.15.80, v6.0.9, v5.15.79, v6.0.8, v5.15.78, v6.0.7, v5.15.77, v5.15.76, v6.0.6, v6.0.5, v5.15.75, v6.0.4, v6.0.3, v6.0.2, v5.15.74, v5.15.73, v6.0.1, v5.15.72, v6.0, v5.15.71, v5.15.70, v5.15.69, v5.15.68, v5.15.67, v5.15.66, v5.15.65, v5.15.64, v5.15.63, v5.15.62, v5.15.61, v5.15.60, v5.15.59, v5.19, v5.15.58, v5.15.57, v5.15.56, v5.15.55, v5.15.54, v5.15.53, v5.15.52, v5.15.51, v5.15.50, v5.15.49, v5.15.48, v5.15.47, v5.15.46, v5.15.45, v5.15.44, v5.15.43, v5.15.42, v5.18, v5.15.41, v5.15.40, v5.15.39, v5.15.38, v5.15.37, v5.15.36, v5.15.35, v5.15.34, v5.15.33, v5.15.32, v5.15.31, v5.17, v5.15.30, v5.15.29, v5.15.28, v5.15.27, v5.15.26, v5.15.25, v5.15.24, v5.15.23, v5.15.22, v5.15.21, v5.15.20, v5.15.19, v5.15.18, v5.15.17, v5.4.173, v5.15.16, v5.15.15, v5.16, v5.15.10, v5.15.9, v5.15.8, v5.15.7, v5.15.6, v5.15.5, v5.15.4, v5.15.3, v5.15.2 |
|
#
4daa9ff8 |
| 09-Nov-2021 |
Luiz Sampaio <sampaio.ime@gmail.com> |
auxdisplay: charlcd: checking for pointer reference before dereferencing
Check if the pointer lcd->ops->init_display exists before dereferencing it. If a driver called charlcd_init() without definin
auxdisplay: charlcd: checking for pointer reference before dereferencing
Check if the pointer lcd->ops->init_display exists before dereferencing it. If a driver called charlcd_init() without defining the ops, this would return segmentation fault, as happened to me when implementing a charlcd driver. Checking the pointer before dereferencing protects from segmentation fault.
Signed-off-by: Luiz Sampaio <sampaio.ime@gmail.com> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
94047df1 |
| 09-Nov-2021 |
Luiz Sampaio <sampaio.ime@gmail.com> |
auxdisplay: charlcd: fixing coding style issue
Removing 'int' from 'unsigned long int' declaration, which is unnecessary.
Signed-off-by: Luiz Sampaio <sampaio.ime@gmail.com> Signed-off-by: Miguel O
auxdisplay: charlcd: fixing coding style issue
Removing 'int' from 'unsigned long int' declaration, which is unnecessary.
Signed-off-by: Luiz Sampaio <sampaio.ime@gmail.com> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
4ed66cdc |
| 09-Nov-2021 |
Luiz Sampaio <sampaio.ime@gmail.com> |
auxdisplay: charlcd: checking for pointer reference before dereferencing
[ Upstream commit 4daa9ff89ef27be43c15995412d6aee393a78200 ]
Check if the pointer lcd->ops->init_display exists before deref
auxdisplay: charlcd: checking for pointer reference before dereferencing
[ Upstream commit 4daa9ff89ef27be43c15995412d6aee393a78200 ]
Check if the pointer lcd->ops->init_display exists before dereferencing it. If a driver called charlcd_init() without defining the ops, this would return segmentation fault, as happened to me when implementing a charlcd driver. Checking the pointer before dereferencing protects from segmentation fault.
Signed-off-by: Luiz Sampaio <sampaio.ime@gmail.com> Signed-off-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
show more ...
|
Revision tags: v5.15.1, v5.15, v5.14.14, v5.14.13, v5.14.12, v5.14.11, v5.14.10, v5.14.9, v5.14.8, v5.14.7, v5.14.6, v5.10.67, v5.10.66, v5.14.5, v5.14.4, v5.10.65, v5.14.3, v5.10.64, v5.14.2, v5.10.63, v5.14.1, v5.10.62, v5.14, v5.10.61, v5.10.60, v5.10.53, v5.10.52, v5.10.51 |
|
#
ac8c8fa0 |
| 15-Jul-2021 |
Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
auxdisplay: charlcd: Drop unneeded initializers and switch to C99 style
For structure initializers the fields are 0 (or NULL) by default, so there is no need to fill them explicitly. Besides that, m
auxdisplay: charlcd: Drop unneeded initializers and switch to C99 style
For structure initializers the fields are 0 (or NULL) by default, so there is no need to fill them explicitly. Besides that, much easier to read when initializers use C99 style. Hence, convert to C99 style as well.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
Revision tags: v5.10.50, v5.10.49, v5.13, v5.10.46, v5.10.43, v5.10.42, v5.10.41, v5.10.40, v5.10.39, v5.4.119, v5.10.36, v5.10.35, v5.10.34, v5.4.116, v5.10.33, v5.12, v5.10.32, v5.10.31, v5.10.30, v5.10.27, v5.10.26, v5.10.25, v5.10.24, v5.10.23, v5.10.22, v5.10.21, v5.10.20, v5.10.19, v5.4.101, v5.10.18, v5.10.17 |
|
#
701454bc |
| 16-Feb-2021 |
Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
auxdisplay: Remove in_interrupt() usage.
charlcd_write() is invoked as a VFS->write() callback and as such it is always invoked from preemptible context and may sleep.
charlcd_puts() is invoked fro
auxdisplay: Remove in_interrupt() usage.
charlcd_write() is invoked as a VFS->write() callback and as such it is always invoked from preemptible context and may sleep.
charlcd_puts() is invoked from register/unregister callback which is preemptible. The reboot notifier callback is also invoked from preemptible context.
Therefore there is no need to use in_interrupt() to figure out if it is safe to sleep because it always is. in_interrupt() and related context checks are being removed from non-core code. Using schedule() to schedule (and be friendly to others) is discouraged and cond_resched() should be used instead.
Remove in_interrupt() and use cond_resched() to schedule every 32 iterations if needed.
Link: https://lkml.kernel.org/r/20200914204209.256266093@linutronix.de Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> [mo: fixed a couple typos in comment and commit message] Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
Revision tags: v5.11, v5.10.16, v5.10.15, v5.10.14, v5.10 |
|
#
af9470b2 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: charlcd: Do not print chars at end of line
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 positio
auxdisplay: charlcd: Do not print chars at end of line
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> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
40c2b72e |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Change gotoxy calling interface
Change the calling interface for gotoxy from supplying the x and y coordinates in the charlcd struct to explicitly supplying x and y in the function argum
auxdisplay: Change gotoxy calling interface
Change the calling interface for gotoxy from supplying the x and y coordinates in the charlcd struct to explicitly supplying x and y in the function arguments. This is more intuitive and allows for moving the cursor to positions independent from the position saved in the charlcd struct.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
6e49eea3 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: charlcd: replace last device specific stuff
These are the last bits left in charlcd.c that are device specific and they are removed now. In detail this is: * bwidth, which is the width o
auxdisplay: charlcd: replace last device specific stuff
These are the last bits left in charlcd.c that are device specific and they are removed now. In detail this is: * bwidth, which is the width of the display buffer per line. This is replaced by width of the display. * hwidth, which is the size of the display buffer as a whole. This is replaced by looping all chars of a line by all lines. * the hd44780_common header include can go away.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
377cf2cb |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: hd44780: Remove clear_fast
We remove the hd44780_clear_fast (display) clear implementation. With the new timeout the normal clear_display is reasonably fast. So there is no need for a cl
auxdisplay: hd44780: Remove clear_fast
We remove the hd44780_clear_fast (display) clear implementation. With the new timeout the normal clear_display is reasonably fast. So there is no need for a clear_fast anymore.
Link: https://lore.kernel.org/lkml/20200922092121.GG16421@1wt.eu/
Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
a2060f28 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Call charlcd_backlight in place
This moves the call to charlcd_backlight from the end of the switch into the actual case statement that originates the change of the backlight. This is mo
auxdisplay: Call charlcd_backlight in place
This moves the call to charlcd_backlight from the end of the switch into the actual case statement that originates the change of the backlight. This is more consistent to what is now found in this switch.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
339acb08 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move char redefine code to hd44780_common
Take the code to redefine characters out of charlcd and move it to hd44780_common, as this is hd44780 specific. There is now a function hd44780_
auxdisplay: Move char redefine code to hd44780_common
Take the code to redefine characters out of charlcd and move it to hd44780_common, as this is hd44780 specific. There is now a function hd44780_common_redefine_char that drivers use and charlcd calls it through its ops function pointer.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
8a86270e |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: cleanup unnecessary hd44780 code in charlcd
This cleans up now unnecessary hd44780 specific code from charlcd. We obsoleted this with the last patch. So another chunk of hd44780 specific
auxdisplay: cleanup unnecessary hd44780 code in charlcd
This cleans up now unnecessary hd44780 specific code from charlcd. We obsoleted this with the last patch. So another chunk of hd44780 specific code can be dropped from charlcd.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
d2f2187e |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: implement various hd44780_common_ functions
This implements various hd44780_common_ functions for hd44780 compatible display drivers to use. charlcd then calls these functions through it
auxdisplay: implement various hd44780_common_ functions
This implements various hd44780_common_ functions for hd44780 compatible display drivers to use. charlcd then calls these functions through its ops function pointer. The functions namely are: - hd44780_common_shift_cursor - hd44780_common_display_shift - hd44780_common_display - hd44780_common_cursor - hd44780_common_blink - hd44780_common_fontsize - hd44780_common_lines
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
01ec46df |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move init_display to hd44780_common
The init_display function is moved over to hd44780_common. charlcd uses it via its ops function pointer and drivers initialize the ops with the common
auxdisplay: Move init_display to hd44780_common
The init_display function is moved over to hd44780_common. charlcd uses it via its ops function pointer and drivers initialize the ops with the common hd44780_common_init_display function.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
bd26b181 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Make use of enum for backlight on / off
To turn the backlight on or off use our new enum CHARLCD_ON / CHARLCD_OFF.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <po
auxdisplay: Make use of enum for backlight on / off
To turn the backlight on or off use our new enum CHARLCD_ON / CHARLCD_OFF.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
2bf82b5a |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: make charlcd_backlight visible to hd44780_common
hd44780_common wants to use the charlcd_backlight function, so make it visible.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lar
auxdisplay: make charlcd_backlight visible to hd44780_common
hd44780_common wants to use the charlcd_backlight function, so make it visible.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
45421ffe |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move clear_display to hd44780_common
This moves the clear_display function from charlcd to hd44780_common. This is one more step to make charlcd independent from device specific code. Th
auxdisplay: Move clear_display to hd44780_common
This moves the clear_display function from charlcd to hd44780_common. This is one more step to make charlcd independent from device specific code. The two hd44780 drivers use the new function from hd44780_common and charlcd calls this function through its function pointer in its ops structure.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
88645a86 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: add home to charlcd_ops
This adds a home function to the charlcd_ops struct and offer an implementation for hd44780_common. This implementation is used by our two hd44780 drivers. This i
auxdisplay: add home to charlcd_ops
This adds a home function to the charlcd_ops struct and offer an implementation for hd44780_common. This implementation is used by our two hd44780 drivers. This is to make charlcd device independent.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
d3a2fb81 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: provide hd44780_common_gotoxy
Provide a hd44780_common_gotoxy function and a pointer in the ops for charlcd to use to move the cursor.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-b
auxdisplay: provide hd44780_common_gotoxy
Provide a hd44780_common_gotoxy function and a pointer in the ops for charlcd to use to move the cursor.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
b26deabb |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: hd44780_common_print
We create a hd44780_common_print function. It is derived from the original charlcd_print. charlcd_print becomes a device independent print function, that then only c
auxdisplay: hd44780_common_print
We create a hd44780_common_print function. It is derived from the original charlcd_print. charlcd_print becomes a device independent print function, that then only calls via its ops function pointers, into the print function offered by drivers.
Reported-by: kernel test robot <lkp@intel.com> Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
11588b59 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move addr out of charlcd_priv
Move out the struct addr from struct charlcd_priv into the less private struct charlcd. This member is used to pass position information. The individual dri
auxdisplay: Move addr out of charlcd_priv
Move out the struct addr from struct charlcd_priv into the less private struct charlcd. This member is used to pass position information. The individual drivers need to be able to read this information, so we move this out of charlcd_priv to charlcd structure.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
2c6a82f2 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move write_cmd pointers to hd44780 drivers
The write_cmd function is used to send commands to hd44780 displays. The individual hd44780 drivers then implement their appropriate way of doi
auxdisplay: Move write_cmd pointers to hd44780 drivers
The write_cmd function is used to send commands to hd44780 displays. The individual hd44780 drivers then implement their appropriate way of doing this with their supported displays. So we move this pointer so hd44780_common.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
71ff701b |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move write_data pointer to hd44780_common
This moves the write_data function pointer from struct charlcd_ops to struct hd44780_common. This is the function that actually writes the chara
auxdisplay: Move write_data pointer to hd44780_common
This moves the write_data function pointer from struct charlcd_ops to struct hd44780_common. This is the function that actually writes the character to the display. This hd44780 hardware specific function is used by two drivers at the moment.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
3fc04dd7 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move ifwidth to struct hd44780_common
Move struct charlcd member ifwidth to our new struct hd44780_common. ifwidth is hd44780 device specific and is used by two drivers at the moment, so
auxdisplay: Move ifwidth to struct hd44780_common
Move struct charlcd member ifwidth to our new struct hd44780_common. ifwidth is hd44780 device specific and is used by two drivers at the moment, so we move it to a common place, where both can use this.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|
#
2545c1c9 |
| 03-Nov-2020 |
Lars Poeschel <poeschel@lemonage.de> |
auxdisplay: Move hwidth and bwidth to struct hd44780_common
hwidth is for the hardware buffer size and bwidth is for the buffer width of one single line. This is specific to the hd44780 displays and
auxdisplay: Move hwidth and bwidth to struct hd44780_common
hwidth is for the hardware buffer size and bwidth is for the buffer width of one single line. This is specific to the hd44780 displays and so it is moved out from charlcd to struct hd44780_common.
Reviewed-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Lars Poeschel <poeschel@lemonage.de> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
show more ...
|