diff mbox series

[2/3] drm: rcar-du: DRM_RCAR_USE_LVDS should depend on DRM_RCAR_DU

Message ID b1fa94f611a5c32c5d70516d1a39973f518fb06a.1639559338.git.geert+renesas@glider.be (mailing list archive)
State New
Delegated to: Kieran Bingham
Headers show
Series drm: rcar-du: Add missing dependencies | expand

Commit Message

Geert Uytterhoeven Dec. 15, 2021, 9:27 a.m. UTC
The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
disabled doesn't have any impact on the kernel built.  Hence add a
dependency on DRM_RCAR_DU, to prevent asking the user about this driver
when configuring a kernel without R-Car Display Unit support, like is
already done for DRM_RCAR_CMM.

Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
The problem pre-existed before commit 42d95d1b3a9c649b, as the
dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
before.
Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
---
 drivers/gpu/drm/rcar-du/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Laurent Pinchart Dec. 15, 2021, 10:12 a.m. UTC | #1
Hi Geert,

Thank you for the patch.

On Wed, Dec 15, 2021 at 10:27:46AM +0100, Geert Uytterhoeven wrote:
> The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
> Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
> disabled doesn't have any impact on the kernel built.  Hence add a
> dependency on DRM_RCAR_DU, to prevent asking the user about this driver
> when configuring a kernel without R-Car Display Unit support, like is
> already done for DRM_RCAR_CMM.
> 
> Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> The problem pre-existed before commit 42d95d1b3a9c649b, as the
> dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
> before.
> Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
> ---
>  drivers/gpu/drm/rcar-du/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
> index 65d72be50f46f19e..a7aa556e301d1087 100644
> --- a/drivers/gpu/drm/rcar-du/Kconfig
> +++ b/drivers/gpu/drm/rcar-du/Kconfig
> @@ -32,7 +32,7 @@ config DRM_RCAR_DW_HDMI
>  
>  config DRM_RCAR_USE_LVDS
>  	bool "R-Car DU LVDS Encoder Support"
> -	depends on DRM_BRIDGE && OF
> +	depends on DRM_BRIDGE && OF && DRM_RCAR_DU

Shouldn't the same be done for DRM_RCAR_DW_HDMI ? Even better, we could
wrap all the entries for the subdrivers in a 'if DRM_RCAR_DU'.

>  	default DRM_RCAR_DU
>  	help
>  	  Enable support for the R-Car Display Unit embedded LVDS encoders.
Geert Uytterhoeven Dec. 15, 2021, 10:17 a.m. UTC | #2
Hi Laurent,

On Wed, Dec 15, 2021 at 11:12 AM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Wed, Dec 15, 2021 at 10:27:46AM +0100, Geert Uytterhoeven wrote:
> > The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
> > Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
> > disabled doesn't have any impact on the kernel built.  Hence add a
> > dependency on DRM_RCAR_DU, to prevent asking the user about this driver
> > when configuring a kernel without R-Car Display Unit support, like is
> > already done for DRM_RCAR_CMM.
> >
> > Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
> > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > ---
> > The problem pre-existed before commit 42d95d1b3a9c649b, as the
> > dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
> > before.
> > Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
> > ---
> >  drivers/gpu/drm/rcar-du/Kconfig | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
> > index 65d72be50f46f19e..a7aa556e301d1087 100644
> > --- a/drivers/gpu/drm/rcar-du/Kconfig
> > +++ b/drivers/gpu/drm/rcar-du/Kconfig
> > @@ -32,7 +32,7 @@ config DRM_RCAR_DW_HDMI
> >
> >  config DRM_RCAR_USE_LVDS
> >       bool "R-Car DU LVDS Encoder Support"
> > -     depends on DRM_BRIDGE && OF
> > +     depends on DRM_BRIDGE && OF && DRM_RCAR_DU
>
> Shouldn't the same be done for DRM_RCAR_DW_HDMI ? Even better, we could

DRM_RCAR_DW_HDMI can be enabled and built with CONFIG_COMPILE_TEST=y
and CONFIG_DRM_RCAR_DU=n (yes I've tried on RISC-V ;-)

> wrap all the entries for the subdrivers in a 'if DRM_RCAR_DU'.

That might work.  It can be tricky with bool/tristate, as sometimes m
is not properly propagated.

> >       default DRM_RCAR_DU
> >       help
> >         Enable support for the R-Car Display Unit embedded LVDS encoders.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Laurent Pinchart Dec. 15, 2021, 10:23 a.m. UTC | #3
Hi Geert,

On Wed, Dec 15, 2021 at 11:17:37AM +0100, Geert Uytterhoeven wrote:
> On Wed, Dec 15, 2021 at 11:12 AM Laurent Pinchart wrote:
> > On Wed, Dec 15, 2021 at 10:27:46AM +0100, Geert Uytterhoeven wrote:
> > > The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
> > > Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
> > > disabled doesn't have any impact on the kernel built.  Hence add a
> > > dependency on DRM_RCAR_DU, to prevent asking the user about this driver
> > > when configuring a kernel without R-Car Display Unit support, like is
> > > already done for DRM_RCAR_CMM.
> > >
> > > Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
> > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > > ---
> > > The problem pre-existed before commit 42d95d1b3a9c649b, as the
> > > dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
> > > before.
> > > Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
> > > ---
> > >  drivers/gpu/drm/rcar-du/Kconfig | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
> > > index 65d72be50f46f19e..a7aa556e301d1087 100644
> > > --- a/drivers/gpu/drm/rcar-du/Kconfig
> > > +++ b/drivers/gpu/drm/rcar-du/Kconfig
> > > @@ -32,7 +32,7 @@ config DRM_RCAR_DW_HDMI
> > >
> > >  config DRM_RCAR_USE_LVDS
> > >       bool "R-Car DU LVDS Encoder Support"
> > > -     depends on DRM_BRIDGE && OF
> > > +     depends on DRM_BRIDGE && OF && DRM_RCAR_DU
> >
> > Shouldn't the same be done for DRM_RCAR_DW_HDMI ? Even better, we could
> 
> DRM_RCAR_DW_HDMI can be enabled and built with CONFIG_COMPILE_TEST=y
> and CONFIG_DRM_RCAR_DU=n (yes I've tried on RISC-V ;-)

It would seem so indeed, my question is whether that shouldn't be fixed
as well.

> > wrap all the entries for the subdrivers in a 'if DRM_RCAR_DU'.
> 
> That might work.  It can be tricky with bool/tristate, as sometimes m
> is not properly propagated.

Would you give it a try for a v2 ?

> > >       default DRM_RCAR_DU
> > >       help
> > >         Enable support for the R-Car Display Unit embedded LVDS encoders.
Laurent Pinchart Dec. 15, 2021, 10:30 a.m. UTC | #4
Hi Geert,

On Wed, Dec 15, 2021 at 12:23:39PM +0200, Laurent Pinchart wrote:
> On Wed, Dec 15, 2021 at 11:17:37AM +0100, Geert Uytterhoeven wrote:
> > On Wed, Dec 15, 2021 at 11:12 AM Laurent Pinchart wrote:
> > > On Wed, Dec 15, 2021 at 10:27:46AM +0100, Geert Uytterhoeven wrote:
> > > > The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
> > > > Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
> > > > disabled doesn't have any impact on the kernel built.  Hence add a
> > > > dependency on DRM_RCAR_DU, to prevent asking the user about this driver
> > > > when configuring a kernel without R-Car Display Unit support, like is
> > > > already done for DRM_RCAR_CMM.
> > > >
> > > > Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
> > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > > > ---
> > > > The problem pre-existed before commit 42d95d1b3a9c649b, as the
> > > > dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
> > > > before.
> > > > Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
> > > > ---
> > > >  drivers/gpu/drm/rcar-du/Kconfig | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
> > > > index 65d72be50f46f19e..a7aa556e301d1087 100644
> > > > --- a/drivers/gpu/drm/rcar-du/Kconfig
> > > > +++ b/drivers/gpu/drm/rcar-du/Kconfig
> > > > @@ -32,7 +32,7 @@ config DRM_RCAR_DW_HDMI
> > > >
> > > >  config DRM_RCAR_USE_LVDS
> > > >       bool "R-Car DU LVDS Encoder Support"
> > > > -     depends on DRM_BRIDGE && OF
> > > > +     depends on DRM_BRIDGE && OF && DRM_RCAR_DU
> > >
> > > Shouldn't the same be done for DRM_RCAR_DW_HDMI ? Even better, we could
> > 
> > DRM_RCAR_DW_HDMI can be enabled and built with CONFIG_COMPILE_TEST=y
> > and CONFIG_DRM_RCAR_DU=n (yes I've tried on RISC-V ;-)
> 
> It would seem so indeed, my question is whether that shouldn't be fixed
> as well.
> 
> > > wrap all the entries for the subdrivers in a 'if DRM_RCAR_DU'.
> > 
> > That might work.  It can be tricky with bool/tristate, as sometimes m
> > is not properly propagated.
> 
> Would you give it a try for a v2 ?

Another option is to introduce DRM_RCAR_USE_HDMI and DRM_RCAR_USE_DSI.
I'd like to keep Kconfig consistent, with the same method to handle all
subdrivers if no specific reason requires doing otherwise.

> > > >       default DRM_RCAR_DU
> > > >       help
> > > >         Enable support for the R-Car Display Unit embedded LVDS encoders.
Geert Uytterhoeven Dec. 15, 2021, 10:47 a.m. UTC | #5
Hi Laurent,

On Wed, Dec 15, 2021 at 11:30 AM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Wed, Dec 15, 2021 at 12:23:39PM +0200, Laurent Pinchart wrote:
> > On Wed, Dec 15, 2021 at 11:17:37AM +0100, Geert Uytterhoeven wrote:
> > > On Wed, Dec 15, 2021 at 11:12 AM Laurent Pinchart wrote:
> > > > On Wed, Dec 15, 2021 at 10:27:46AM +0100, Geert Uytterhoeven wrote:
> > > > > The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
> > > > > Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
> > > > > disabled doesn't have any impact on the kernel built.  Hence add a
> > > > > dependency on DRM_RCAR_DU, to prevent asking the user about this driver
> > > > > when configuring a kernel without R-Car Display Unit support, like is
> > > > > already done for DRM_RCAR_CMM.
> > > > >
> > > > > Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
> > > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > > > > ---
> > > > > The problem pre-existed before commit 42d95d1b3a9c649b, as the
> > > > > dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
> > > > > before.
> > > > > Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
> > > > > ---
> > > > >  drivers/gpu/drm/rcar-du/Kconfig | 2 +-
> > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
> > > > > index 65d72be50f46f19e..a7aa556e301d1087 100644
> > > > > --- a/drivers/gpu/drm/rcar-du/Kconfig
> > > > > +++ b/drivers/gpu/drm/rcar-du/Kconfig
> > > > > @@ -32,7 +32,7 @@ config DRM_RCAR_DW_HDMI
> > > > >
> > > > >  config DRM_RCAR_USE_LVDS
> > > > >       bool "R-Car DU LVDS Encoder Support"
> > > > > -     depends on DRM_BRIDGE && OF
> > > > > +     depends on DRM_BRIDGE && OF && DRM_RCAR_DU
> > > >
> > > > Shouldn't the same be done for DRM_RCAR_DW_HDMI ? Even better, we could
> > >
> > > DRM_RCAR_DW_HDMI can be enabled and built with CONFIG_COMPILE_TEST=y
> > > and CONFIG_DRM_RCAR_DU=n (yes I've tried on RISC-V ;-)
> >
> > It would seem so indeed, my question is whether that shouldn't be fixed
> > as well.

What is there to fix? You can build the HDMI fine without the DU driver,
when compile-testing.

> > > > wrap all the entries for the subdrivers in a 'if DRM_RCAR_DU'.
> > >
> > > That might work.  It can be tricky with bool/tristate, as sometimes m
> > > is not properly propagated.
> >
> > Would you give it a try for a v2 ?
>
> Another option is to introduce DRM_RCAR_USE_HDMI and DRM_RCAR_USE_DSI.
> I'd like to keep Kconfig consistent, with the same method to handle all
> subdrivers if no specific reason requires doing otherwise.

The HDMI and DSI drivers are separate drivers that can be (test)compiled,
regardless of DRM_RCAR_DU is enabled or not.

The DRM_RCAR_USE_LVDS symbol is different: enabling it does not
have any impact on the kernel build when DRM_RCAR_DU=y.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Laurent Pinchart Dec. 15, 2021, 11:02 a.m. UTC | #6
Hi Geert,

On Wed, Dec 15, 2021 at 11:47:27AM +0100, Geert Uytterhoeven wrote:
> On Wed, Dec 15, 2021 at 11:30 AM Laurent Pinchart wrote:
> > On Wed, Dec 15, 2021 at 12:23:39PM +0200, Laurent Pinchart wrote:
> > > On Wed, Dec 15, 2021 at 11:17:37AM +0100, Geert Uytterhoeven wrote:
> > > > On Wed, Dec 15, 2021 at 11:12 AM Laurent Pinchart wrote:
> > > > > On Wed, Dec 15, 2021 at 10:27:46AM +0100, Geert Uytterhoeven wrote:
> > > > > > The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
> > > > > > Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
> > > > > > disabled doesn't have any impact on the kernel built.  Hence add a
> > > > > > dependency on DRM_RCAR_DU, to prevent asking the user about this driver
> > > > > > when configuring a kernel without R-Car Display Unit support, like is
> > > > > > already done for DRM_RCAR_CMM.
> > > > > >
> > > > > > Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
> > > > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > > > > > ---
> > > > > > The problem pre-existed before commit 42d95d1b3a9c649b, as the
> > > > > > dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
> > > > > > before.
> > > > > > Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
> > > > > > ---
> > > > > >  drivers/gpu/drm/rcar-du/Kconfig | 2 +-
> > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > >
> > > > > > diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
> > > > > > index 65d72be50f46f19e..a7aa556e301d1087 100644
> > > > > > --- a/drivers/gpu/drm/rcar-du/Kconfig
> > > > > > +++ b/drivers/gpu/drm/rcar-du/Kconfig
> > > > > > @@ -32,7 +32,7 @@ config DRM_RCAR_DW_HDMI
> > > > > >
> > > > > >  config DRM_RCAR_USE_LVDS
> > > > > >       bool "R-Car DU LVDS Encoder Support"
> > > > > > -     depends on DRM_BRIDGE && OF
> > > > > > +     depends on DRM_BRIDGE && OF && DRM_RCAR_DU
> > > > >
> > > > > Shouldn't the same be done for DRM_RCAR_DW_HDMI ? Even better, we could
> > > >
> > > > DRM_RCAR_DW_HDMI can be enabled and built with CONFIG_COMPILE_TEST=y
> > > > and CONFIG_DRM_RCAR_DU=n (yes I've tried on RISC-V ;-)
> > >
> > > It would seem so indeed, my question is whether that shouldn't be fixed
> > > as well.
> 
> What is there to fix? You can build the HDMI fine without the DU driver,
> when compile-testing.

But it polutes the kernel config by asking a question that is irrelevant
to users who don't have DRM_RCAR_DU enabled. Other patches in this
series address this relevance issue with a dependency on ARCH_RENESAS,
while for CMM and LVDS the dependency is on DRM_RCAR_DU.

> > > > > wrap all the entries for the subdrivers in a 'if DRM_RCAR_DU'.
> > > >
> > > > That might work.  It can be tricky with bool/tristate, as sometimes m
> > > > is not properly propagated.
> > >
> > > Would you give it a try for a v2 ?
> >
> > Another option is to introduce DRM_RCAR_USE_HDMI and DRM_RCAR_USE_DSI.
> > I'd like to keep Kconfig consistent, with the same method to handle all
> > subdrivers if no specific reason requires doing otherwise.
> 
> The HDMI and DSI drivers are separate drivers that can be (test)compiled,
> regardless of DRM_RCAR_DU is enabled or not.
> 
> The DRM_RCAR_USE_LVDS symbol is different: enabling it does not
> have any impact on the kernel build when DRM_RCAR_DU=y.

That's only caused by how Kconfig is structured, the LVDS encoder is
also a separate kernel module, like the HDMI and DSI encoders. The
difference is caused by the fact that the DU driver needs to call
functions exported by the LVDS driver, which caused requires preventing
a configuration where DRM_RCAR_DU would be built-in and DRM_RCAR_LVDS
would be built as a module.

Patches 1/3 and 3/3 in this series address the fact that the user
shouldn't be asked about the DSI and HDMI encoders if ARCH_RENESAS isn't
set, as those options are meaningless in that case (except when
compile-testing, which is enabled through COMPILE_TEST). The same
happens with this patch due to the dependency on DRM_RCAR_DU, which
itself depends on ARCH_RENESAS. I don't like how we end up doing similar
things in different ways, that makes Kconfig harder to understand and
maintain. I'd like to see all this fixed in a cleaner way, and I think a
'if DRM_RCAR_DU' would address the config "polution" issue in one go for
all subdrivers.
Geert Uytterhoeven Dec. 15, 2021, 1:34 p.m. UTC | #7
Hi Laurent,

On Wed, Dec 15, 2021 at 12:02 PM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Wed, Dec 15, 2021 at 11:47:27AM +0100, Geert Uytterhoeven wrote:
> > On Wed, Dec 15, 2021 at 11:30 AM Laurent Pinchart wrote:
> > > On Wed, Dec 15, 2021 at 12:23:39PM +0200, Laurent Pinchart wrote:
> > > > On Wed, Dec 15, 2021 at 11:17:37AM +0100, Geert Uytterhoeven wrote:
> > > > > On Wed, Dec 15, 2021 at 11:12 AM Laurent Pinchart wrote:
> > > > > > On Wed, Dec 15, 2021 at 10:27:46AM +0100, Geert Uytterhoeven wrote:
> > > > > > > The Renesas R-Car LVDS encoder driver is a subdriver of the R-Car
> > > > > > > Display Unit driver, and enabling DRM_RCAR_USE_LVDS while DRM_RCAR_DU is
> > > > > > > disabled doesn't have any impact on the kernel built.  Hence add a
> > > > > > > dependency on DRM_RCAR_DU, to prevent asking the user about this driver
> > > > > > > when configuring a kernel without R-Car Display Unit support, like is
> > > > > > > already done for DRM_RCAR_CMM.
> > > > > > >
> > > > > > > Fixes: 42d95d1b3a9c649b ("drm/rcar: stop using 'imply' for dependencies")
> > > > > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > > > > > > ---
> > > > > > > The problem pre-existed before commit 42d95d1b3a9c649b, as the
> > > > > > > dependency of DRM_RCAR_LVDS on DRM_RCAR_DU was accidentally removed
> > > > > > > before.
> > > > > > > Fixes: c6a27fa41fabb35f ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
> > > > > > > ---
> > > > > > >  drivers/gpu/drm/rcar-du/Kconfig | 2 +-
> > > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > >
> > > > > > > diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
> > > > > > > index 65d72be50f46f19e..a7aa556e301d1087 100644
> > > > > > > --- a/drivers/gpu/drm/rcar-du/Kconfig
> > > > > > > +++ b/drivers/gpu/drm/rcar-du/Kconfig
> > > > > > > @@ -32,7 +32,7 @@ config DRM_RCAR_DW_HDMI
> > > > > > >
> > > > > > >  config DRM_RCAR_USE_LVDS
> > > > > > >       bool "R-Car DU LVDS Encoder Support"
> > > > > > > -     depends on DRM_BRIDGE && OF
> > > > > > > +     depends on DRM_BRIDGE && OF && DRM_RCAR_DU
> > > > > >
> > > > > > Shouldn't the same be done for DRM_RCAR_DW_HDMI ? Even better, we could
> > > > >
> > > > > DRM_RCAR_DW_HDMI can be enabled and built with CONFIG_COMPILE_TEST=y
> > > > > and CONFIG_DRM_RCAR_DU=n (yes I've tried on RISC-V ;-)
> > > >
> > > > It would seem so indeed, my question is whether that shouldn't be fixed
> > > > as well.
> >
> > What is there to fix? You can build the HDMI fine without the DU driver,
> > when compile-testing.
>
> But it polutes the kernel config by asking a question that is irrelevant
> to users who don't have DRM_RCAR_DU enabled. Other patches in this
> series address this relevance issue with a dependency on ARCH_RENESAS,
> while for CMM and LVDS the dependency is on DRM_RCAR_DU.
>
> > > > > > wrap all the entries for the subdrivers in a 'if DRM_RCAR_DU'.
> > > > >
> > > > > That might work.  It can be tricky with bool/tristate, as sometimes m
> > > > > is not properly propagated.
> > > >
> > > > Would you give it a try for a v2 ?
> > >
> > > Another option is to introduce DRM_RCAR_USE_HDMI and DRM_RCAR_USE_DSI.
> > > I'd like to keep Kconfig consistent, with the same method to handle all
> > > subdrivers if no specific reason requires doing otherwise.
> >
> > The HDMI and DSI drivers are separate drivers that can be (test)compiled,
> > regardless of DRM_RCAR_DU is enabled or not.
> >
> > The DRM_RCAR_USE_LVDS symbol is different: enabling it does not
> > have any impact on the kernel build when DRM_RCAR_DU=y.
>
> That's only caused by how Kconfig is structured, the LVDS encoder is
> also a separate kernel module, like the HDMI and DSI encoders. The
> difference is caused by the fact that the DU driver needs to call
> functions exported by the LVDS driver, which caused requires preventing
> a configuration where DRM_RCAR_DU would be built-in and DRM_RCAR_LVDS
> would be built as a module.
>
> Patches 1/3 and 3/3 in this series address the fact that the user
> shouldn't be asked about the DSI and HDMI encoders if ARCH_RENESAS isn't
> set, as those options are meaningless in that case (except when
> compile-testing, which is enabled through COMPILE_TEST). The same
> happens with this patch due to the dependency on DRM_RCAR_DU, which
> itself depends on ARCH_RENESAS. I don't like how we end up doing similar
> things in different ways, that makes Kconfig harder to understand and
> maintain. I'd like to see all this fixed in a cleaner way, and I think a
> 'if DRM_RCAR_DU' would address the config "polution" issue in one go for
> all subdrivers.

If you prefer the big "if", fine for me.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
diff mbox series

Patch

diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
index 65d72be50f46f19e..a7aa556e301d1087 100644
--- a/drivers/gpu/drm/rcar-du/Kconfig
+++ b/drivers/gpu/drm/rcar-du/Kconfig
@@ -32,7 +32,7 @@  config DRM_RCAR_DW_HDMI
 
 config DRM_RCAR_USE_LVDS
 	bool "R-Car DU LVDS Encoder Support"
-	depends on DRM_BRIDGE && OF
+	depends on DRM_BRIDGE && OF && DRM_RCAR_DU
 	default DRM_RCAR_DU
 	help
 	  Enable support for the R-Car Display Unit embedded LVDS encoders.