[PATCH v4 02/10] drm/ingenic: Add support for JZ4780 and HDMI output
Paul Cercueil
paul at crapouillou.net
Wed Sep 29 14:30:31 UTC 2021
Hi,
Le mar., sept. 28 2021 at 14:06:03 +0200, H. Nikolaus Schaller
<hns at goldelico.com> a écrit :
> Hi Paul,
>
>> Am 28.09.2021 um 12:21 schrieb H. Nikolaus Schaller
>> <hns at goldelico.com>:
>>
>>>> @@ -1492,10 +1555,16 @@ static int ingenic_drm_init(void)
>>>> {
>>>> int err;
>>>> + if (IS_ENABLED(CONFIG_DRM_INGENIC_DW_HDMI)) {
>>>> + err = platform_driver_register(ingenic_dw_hdmi_driver_ptr);
>>>> + if (err)
>>>> + return err;
>>>> + }
>>>
>>> I don't see why you need to register the ingenic-dw-hdmi driver
>>> here. Just register it in the ingenic-dw-hdmi driver.
>>
>> Ok, I never though about this (as the code was not from me). We
>> apparently just followed the IPU code pattern (learning by example).
>>
>> It indeed looks not necessary and would also avoid the
>> ingenic_dw_hdmi_driver_ptr dependency.
>>
>> But: what is ingenic_ipu_driver_ptr then good for?
>>
It's done this way because ingenic-drm-drv.c and ingenic-ipu.c are both
compiled within the same module ingenic-drm.
I'm not sure this is still required, maybe ingenic-ipu.c can be its own
module now.
>>
>> If we can get rid of this as well, we can drop patch 1/10
>> ("drm/ingenic: Fix drm_init error path if IPU was registered")
>> completely.
>
> A quick test shows that it *is* required. At least if I configure
> everything as modules.
> But like you I can't explain why.
Well, a quick test here shows that it is not required, at least when
configuring with everything built-in.
-Paul
> Well, just a very rough idea (may be wrong): the bridge chain is not
> like an i2c bus and
> clients are not automatically loaded/probed if linked in the device
> tree. Therefore the
> consumer (ingenic_drm_drv) must register the "clients" like IPU and
> HDMI.
>
> BR,
> Nikolaus
>
More information about the dri-devel
mailing list