mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
drm/rockchip: add afbdc feature for plane
For next Soc VOP only vopb win1 support AFBDC, so we need add afbdc feature for every win. Change-Id: Icbe5e26189d2147a6b81f2f75d0b855b2c35fd26 Signed-off-by: Sandy Huang <hjc@rock-chips.com>
This commit is contained in:
parent
268d7f4e3d
commit
6d852444b8
|
|
@ -3453,6 +3453,8 @@ static int vop_plane_init(struct vop *vop, struct vop_win *win,
|
|||
feature |= BIT(ROCKCHIP_DRM_PLANE_FEATURE_HDR2SDR);
|
||||
if (win->feature & WIN_FEATURE_SDR2HDR)
|
||||
feature |= BIT(ROCKCHIP_DRM_PLANE_FEATURE_SDR2HDR);
|
||||
if (win->feature & WIN_FEATURE_AFBDC)
|
||||
feature |= BIT(ROCKCHIP_DRM_PLANE_FEATURE_AFBDC);
|
||||
|
||||
drm_object_attach_property(&win->base.base, vop->plane_feature_prop,
|
||||
feature);
|
||||
|
|
@ -3704,6 +3706,7 @@ static int vop_win_init(struct vop *vop)
|
|||
{ ROCKCHIP_DRM_PLANE_FEATURE_ALPHA, "alpha" },
|
||||
{ ROCKCHIP_DRM_PLANE_FEATURE_HDR2SDR, "hdr2sdr" },
|
||||
{ ROCKCHIP_DRM_PLANE_FEATURE_SDR2HDR, "sdr2hdr" },
|
||||
{ ROCKCHIP_DRM_PLANE_FEATURE_AFBDC, "afbdc" },
|
||||
};
|
||||
static const struct drm_prop_enum_list crtc_props[] = {
|
||||
{ ROCKCHIP_DRM_CRTC_FEATURE_AFBDC, "afbdc" },
|
||||
|
|
@ -3761,7 +3764,8 @@ static int vop_win_init(struct vop *vop)
|
|||
BIT(ROCKCHIP_DRM_PLANE_FEATURE_SCALE) |
|
||||
BIT(ROCKCHIP_DRM_PLANE_FEATURE_ALPHA) |
|
||||
BIT(ROCKCHIP_DRM_PLANE_FEATURE_HDR2SDR) |
|
||||
BIT(ROCKCHIP_DRM_PLANE_FEATURE_SDR2HDR));
|
||||
BIT(ROCKCHIP_DRM_PLANE_FEATURE_SDR2HDR) |
|
||||
BIT(ROCKCHIP_DRM_PLANE_FEATURE_AFBDC));
|
||||
if (!vop->plane_feature_prop) {
|
||||
DRM_ERROR("failed to create feature property\n");
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -396,6 +396,7 @@ struct vop_win_data {
|
|||
#define WIN_FEATURE_HDR2SDR BIT(0)
|
||||
#define WIN_FEATURE_SDR2HDR BIT(1)
|
||||
#define WIN_FEATURE_PRE_OVERLAY BIT(2)
|
||||
#define WIN_FEATURE_AFBDC BIT(3)
|
||||
|
||||
struct vop_rect {
|
||||
int width;
|
||||
|
|
|
|||
|
|
@ -548,15 +548,19 @@ static const struct vop_csc rk3399_win3_csc = {
|
|||
|
||||
static const struct vop_win_data rk3399_vop_win_data[] = {
|
||||
{ .base = 0x00, .phy = &rk3288_win01_data, .csc = &rk3399_win0_csc,
|
||||
.type = DRM_PLANE_TYPE_PRIMARY },
|
||||
.type = DRM_PLANE_TYPE_PRIMARY,
|
||||
.feature = WIN_FEATURE_AFBDC },
|
||||
{ .base = 0x40, .phy = &rk3288_win01_data, .csc = &rk3399_win1_csc,
|
||||
.type = DRM_PLANE_TYPE_OVERLAY },
|
||||
.type = DRM_PLANE_TYPE_OVERLAY,
|
||||
.feature = WIN_FEATURE_AFBDC },
|
||||
{ .base = 0x00, .phy = &rk3368_win23_data, .csc = &rk3399_win2_csc,
|
||||
.type = DRM_PLANE_TYPE_OVERLAY,
|
||||
.feature = WIN_FEATURE_AFBDC,
|
||||
.area = rk3368_area_data,
|
||||
.area_size = ARRAY_SIZE(rk3368_area_data), },
|
||||
{ .base = 0x50, .phy = &rk3368_win23_data, .csc = &rk3399_win3_csc,
|
||||
.type = DRM_PLANE_TYPE_CURSOR,
|
||||
.feature = WIN_FEATURE_AFBDC,
|
||||
.area = rk3368_area_data,
|
||||
.area_size = ARRAY_SIZE(rk3368_area_data), },
|
||||
};
|
||||
|
|
@ -575,10 +579,12 @@ static const struct vop_data rk3399_vop_big = {
|
|||
|
||||
static const struct vop_win_data rk3399_vop_lit_win_data[] = {
|
||||
{ .base = 0x00, .phy = &rk3288_win01_data, .csc = &rk3399_win0_csc,
|
||||
.type = DRM_PLANE_TYPE_PRIMARY },
|
||||
.type = DRM_PLANE_TYPE_PRIMARY,
|
||||
.feature = WIN_FEATURE_AFBDC },
|
||||
{ .phy = NULL },
|
||||
{ .base = 0x00, .phy = &rk3368_win23_data, .csc = &rk3399_win2_csc,
|
||||
.type = DRM_PLANE_TYPE_CURSOR,
|
||||
.feature = WIN_FEATURE_AFBDC,
|
||||
.area = rk3368_area_data,
|
||||
.area_size = ARRAY_SIZE(rk3368_area_data), },
|
||||
{ .phy = NULL },
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ enum rockchip_plane_feture {
|
|||
ROCKCHIP_DRM_PLANE_FEATURE_ALPHA,
|
||||
ROCKCHIP_DRM_PLANE_FEATURE_HDR2SDR,
|
||||
ROCKCHIP_DRM_PLANE_FEATURE_SDR2HDR,
|
||||
ROCKCHIP_DRM_PLANE_FEATURE_AFBDC,
|
||||
ROCKCHIP_DRM_PLANE_FEATURE_MAX,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user