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

H. Nikolaus Schaller hns at goldelico.com
Wed Aug 19 18:49:49 UTC 2020


Hi Ezequiel,

> Am 19.08.2020 um 12:21 schrieb Ezequiel Garcia <ezequiel at vanguardiasur.com.ar>:
> 
> Hello,
> 
> First of all, I'd like to thank everyone for the great work
> on ingenic-drm. The driver is in very good shape
> and a pleasure to work with.
> 
> Yesterday, I checked out branch "paulb-jz4780-ci20-hdmi-5.8-rc5",
> from git.goldelico.com/letux-kernel.git, rebased it on v5.9-rc1,
> and then run weston over HDMI (how often
> weston runs on mips, uh? :)

Wow!

> The edid of my monitor is properly read
> and modetest reports all modes.
> 
> I've only tested the primary plane, for some reason
> the overlay is not working as expected, but it must
> be probably some minor thing.
> 
> As for the bus format, I have just added a skip
> for CONNECTOR_HDMIA types in the encoder
> atomic check. And then MEDIA_BUS_FMT_RGB888_1X24
> is hardcoded if there are no bus formats negotiated

Cool!

> Paul et al, if you guys can rebase your work on v5.9-rc1
> and Cc I will be happy to review and test the patches.

I have tried our latest letux-5.9-rc1 tree (with Pauls fixes)
on my setup but screen remains black and the kernel was stuck
after showing "login:" and reported

[  490.680469] rcu: INFO: rcu_preempt self-detected stall on CPU

Maybe, can you share your rebased tree to clearly identify the
subtle differences? Maybe I have broken something by the rebase.

> Cheers & thanks again,
> Eze

Thanks and best regards,
Nikolaus


> 
> 
> 
> 
> On Tue, 7 Jul 2020 at 04:27, Paul Boddie <paul at boddie.org.uk> wrote:
>> 
>> 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
>> 
>> 
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel



More information about the dri-devel mailing list