aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vc4/vc4_plane.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/vc4/vc4_plane.c')
-rw-r--r--drivers/gpu/drm/vc4/vc4_plane.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index 515f97997624..61ad955645a5 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -85,47 +85,46 @@ static const struct hvs_format {
85 u32 drm; /* DRM_FORMAT_* */ 85 u32 drm; /* DRM_FORMAT_* */
86 u32 hvs; /* HVS_FORMAT_* */ 86 u32 hvs; /* HVS_FORMAT_* */
87 u32 pixel_order; 87 u32 pixel_order;
88 bool has_alpha;
89} hvs_formats[] = { 88} hvs_formats[] = {
90 { 89 {
91 .drm = DRM_FORMAT_XRGB8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888, 90 .drm = DRM_FORMAT_XRGB8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888,
92 .pixel_order = HVS_PIXEL_ORDER_ABGR, .has_alpha = false, 91 .pixel_order = HVS_PIXEL_ORDER_ABGR,
93 }, 92 },
94 { 93 {
95 .drm = DRM_FORMAT_ARGB8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888, 94 .drm = DRM_FORMAT_ARGB8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888,
96 .pixel_order = HVS_PIXEL_ORDER_ABGR, .has_alpha = true, 95 .pixel_order = HVS_PIXEL_ORDER_ABGR,
97 }, 96 },
98 { 97 {
99 .drm = DRM_FORMAT_ABGR8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888, 98 .drm = DRM_FORMAT_ABGR8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888,
100 .pixel_order = HVS_PIXEL_ORDER_ARGB, .has_alpha = true, 99 .pixel_order = HVS_PIXEL_ORDER_ARGB,
101 }, 100 },
102 { 101 {
103 .drm = DRM_FORMAT_XBGR8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888, 102 .drm = DRM_FORMAT_XBGR8888, .hvs = HVS_PIXEL_FORMAT_RGBA8888,
104 .pixel_order = HVS_PIXEL_ORDER_ARGB, .has_alpha = false, 103 .pixel_order = HVS_PIXEL_ORDER_ARGB,
105 }, 104 },
106 { 105 {
107 .drm = DRM_FORMAT_RGB565, .hvs = HVS_PIXEL_FORMAT_RGB565, 106 .drm = DRM_FORMAT_RGB565, .hvs = HVS_PIXEL_FORMAT_RGB565,
108 .pixel_order = HVS_PIXEL_ORDER_XRGB, .has_alpha = false, 107 .pixel_order = HVS_PIXEL_ORDER_XRGB,
109 }, 108 },
110 { 109 {
111 .drm = DRM_FORMAT_BGR565, .hvs = HVS_PIXEL_FORMAT_RGB565, 110 .drm = DRM_FORMAT_BGR565, .hvs = HVS_PIXEL_FORMAT_RGB565,
112 .pixel_order = HVS_PIXEL_ORDER_XBGR, .has_alpha = false, 111 .pixel_order = HVS_PIXEL_ORDER_XBGR,
113 }, 112 },
114 { 113 {
115 .drm = DRM_FORMAT_ARGB1555, .hvs = HVS_PIXEL_FORMAT_RGBA5551, 114 .drm = DRM_FORMAT_ARGB1555, .hvs = HVS_PIXEL_FORMAT_RGBA5551,
116 .pixel_order = HVS_PIXEL_ORDER_ABGR, .has_alpha = true, 115 .pixel_order = HVS_PIXEL_ORDER_ABGR,
117 }, 116 },
118 { 117 {
119 .drm = DRM_FORMAT_XRGB1555, .hvs = HVS_PIXEL_FORMAT_RGBA5551, 118 .drm = DRM_FORMAT_XRGB1555, .hvs = HVS_PIXEL_FORMAT_RGBA5551,
120 .pixel_order = HVS_PIXEL_ORDER_ABGR, .has_alpha = false, 119 .pixel_order = HVS_PIXEL_ORDER_ABGR,
121 }, 120 },
122 { 121 {
123 .drm = DRM_FORMAT_RGB888, .hvs = HVS_PIXEL_FORMAT_RGB888, 122 .drm = DRM_FORMAT_RGB888, .hvs = HVS_PIXEL_FORMAT_RGB888,
124 .pixel_order = HVS_PIXEL_ORDER_XRGB, .has_alpha = false, 123 .pixel_order = HVS_PIXEL_ORDER_XRGB,
125 }, 124 },
126 { 125 {
127 .drm = DRM_FORMAT_BGR888, .hvs = HVS_PIXEL_FORMAT_RGB888, 126 .drm = DRM_FORMAT_BGR888, .hvs = HVS_PIXEL_FORMAT_RGB888,
128 .pixel_order = HVS_PIXEL_ORDER_XBGR, .has_alpha = false, 127 .pixel_order = HVS_PIXEL_ORDER_XBGR,
129 }, 128 },
130 { 129 {
131 .drm = DRM_FORMAT_YUV422, 130 .drm = DRM_FORMAT_YUV422,
@@ -622,7 +621,7 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
622 /* Position Word 2: Source Image Size, Alpha Mode */ 621 /* Position Word 2: Source Image Size, Alpha Mode */
623 vc4_state->pos2_offset = vc4_state->dlist_count; 622 vc4_state->pos2_offset = vc4_state->dlist_count;
624 vc4_dlist_write(vc4_state, 623 vc4_dlist_write(vc4_state,
625 VC4_SET_FIELD(format->has_alpha ? 624 VC4_SET_FIELD(fb->format->has_alpha ?
626 SCALER_POS2_ALPHA_MODE_PIPELINE : 625 SCALER_POS2_ALPHA_MODE_PIPELINE :
627 SCALER_POS2_ALPHA_MODE_FIXED, 626 SCALER_POS2_ALPHA_MODE_FIXED,
628 SCALER_POS2_ALPHA_MODE) | 627 SCALER_POS2_ALPHA_MODE) |