Re: [RFC 5/6] drm/rcar-du: fix selection of CMM driver
From: Arnd Bergmann
Date: Wed Apr 15 2020 - 11:18:49 EST
On Wed, Apr 15, 2020 at 4:13 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> On Wed, Apr 15, 2020 at 3:47 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > On Tue, Apr 14, 2020 at 10:52 PM Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:
> > > Doesn't "imply" mean it gets selected by default but can be manually
> > > disabled ?
> >
> > That may be what it means now (I still don't understand how it's defined
> > as of v5.7-rc1), but traditionally it was more like a 'select if all
> > dependencies are met'.
>
> That's still what it is supposed to mean right now ;-)
> Except that now it should correctly handle the modular case, too.
Then there is a bug. If I run 'make menuconfig' now on a mainline kernel
and enable CONFIG_DRM_RCAR_DU, I can set
DRM_RCAR_CMM and DRM_RCAR_LVDS to 'y', 'n' or 'm' regardless
of whether CONFIG_DRM_RCAR_DU is 'm' or 'y'. The 'implies'
statement seems to be ignored entirely, except as reverse 'default'
setting.
> >
> > In that case, a Makefile trick could also work, doing
> >
> > ifdef CONFIG_DRM_RCAR_CMM
> > obj-$(CONFIG_DRM_RCAR_DU) += rcar-cmm.o
> > endif
> >
> > Thereby making the cmm module have the same state (y or m) as
> > the du module whenever the option is enabled.
>
> What about dropping the "imply DRM_RCAR_CMM", but defaulting to
> enable CMM if DU is enabled?
>
> config DRM_RCAR_CMM
> tristate "R-Car DU Color Management Module (CMM) Support"
> depends on DRM_RCAR_DU && OF
> default DRM_RCAR_DU
That doesn't work because it allows DRM_RCAR_DU=y with
DRM_RCAR_CMM=m, which causes a link failure.
Arnd