Re: [PATCH v9 20/23] drm/rockchip: Make VOP driver optional

Andy Yan
2022-04-02T01:25:55Z

Hi Sascha:

On 4/1/22 20:55, Sascha Hauer wrote:
> On Thu, Mar 31, 2022 at 07:00:34PM +0800, Andy Yan wrote:
>> Hi:
>>
>> On 3/31/22 16:18, Sascha Hauer wrote:
>>> On Thu, Mar 31, 2022 at 03:20:37PM +0800, Andy Yan wrote:
>>>> Hi Sascha:
>>>>
>>>> On 3/31/22 15:06, Sascha Hauer wrote:
>>>>> On Wed, Mar 30, 2022 at 08:50:09PM +0800, Andy Yan wrote:
>>>>>> Hi Sascha:
>>>>>>
>>>>>> On 3/30/22 14:39, Sascha Hauer wrote:
>>>>>>> Hi Andy,
>>>>>>>
>>>>>>> On Tue, Mar 29, 2022 at 07:56:27PM +0800, Andy Yan wrote:
>>>>>>>> Hi Sascha:
>>>>>>>>
>>>>>>>> On 3/28/22 23:11, Sascha Hauer wrote:
>>>>>>>>> With upcoming VOP2 support VOP won't be the only choice anymore, so make
>>>>>>>>> the VOP driver optional.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
>>>>>>>>> ---
>>>>>>>>> drivers/gpu/drm/rockchip/Kconfig | 8 ++++++++
>>>>>>>>> drivers/gpu/drm/rockchip/Makefile | 3 ++-
>>>>>>>>> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +-
>>>>>>>>> 3 files changed, 11 insertions(+), 2 deletions(-)
>>>>>>>>>
>>>>>>>>> diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig
>>>>>>>>> index fa5cfda4e90e3..7d22e2997a571 100644
>>>>>>>>> --- a/drivers/gpu/drm/rockchip/Kconfig
>>>>>>>>> +++ b/drivers/gpu/drm/rockchip/Kconfig
>>>>>>>>> @@ -23,8 +23,16 @@ config DRM_ROCKCHIP
>>>>>>>>> if DRM_ROCKCHIP
>>>>>>>>> +config ROCKCHIP_VOP
>>>>>>>>> + bool "Rockchip VOP driver"
>>>>>>>>> + default y
>>>>>>>>> + help
>>>>>>>>> + This selects support for the VOP driver. You should enable it
>>>>>>>>> + on all older SoCs up to RK3399.
>>>>>>> That reminds me that I wanted to rephrase this. Will change in next
>>>>>>> round.
>>>>>>>
>>>>>>>>> +
>>>>>>>>> config ROCKCHIP_ANALOGIX_DP
>>>>>>>>> bool "Rockchip specific extensions for Analogix DP driver"
>>>>>>>>> + depends on ROCKCHIP_VOP
>>>>>>>> Aanlogix dp is also on vop2 base soc such as  rk356x and rk3588.
>>>>> BTW I just looked at the downstream driver. Here we have the same
>>>>> situation that the analogix dp driver calls rockchip_drm_wait_vact_end()
>>>>> which is implemented in the VOP driver, so when the analogix dp driver
>>>>> is actually used on a VOP2 SoC then it is either used in a way that
>>>>> rockchip_drm_wait_vact_end() will never be called or it explodes in all
>>>>> colours.
>>>>>
>>>>>>> I added the dependency because analogix_dp-rockchip.c calls
>>>>>>> rockchip_drm_wait_vact_end() which is implemented in the VOP driver,
>>>>>>> so this driver currenty can't work with the VOP2 driver and can't
>>>>>>> be linked without the VOP driver being present.
>>>>>>> I'll add a few words to the commit message.
>>>>>> Maybe a better direction is move rockchip_drm_wait_vact_end from the VOP
>>>>>> driver to rockchip_drm_drv.c
>>>>> I am not sure if that's really worth it. Yes, the direction might be the
>>>>> right one, but I would really prefer when somebody does the change who
>>>>> can test and confirm that the analogix dp really works with VOP2 in the
>>>>> end.
>>>> If follow this point, the current DW_MIPI also has not been tested for
>>>> confirm that it
>>>>
>>>> can really work with VOP2, so you should also make it depends on
>>>> ROCKCHIP_VOP.
>>> Well at least I have patches here which make DW_MIPI work with VOP2 ;)
>>
>> But you DW_MIPI patches for rk356x didn't come. So this is not keep
>> consistency with this point.
>>
>>> What about the others, like LVDS and RGB?
>>
>> Yes, we also have other interface , RK356X has LVDS/RGB/BT1120/BT656, RK3588
>> has BT1120/BT656, no LVDS or RGB.
>>
>>>> I think the current solution is just a workaround to make your patch pass
>>>> the kernel compile
>>> Indeed.
>>>
>>> I agree that it would be good to add a note somewhere which outputs
>>> work with the VOP2 driver (currently only HDMI), but I wonder if Kconfig
>>> dependencies is the right place for it, because only people who deliberately
>>> disable VOP support will see this information.
>>> Maybe we should rather add it to the Kconfig help text?
>>
>> If a device is supported for this soc, we will add dt node at the dtsi file.
>>
>> A Kconfig dependencies don't seems a good idea.
> Ok, this means we can keep my current approach with just letting
> ROCKCHIP_ANALOGIX_DP depend on ROCKCHIP_VOP to avoid having a non

Excuse me? How do you get this conclusion ?

I said before,  vop and vop2 based platforms both have ROCKCHIP_ANALOGIX_DP.

If this patch will cause the compile error, please do a real fix, not a

workaround that may deliver misleading information.

> buildable kernel.
>
> Sascha