Hi Paul,

> Am 28.09.2021 um 14:06 schrieb H. Nikolaus Schaller <h...@goldelico.com>:
> 
> Hi Paul,
> 
>> Am 28.09.2021 um 12:21 schrieb H. Nikolaus Schaller <h...@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?
>> 
>> 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, 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.

Any suggestion how to proceed here for v5?

BR,
Nikolaus

Reply via email to