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