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

Andy Yan
2022-03-31T11:00:45Z

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.

>
> Sascha
>