From: Willy TARREAU <wtarreau@haproxy.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ksenija Stanojevic <ksenija.stanojevic@gmail.com>,
Arnd Bergmann <arnd@arndb.de>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 00/13] Add HD44780 Character LCD support
Date: Thu, 23 Mar 2017 18:15:01 +0100 [thread overview]
Message-ID: <20170323171501.GI9408@haproxy.com> (raw)
In-Reply-To: <1486391895-9554-1-git-send-email-geert@linux-m68k.org>
Hi Geert,
On Mon, Feb 06, 2017 at 03:38:02PM +0100, Geert Uytterhoeven wrote:
> Hi all,
>
> Character LCDs are currently typically driven from userspace, either
> directly through bit-banging, or via some kind of serial (UART/i2c)
> interface.
>
> This patch series adds kernel support for character LCDs using an
> Hitachi HD44780 Character LCD Controller where its M6800 bus interface
> is connected to GPIOs. It does so after extracting the character LCD
> core support from the existing Parallel port LCD/Keypad Panel driver
> into its own subdriver.
>
> - Patch 1 fixes a bug in the existing panel driver,
> - Patches 2-8 perform clean ups and improvements to the panel driver,
> - Patch 9 extract the character LCD core support from the panel driver
> into an auxdisplay charlcd subdriver,
> - Patches 10-11 add new features to the character LCD core driver
> (4-bit interface support and support for displays with more than 2
> lines),
> - Patch 12 adds DT bindings for describing HD44780 Character LCDs,
> - Patch 13 adds a driver for HD44780 Character LCDs connected to
> GPIOs, using the new character LCD core.
>
> Note that Linux has other support for HD44780 Character LCDs, but none of
> it is generic:
> - drivers/misc/arm-charlcd.c involves a custom IP block for interfacing
> to the LCD controller,
> - drivers/parisc/led.c is tightly coupled to LED handling on various HP
> PA-RISC machines.
>
> This has been tested using a 20x4 character LCD with backlight, using both
> 8-bit and 4-bit wiring to one or two 74HC595 shift registers connected to
> an SPI master controller.
>
> Regression testing on original "panel" hardware would be appreciated.
So I finally had the time to give it a try by applying your patchset
on top of our 4.9 prod kernel. For now I'm getting a panic at boot :
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<ffffffff813e203d>] __mutex_lock_slowpath+0x6d/0x100
PGD 0
Oops: 0002 [#1] SMP
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.0-alb90.0-alb3100-lcdtest #3
Hardware name: To Be Filled By Intel To Be Filled By Intel/To be filled by Intel, BIOS 080015 04/01/2011
task: ffff88007c488000 task.stack: ffff88007c490000
RIP: 0010:[<ffffffff813e203d>] [<ffffffff813e203d>] __mutex_lock_slowpath+0x6d/0x100
RSP: 0000:ffff88007c493cc8 EFLAGS: 00010282
RAX: 0000000000000000 RBX: ffff88007c5a0f90 RCX: ffff88007c48d700
RDX: ffff88007c493cd0 RSI: 0000000000000000 RDI: ffff88007c5a0f94
RBP: ffff88007c488000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000002ea48c3 R12: ffff88007c5a0f94
R13: 00000000ffffffff R14: ffff88007c5a0f98 R15: ffff88007c470000
FS: 0000000000000000(0000) GS:ffff88007ee00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 0000000001607000 CR4: 00000000000006f0
Stack:
ffff88007ee0ea80 ffff88007c5a0f98 0000000000000000 0000000000000282
ffff88007c5a0f90 ffff88007c5a0f90 0000000000000000 ffff88007c493f28
ffff88007c493f28 ffffffff813e20de ffff88007c5a0f00 ffffffff812a9cc3
Call Trace:
[<ffffffff813e20de>] ? mutex_lock+0xe/0x20
[<ffffffff812a9cc3>] ? charlcd_backlight+0x33/0x80
[<ffffffff812696c0>] ? lcd_write_data_p8+0x80/0x80
[<ffffffff812a9fa5>] ? charlcd_init_display+0x135/0x1a0
[<ffffffff812aaa6f>] ? charlcd_register+0xf/0xf0
[<ffffffff81269e48>] ? panel_attach+0x4c8/0x9c0
[<ffffffff8124e6b0>] ? attach_driver_chain+0x60/0x60
[<ffffffff8124e6cb>] ? port_check+0x1b/0x30
[<ffffffff812565af>] ? bus_for_each_dev+0x4f/0x80
[<ffffffff8124e842>] ? __parport_register_driver+0x112/0x150
[<ffffffff8169744a>] ? loop_init+0x11d/0x13c
[<ffffffff81697469>] ? loop_init+0x13c/0x13c
[<ffffffff81697622>] ? panel_init_module+0x1b9/0x20a
[<ffffffff81000412>] ? do_one_initcall+0x42/0x160
[<ffffffff81675124>] ? kernel_init_freeable+0x10e/0x1d8
[<ffffffff8167483d>] ? loglevel+0x36/0x36
[<ffffffff813ded10>] ? rest_init+0x70/0x70
[<ffffffff813ded1a>] ? kernel_init+0xa/0x100
[<ffffffff813ded10>] ? rest_init+0x70/0x70
[<ffffffff813e4212>] ? ret_from_fork+0x22/0x30
Code: 03 83 f8 01 0f 84 9d 00 00 00 48 8b 43 10 48 8d 54 24 08 4c 8d 73 08 48 89 53 10 4c 89 74 24 08 48 89 44 24 10 41 bd ff ff ff ff <48> 89 10 48 89 6c 24 18 eb 1a 48 c7 45 08 02 00 00 00 c6 43 04
RIP [<ffffffff813e203d>] __mutex_lock_slowpath+0x6d/0x100
RSP <ffff88007c493cc8>
CR2: 0000000000000000
---[ end trace e58465f0f36b5a27 ]---
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
I suspect that's related to the backlight timer though I'm not sure.
In case that helps I'm using the following config :
$ grep 'PANEL\|LCD' .config
CONFIG_PANEL=y
CONFIG_PANEL_PARPORT=0
CONFIG_PANEL_PROFILE=4
CONFIG_PANEL_CHANGE_MESSAGE=y
CONFIG_PANEL_BOOT_MESSAGE="ALOHA ALB3100"
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# CONFIG_HID_PICOLCD is not set
# CONFIG_USB_LCD is not set
CONFIG_CHARLCD=y
I'm going to comment out the backlight code to see if it improves
the situation.
Cheers,
Willy
next prev parent reply other threads:[~2017-03-23 17:38 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-06 14:38 [PATCH 00/13] Add HD44780 Character LCD support Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 01/13] misc: panel: Fix LCD_FLAG_F/LCD_FLAG_N exchange Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 02/13] misc: panel: Remove PANEL_VERSION Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 03/13] misc: panel: Remove unused LCD_FLAG_S and LCD_FLAG_ID Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 04/13] misc: panel: Remove reference to misc device support Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 05/13] misc: panel: Move all suboptions into a big if section Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 06/13] misc: panel: Remove always-true check from panel_detach() Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 07/13] misc: panel: Add lcd_home() helper Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 08/13] misc: panel: Abstract temporary backlight handling Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 09/13] auxdisplay: charlcd: Extract character LCD core from misc/panel Geert Uytterhoeven
2017-02-06 15:09 ` Arnd Bergmann
2017-02-06 15:18 ` Geert Uytterhoeven
2017-02-08 12:22 ` Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 10/13] auxdisplay: charlcd: Add support for 4-bit interfaces Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 11/13] auxdisplay: charlcd: Add support for displays with more than two lines Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 12/13] dt-bindings: auxdisplay: Add bindings for Hitachi HD44780 Geert Uytterhoeven
[not found] ` <1486391895-9554-13-git-send-email-geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
2017-02-09 1:11 ` Rob Herring
2017-02-09 1:11 ` Rob Herring
2017-02-09 8:51 ` Geert Uytterhoeven
2017-02-09 8:51 ` Geert Uytterhoeven
2017-02-06 14:38 ` [PATCH 13/13] auxdisplay: Add HD44780 Character LCD support Geert Uytterhoeven
2017-02-07 11:23 ` Andy Shevchenko
[not found] ` <CAHp75VcvkcO-6N59fMtr8xRogQxhicifTMaNVipmTccj078Baw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-08 13:18 ` Geert Uytterhoeven
2017-02-08 13:18 ` Geert Uytterhoeven
2017-02-08 13:38 ` Andy Shevchenko
2017-02-08 13:38 ` Andy Shevchenko
2017-02-08 13:41 ` Geert Uytterhoeven
[not found] ` <CAMuHMdWpW77eJmuuDzyXqZZ9HcwsxPdhsR6GNR3NL91rZyoVPw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-08 16:27 ` Andy Shevchenko
2017-02-08 16:27 ` Andy Shevchenko
[not found] ` <CAHp75Vfy=GsHurE0G=BO6cxuT7qwc+zYAXGep7mrH==KXsJaEw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-08 17:19 ` Geert Uytterhoeven
2017-02-08 17:19 ` Geert Uytterhoeven
2017-02-06 15:09 ` [PATCH 00/13] " Willy TARREAU
2017-02-10 14:37 ` Greg Kroah-Hartman
2017-03-16 20:50 ` Linus Walleij
2017-03-17 7:40 ` Geert Uytterhoeven
2017-03-23 17:15 ` Willy TARREAU [this message]
2017-03-23 17:37 ` Willy TARREAU
2017-03-23 18:49 ` Geert Uytterhoeven
2017-03-23 19:03 ` Willy TARREAU
2017-03-23 20:29 ` Geert Uytterhoeven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170323171501.GI9408@haproxy.com \
--to=wtarreau@haproxy.com \
--cc=arnd@arndb.de \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=ksenija.stanojevic@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=miguel.ojeda.sandonis@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.