File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -1079,6 +1079,20 @@ static u32 vc4_hvs5_get_alpha_blend_mode(struct drm_plane_state *state)
1079
1079
}
1080
1080
}
1081
1081
1082
+ static u32 vc4_hvs6_get_alpha_mask_mode (struct drm_plane_state * state )
1083
+ {
1084
+ struct drm_device * dev = state -> state -> dev ;
1085
+ struct vc4_dev * vc4 = to_vc4_dev (dev );
1086
+
1087
+ WARN_ON_ONCE (vc4 -> gen != VC4_GEN_6 );
1088
+
1089
+ if (vc4 -> step_d0 && (!state -> fb -> format -> has_alpha ||
1090
+ state -> pixel_blend_mode == DRM_MODE_BLEND_PIXEL_NONE ))
1091
+ return VC4_SET_FIELD (SCALER6_CTL0_ALPHA_MASK_FIXED ,
1092
+ SCALER6_CTL0_ALPHA_MASK );
1093
+ return VC4_SET_FIELD (SCALER6_CTL0_ALPHA_MASK_NONE , SCALER6_CTL0_ALPHA_MASK );
1094
+ }
1095
+
1082
1096
/* Writes out a full display list for an active plane to the plane's
1083
1097
* private dlist state.
1084
1098
*/
@@ -1822,7 +1836,7 @@ static int vc6_plane_mode_set(struct drm_plane *plane,
1822
1836
vc4_dlist_write (vc4_state ,
1823
1837
SCALER6_CTL0_VALID |
1824
1838
VC4_SET_FIELD (tiling , SCALER6_CTL0_ADDR_MODE ) |
1825
- VC4_SET_FIELD ( 0 , SCALER6_CTL0_ALPHA_MASK ) |
1839
+ vc4_hvs6_get_alpha_mask_mode ( state ) |
1826
1840
(vc4_state -> is_unity ? SCALER6_CTL0_UNITY : 0 ) |
1827
1841
VC4_SET_FIELD (format -> pixel_order_hvs5 , SCALER6_CTL0_ORDERRGBA ) |
1828
1842
VC4_SET_FIELD (scl1 , SCALER6_CTL0_SCL1_MODE ) |
Original file line number Diff line number Diff line change @@ -1408,6 +1408,9 @@ enum hvs_pixel_format {
1408
1408
#define SCALER6_CTL0_ADDR_MODE_UIF 4
1409
1409
1410
1410
#define SCALER6_CTL0_ALPHA_MASK_MASK VC4_MASK(19, 18)
1411
+ #define SCALER6_CTL0_ALPHA_MASK_NONE 0
1412
+ #define SCALER6_CTL0_ALPHA_MASK_FIXED 3
1413
+
1411
1414
#define SCALER6_CTL0_UNITY BIT(15)
1412
1415
#define SCALER6_CTL0_ORDERRGBA_MASK VC4_MASK(14, 13)
1413
1416
#define SCALER6_CTL0_SCL1_MODE_MASK VC4_MASK(10, 8)
You can’t perform that action at this time.
0 commit comments