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>
diff --git a/drivers/auxdisplay/hd44780_common.c b/drivers/auxdisplay/hd44780_common.c
index 4968461..1dfcb2c 100644
--- a/drivers/auxdisplay/hd44780_common.c
+++ b/drivers/auxdisplay/hd44780_common.c
@@ -2,8 +2,22 @@
#include <linux/module.h>
#include <linux/slab.h>
+#include "charlcd.h"
#include "hd44780_common.h"
+int hd44780_common_print(struct charlcd *lcd, int c)
+{
+ struct hd44780_common *hdc = lcd->drvdata;
+
+ if (lcd->addr.x < hdc->bwidth) {
+ hdc->write_data(hdc, c);
+ return 0;
+ }
+
+ return 1;
+}
+EXPORT_SYMBOL_GPL(hd44780_common_print);
+
struct hd44780_common *hd44780_common_alloc(void)
{
struct hd44780_common *hd;