<div data-ntes="ntes_mail_body_root" style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div id="spnEditorContent"><p style="margin: 0;">Hi Sascha,</p></div><pre>At 2024-09-05 15:10:56, "Sascha Hauer" <s.hauer@pengutronix.de> wrote:
>Hi Andy,
>
>On Wed, Sep 04, 2024 at 08:02:32PM +0800, Andy Yan wrote:
>> From: Andy Yan <andy.yan@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@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
<div>>VOP2_VERSION(0x40, 0x15, 0x8022) to get rid of the soc_id thingy?</div><div><br></div><div>Yes,RK3566 and RK3568 share the same VOP IP block, so the version code at VERSION_REGISTER is</div><div>the same, the difference between rk3568 and rk33566 are introduced at soc Integration。</div><div>So i would still like to keep the soc_id to  handle situation like this。As we always have such  cause, one</div><div>same IP block, but there are some subtle differences in features across different SOCs.</div><div><span style="color: rgb(6, 6, 7); font-family: -apple-system, blinkmacsystemfont, "Helvetica Neue", helvetica, "segoe ui", arial, roboto, "PingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif; letter-spacing: 0.25px;">I have considered reading the version register directly, but I haven't found a suitable method yet。</span></div><div><br></div>>
>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 |
>
>_______________________________________________
>Linux-rockchip mailing list
>Linux-rockchip@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/linux-rockchip
</pre></div>