[Openpvrsgx-devgroup] CI20/JZ4780 HDMI (was Re: Status & HW to bring)

Paul Boddie paul at boddie.org.uk
Mon Nov 11 13:32:52 CET 2019


On Monday 11. November 2019 10.12.44 H. Nikolaus Schaller wrote:
> 
> Ah, here is the relevant comment:
> 
> https://lore.kernel.org/patchwork/patch/549312/#731123
> 
> Unfortunately I have no idea what they are talking about :)

I interpret it as the patch not using that particular week's way of doing 
things in the Linux kernel.

> Maybe the drivers/gpu/drm/bridge/synopsys gives hints how to improve the
> jz4780 driver - or the synopsys driver.

I think there is already an upstream display driver that might be made 
suitable:

drivers/gpu/drm/ingenic/ingenic-drm.c

As for the Synopsys bridge driver, I wasn't convinced that anything else I 
found was making use of it. I imagine that it must need to be wired up to some 
other device, but it doesn't have the usual MODULE_DEVICE_TABLE declaration.

Looking at other such drivers, it seems possible that the device tree 
declaration would employ some input ports which then reference the output 
ports of the display devices.

For example, from arch/arm64/boot/dts/renesas/r8a77990.dtsi which uses the 
lvds-encoder bridge driver:

  lvds0: lvds-encoder at feb90000 {
    compatible = "renesas,r8a77990-lvds";
    ...
    ports {
      ...
      port at 0 {
        ...
        lvds0_in: endpoint {
          remote-endpoint = <&du_out_lvds0>;

This kind of thing isn't done in the CI20 kernel because it doesn't have a 
shiny-enough DRM driver, and so the display device references the HDMI device 
in the device tree, with the code confirming this:

drivers/gpu/drm/jz4780/jz4780_drv.c

In fact, the port/endpoint mechanism is supported in the submitted driver (see 
above), whereas the upstream Ingenic driver doesn't have that support, perhaps 
because many of the devices involved don't need to enable LVDS or HDMI to get 
video working.

So, the Ingenic driver would need to be augmented with port/endpoint support, 
and there would need to be a way of activating the Synopsys driver in the 
device tree. Exactly how the latter should be done remains a mystery to me at 
the moment.

Paul


More information about the openpvrsgx-devgroup mailing list