[PATCH] drm: rcar-du: crtc: force depends on cmm

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Jul 28 10:46:13 UTC 2021


On 28/07/2021 10:34, Jackie Liu wrote:
> Hi Kieran.
> 
> Thanks for replying to the email so quickly.
> 
> 在 2021/7/28 下午4:58, Kieran Bingham 写道:
>> Hi Jackie,
>>
>> On 28/07/2021 09:42, Jackie Liu wrote:
>>> From: Jackie Liu <liuyun01 at kylinos.cn>
>>>
>>> After the patch 78b6bb1d24db ("drm: rcar-du: crtc: Control CMM
>>> operations"),
>>> the cmm module must be included in the crtc. We cannot remove this
>>> configuration option separately. Therefore, simply linking them together
>>> is the best solution, otherwise some errors will be reported.
>>>
>>
>> Yikes, I'm sure we've had plenty of problems with the config options on
>> this module. The churn alone makes me wonder if it should just be part
>> of the overall module to simplify things... but...
>>
>>>   rcar_du_crtc.c:(.text+0x194): undefined reference to `rcar_cmm_setup'
>>>   rcar_du_crtc.c:(.text+0x11bc): undefined reference to
>>> `rcar_cmm_enable'
>>>   rcar_du_crtc.c:(.text+0x1604): undefined reference to
>>> `rcar_cmm_disable'
>>>   rcar_du_kms.c:(.text+0x768): undefined reference to `rcar_cmm_init'
>>
>> Those are guarded by #if IS_ENABLED in the header.
>>
>> So from that - perhaps we can assume that the config attempted here was
>> a built-in DU - but a module CMM which wouldn't be supported?
> 
> I know you want to keep CMM as a module, I might think it’s too simple.
> will rewrite the patch.

There are DU's which do not have a CMM, so I think that is why it is an
optional feature/module.


>>> Fixes: 78b6bb1d24db ("rm: rcar-du: crtc: Control CMM operations")
>>
>> That fixes tag is missing a 'd', but that's trivial.
> 
> 12 characters of sha is enough.

I meant the 'd' of 'drm' (it's 'rm' in your text)

> ---
> BR, Thanks.
> Jackie Liu
> 
>>
>>
>>> Reported-by: kernel-bot <k2ci at kylinos.cn>
>>> Signed-off-by: Jackie Liu <liuyun01 at kylinos.cn>
>>> ---
>>>   drivers/gpu/drm/rcar-du/Kconfig  | 8 --------
>>>   drivers/gpu/drm/rcar-du/Makefile | 2 +-
>>>   2 files changed, 1 insertion(+), 9 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/rcar-du/Kconfig
>>> b/drivers/gpu/drm/rcar-du/Kconfig
>>> index b47e74421e34..bc71ad2a472f 100644
>>> --- a/drivers/gpu/drm/rcar-du/Kconfig
>>> +++ b/drivers/gpu/drm/rcar-du/Kconfig
>>> @@ -4,7 +4,6 @@ config DRM_RCAR_DU
>>>       depends on DRM && OF
>>>       depends on ARM || ARM64
>>>       depends on ARCH_RENESAS || COMPILE_TEST
>>> -    imply DRM_RCAR_CMM
>>>       imply DRM_RCAR_LVDS
>>>       select DRM_KMS_HELPER
>>>       select DRM_KMS_CMA_HELPER
>>> @@ -14,13 +13,6 @@ config DRM_RCAR_DU
>>>         Choose this option if you have an R-Car chipset.
>>>         If M is selected the module will be called rcar-du-drm.
>>>   -config DRM_RCAR_CMM
>>> -    tristate "R-Car DU Color Management Module (CMM) Support"
>>> -    depends on DRM && OF
>>> -    depends on DRM_RCAR_DU
>>> -    help
>>> -      Enable support for R-Car Color Management Module (CMM).
>>> -
>>
>> I suspect the issue lies somewhere in this config that the CMM is not
>> being enforced to be a built in when the DU is built in ?


Checked locally, and indeed KConfig lets us enable the DU as a built in
- but the CMM as a module - that can't be allowed. :-(

--
Kieran


>>
>>
>>>   config DRM_RCAR_DW_HDMI
>>>       tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support"
>>>       depends on DRM && OF
>>> diff --git a/drivers/gpu/drm/rcar-du/Makefile
>>> b/drivers/gpu/drm/rcar-du/Makefile
>>> index 4d1187ccc3e5..76ff2e15bc2d 100644
>>> --- a/drivers/gpu/drm/rcar-du/Makefile
>>> +++ b/drivers/gpu/drm/rcar-du/Makefile
>>> @@ -5,6 +5,7 @@ rcar-du-drm-y := rcar_du_crtc.o \
>>>            rcar_du_group.o \
>>>            rcar_du_kms.o \
>>>            rcar_du_plane.o \
>>> +         rcar_cmm.o
>>>     rcar-du-drm-$(CONFIG_DRM_RCAR_LVDS)    += rcar_du_of.o \
>>>                          rcar_du_of_lvds_r8a7790.dtb.o \
>>> @@ -15,7 +16,6 @@ rcar-du-drm-$(CONFIG_DRM_RCAR_LVDS)    +=
>>> rcar_du_of.o \
>>>   rcar-du-drm-$(CONFIG_DRM_RCAR_VSP)    += rcar_du_vsp.o
>>>   rcar-du-drm-$(CONFIG_DRM_RCAR_WRITEBACK) += rcar_du_writeback.o
>>>   -obj-$(CONFIG_DRM_RCAR_CMM)        += rcar_cmm.o
>>>   obj-$(CONFIG_DRM_RCAR_DU)        += rcar-du-drm.o
>>>   obj-$(CONFIG_DRM_RCAR_DW_HDMI)        += rcar_dw_hdmi.o
>>>   obj-$(CONFIG_DRM_RCAR_LVDS)        += rcar_lvds.o
>>>


More information about the dri-devel mailing list