drm/bridge: Synopsys DW-HDMI bridge driver for the Ingenic JZ4780 (was Re: Specialising the Synopsys DW-HDMI bridge driver for the Ingenic JZ4780)

Paul Boddie paul at boddie.org.uk
Mon Jul 6 20:55:58 UTC 2020


On Monday, 6 July 2020 14:12:24 CEST Neil Armstrong wrote:
> 
> On 06/07/2020 01:57, Paul Boddie wrote:
> > 
> > It also seems to be appropriate to set the input_bus_format on the
> > platform- specific HDMI driver; otherwise, I doubt that appropriate bus
> > encodings will be chosen in the Synopsys driver.
> 
> It does but when not provided, it doesn't use it.
> 
> It's handled in drm_atomic_bridge_chain_select_bus_fmts() :
> 	if (conn->display_info.num_bus_formats &&
> 		    conn->display_info.bus_formats)
> 		out_bus_fmts[0] = conn->display_info.bus_formats[0];
> 	else
> 		out_bus_fmts[0] = MEDIA_BUS_FMT_FIXED;

OK. I thought I'd seen this somewhere, but I had started to think that 
input_bus_format would remain initialised (presumably to zero) and this would 
then cause the Synopsys driver to not change the bus format to the actual 
default.

[...]

> > Testing against 5.8-rc3 with the above changes seems to have moved the
> > needle slightly. Although I still get "Input not supported" from my
> > monitor, running modetest now gives a different error:
> > 
> > modetest -D /dev/dri/card0 -M ingenic-drm -s 34 at 32:1280x1024-60.02
> > 
> > ...now yields this:
> > 
> > setting mode 1280x1024-60.02Hz at XR24 on connectors 34, crtc 32
> > failed to set gamma: Invalid argument
> 
> This is because you don't provide the gamma setup ioctl, it's not a fatal
> error at all. It should be warning since it's optional.
> 
> Did you check all modes ?

I have checked a few more. Currently, testing them is awkward because it 
involves switching my monitor to DVI input, getting "Input Not Supported", 
unplugging the cable, and then the hotplug event has most likely caused a bad 
pointer dereference in ingenic_drm_crtc_atomic_flush and thus a kernel panic.

So, I'll try and fix this panic, which appears to be due to the DRM driver 
accessing a null framebuffer pointer (presumably having been invalidated 
elsewhere upon unplugging), and see if I can't get some more information about 
the state of the peripherals.

Paul




More information about the dri-devel mailing list