diff options
author | Mark yao <mark.yao@rock-chips.com> | 2017-07-26 14:19:30 +0800 |
---|---|---|
committer | Mark Yao <mark.yao@rock-chips.com> | 2017-07-31 08:44:06 +0800 |
commit | eb5cb6aa9a72a7c23b733d858469963067551b33 (patch) | |
tree | 2ef382c828a80e072dcbf2457a3bf5921b753332 /drivers/gpu/drm/rockchip/rockchip_drm_vop.h | |
parent | 9a61c54b9bff88e692ac7b1245546539ac5274a1 (diff) |
drm/rockchip: vop: add a series of vop support
Vop Full framework now has following vops:
IP version chipname
3.1 rk3288
3.2 rk3368
3.4 rk3366
3.5 rk3399 big
3.6 rk3399 lit
3.7 rk3228
3.8 rk3328
The above IP version is from H/W define, some of vop support get
the IP version from VERSION_INFO register, some are not.
hardcode the IP version for each vop to identify them.
major version: used for IP structure, Vop full framework is 3,
vop little framework is 2.
minor version: on same structure, newer design vop will bigger
then old one.
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Reviewed-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/1501049971-6131-1-git-send-email-mark.yao@rock-chips.com
Diffstat (limited to 'drivers/gpu/drm/rockchip/rockchip_drm_vop.h')
-rw-r--r-- | drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h index 3ba962c72c07..43d08c88f1f8 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h @@ -15,6 +15,14 @@ #ifndef _ROCKCHIP_DRM_VOP_H #define _ROCKCHIP_DRM_VOP_H +/* + * major: IP major version, used for IP structure + * minor: big feature change under same structure + */ +#define VOP_VERSION(major, minor) ((major) << 8 | (minor)) +#define VOP_MAJOR(version) ((version) >> 8) +#define VOP_MINOR(version) ((version) & 0xff) + enum vop_data_format { VOP_FMT_ARGB8888 = 0, VOP_FMT_RGB888, @@ -142,6 +150,7 @@ struct vop_win_data { }; struct vop_data { + uint32_t version; const struct vop_intr *intr; const struct vop_common *common; const struct vop_misc *misc; |