[PATCH v2 05/11] drm/rockchip: vop2: Introduce vop hardware version

Sascha Hauer s.hauer at pengutronix.de
Thu Sep 5 00:10:56 PDT 2024


Hi Andy,

On Wed, Sep 04, 2024 at 08:02:32PM +0800, Andy Yan wrote:
> From: Andy Yan <andy.yan at rock-chips.com>
> 
> There is a version number hardcoded in the VOP VERSION_INFO
> register, and the version number increments sequentially based
> on the production order of the SOC.
> 
> So using this version number to distinguish different VOP features
> will simplify the code.
> 
> Signed-off-by: Andy Yan <andy.yan at rock-chips.com>
> 
> ---
> 
> Changes in v2:
> - Introduce vop hardware version
> 
>  drivers/gpu/drm/rockchip/rockchip_drm_vop2.c |  7 ++++---
>  drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 11 +++++++++++
>  drivers/gpu/drm/rockchip/rockchip_vop2_reg.c |  3 +++
>  3 files changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h
> index 9b269f6e576e..871d9bcd1d80 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h
> @@ -13,6 +13,15 @@
>  #include "rockchip_drm_drv.h"
>  #include "rockchip_drm_vop.h"
>  
> +#define VOP2_VERSION(major, minor, build)	((major) << 24 | (minor) << 16 | (build))
> +
> +/* The new SOC VOP version is bigger than the old */
> +#define VOP_VERSION_RK3568	VOP2_VERSION(0x40, 0x15, 0x8023)
> +#define VOP_VERSION_RK3588	VOP2_VERSION(0x40, 0x17, 0x6786)
> +#define VOP_VERSION_RK3528	VOP2_VERSION(0x50, 0x17, 0x1263)
> +#define VOP_VERSION_RK3562	VOP2_VERSION(0x50, 0x17, 0x4350)
> +#define VOP_VERSION_RK3576	VOP2_VERSION(0x50, 0x19, 0x9765)

What about the RK3566? Does it have the same version code as the RK3568?

This new version field replaces the soc_id mechanism we had before to
99%. You keep the soc_id around just for distinguishing between RK3566
and RK3568. It would be nice to fully replace it.

I see that the VOP_VERSION_RK* numbers are the same as found in the
VOP2_SYS_VERSION_INF registers. On the other hand you never read the
value from the register which make the VOP_VERSION_RK* just arbitrary
numbers. Wouldn't it be possible to make something up for RK3566, like
VOP2_VERSION(0x40, 0x15, 0x8022) to get rid of the soc_id thingy?

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the Linux-rockchip mailing list