[PATCH] drm: rcar-du: Fix Kconfig dependency between RCAR_DU and RCAR_MIPI_DSI

Tomi Valkeinen tomi.valkeinen at ideasonboard.com
Mon Oct 3 07:31:24 UTC 2022


On 03/10/2022 10:01, Geert Uytterhoeven wrote:
> Hi Tomi,
> 
> On Mon, Oct 3, 2022 at 8:56 AM Tomi Valkeinen
> <tomi.valkeinen at ideasonboard.com> wrote:
>> On 02/10/2022 01:03, Laurent Pinchart wrote:
>>> When the R-Car MIPI DSI driver was added, it was a standalone encoder
>>> driver without any dependency to or from the R-Car DU driver. Commit
>>> 957fe62d7d15 ("drm: rcar-du: Fix DSI enable & disable sequence") then
>>> added a direct call from the DU driver to the MIPI DSI driver, without
>>> updating Kconfig to take the new dependency into account. Fix it the
>>> same way that the LVDS encoder is handled.
>>>
>>> Fixes: 957fe62d7d15 ("drm: rcar-du: Fix DSI enable & disable sequence")
>>> Reported-by: kernel test robot <lkp at intel.com>
>>> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
>>> ---
>>>    drivers/gpu/drm/rcar-du/Kconfig | 13 +++++++++----
>>>    1 file changed, 9 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
>>> index c959e8c6be7d..fd2c2eaee26b 100644
>>> --- a/drivers/gpu/drm/rcar-du/Kconfig
>>> +++ b/drivers/gpu/drm/rcar-du/Kconfig
>>> @@ -44,12 +44,17 @@ config DRM_RCAR_LVDS
>>>        select OF_FLATTREE
>>>        select OF_OVERLAY
>>>
>>> +config DRM_RCAR_USE_MIPI_DSI
>>> +     bool "R-Car DU MIPI DSI Encoder Support"
>>> +     depends on DRM_BRIDGE && OF
>>> +     default DRM_RCAR_DU
>>> +     help
>>> +       Enable support for the R-Car Display Unit embedded MIPI DSI encoders.
>>> +
>>>    config DRM_RCAR_MIPI_DSI
>>> -     tristate "R-Car DU MIPI DSI Encoder Support"
>>> -     depends on DRM && DRM_BRIDGE && OF
>>> +     def_tristate DRM_RCAR_DU
>>> +     depends on DRM_RCAR_USE_MIPI_DSI
>>>        select DRM_MIPI_DSI
>>> -     help
>>> -       Enable support for the R-Car Display Unit embedded MIPI DSI encoders.
>>>
>>>    config DRM_RCAR_VSP
>>>        bool "R-Car DU VSP Compositor Support" if ARM
>>>
>>> base-commit: 7860d720a84c74b2761c6b7995392a798ab0a3cb
>>
>> Interesting dependency issue. Took me a while to understand it =).
>>
>> But is there a reason to not have "depends on DRM_RCAR_DU" for
>> DRM_RCAR_USE_MIPI_DSI and DRM_RCAR_USE_LVDS? Now the menu items are
>> available even if RCAR_DU is n. That's also the case for
>> DRM_RCAR_DW_HDMI, but I'm not sure if that's supposed to be usable even
>> without RCAR_DU.
> 
> See
> https://lore.kernel.org/linux-renesas-soc/cover.1639559338.git.geert+renesas@glider.be/
> 
> Didn't get to implement the suggested improvements yet...

Ok, looks good.

But I started to wonder, for LVDS and DSI (maybe for HDMI too), what's 
the point of modules here...

If RCAR_DU, LVDS and DSI are compiled as modules, you can load either 
LVDS or DSI module, but those won't do anything alone. So in practice 
you always need to load RCAR_DU module too. But if LVDS or DSI are 
enabled in the kconfig, you _have_ to load those before RCAR_DU.

In other words, you can never, e.g. load RCAR_DU and LVDS, but not DSI, 
if all three are enabled.

So why not just compile LVDS and DSI into the RCAR_DU module, 
simplifying the dependencies, removing this issue altogether?

  Tomi


More information about the dri-devel mailing list