[Letux-kernel] [PATCH 00/20] A bunch of JZ4730 fixups for letux-kernel
paul at boddie.org.uk
Mon Jan 11 19:50:03 CET 2021
On Monday, 11 January 2021 17:13:29 CET H. Nikolaus Schaller wrote:
> > Am 11.01.2021 um 16:27 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> > A problem seems to be that ingenic_drm_encoder_atomic_check() has no
> > formats.
> > https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/ingenic/ing
> > enic-drm-drv.c#L535
> > I think I remember this from the CI20 HDMI work but do not know the
> > solution.
> Just found something. In our case it should come from the panel_simple
> driver. There is code to setup display_info.num_bus_formats:
> But it is set only if there is hard-coded, i.e. panel table indexed by
> compatible string. But not if it is initialized purely from device tree.
> So it looks as if some mechanism is missing to define the connector (type,
> bus formats) in device tree... Or I am missing where and how it can be
> defined by DT.
> BTW: hacking some desc->bus_format=MEDIA_BUS_FMT_RGB565_1X16; into this
> function makes the jz4730 LCDC start up and enable backlight... But image
> is wrong and leads to "vblank wait timed out". So there is now some
> initialization of the LCDC, but it is wrong.
I don't think I ever found out what the "correct" solution was for this. It
seems incorrect to hack in the bus format, which was also necessary when
troubleshooting the CI20 so that the Ingenic DRM driver would then get
initialised, but I only ever really got advice to run various tools and to
report back on what those tools said. I seem to remember that beyond a certain
point, those tools produced sensible results, but only if we hacked in the bus
I would have to look back on my discussions with the DRM people and to filter
out the hundreds of useless messages that I had to receive from the mailing
list just so that I could ask other people some apparently simple questions.
But certainly, the vblank error sounds very familiar. I think it was that
which made me get the HDMI peripheral *including* interrupts working in the L4
runtime environment, just to demonstrate that I hadn't missed something.
More information about the Letux-kernel