@@ -434,30 +434,35 @@ static void zynqmp_disp_avbuf_write(struct zynqmp_disp_avbuf *avbuf,
434
434
writel (val , avbuf -> base + reg );
435
435
}
436
436
437
+ static bool zynqmp_disp_layer_is_video (const struct zynqmp_disp_layer * layer )
438
+ {
439
+ return layer -> id == ZYNQMP_DISP_LAYER_VID ;
440
+ }
441
+
437
442
/**
438
443
* zynqmp_disp_avbuf_set_format - Set the input format for a layer
439
444
* @avbuf: Audio/video buffer manager
440
- * @layer: The layer ID
445
+ * @layer: The layer
441
446
* @fmt: The format information
442
447
*
443
448
* Set the video buffer manager format for @layer to @fmt.
444
449
*/
445
450
static void zynqmp_disp_avbuf_set_format (struct zynqmp_disp_avbuf * avbuf ,
446
- enum zynqmp_disp_layer_id layer ,
451
+ struct zynqmp_disp_layer * layer ,
447
452
const struct zynqmp_disp_format * fmt )
448
453
{
449
454
unsigned int i ;
450
455
u32 val ;
451
456
452
457
val = zynqmp_disp_avbuf_read (avbuf , ZYNQMP_DISP_AV_BUF_FMT );
453
- val &= layer == ZYNQMP_DISP_LAYER_VID
458
+ val &= zynqmp_disp_layer_is_video ( layer )
454
459
? ~ZYNQMP_DISP_AV_BUF_FMT_NL_VID_MASK
455
460
: ~ZYNQMP_DISP_AV_BUF_FMT_NL_GFX_MASK ;
456
461
val |= fmt -> buf_fmt ;
457
462
zynqmp_disp_avbuf_write (avbuf , ZYNQMP_DISP_AV_BUF_FMT , val );
458
463
459
464
for (i = 0 ; i < ZYNQMP_DISP_AV_BUF_NUM_SF ; i ++ ) {
460
- unsigned int reg = layer == ZYNQMP_DISP_LAYER_VID
465
+ unsigned int reg = zynqmp_disp_layer_is_video ( layer )
461
466
? ZYNQMP_DISP_AV_BUF_VID_COMP_SF (i )
462
467
: ZYNQMP_DISP_AV_BUF_GFX_COMP_SF (i );
463
468
@@ -573,19 +578,19 @@ static void zynqmp_disp_avbuf_disable_audio(struct zynqmp_disp_avbuf *avbuf)
573
578
/**
574
579
* zynqmp_disp_avbuf_enable_video - Enable a video layer
575
580
* @avbuf: Audio/video buffer manager
576
- * @layer: The layer ID
581
+ * @layer: The layer
577
582
* @mode: Operating mode of layer
578
583
*
579
584
* Enable the video/graphics buffer for @layer.
580
585
*/
581
586
static void zynqmp_disp_avbuf_enable_video (struct zynqmp_disp_avbuf * avbuf ,
582
- enum zynqmp_disp_layer_id layer ,
587
+ struct zynqmp_disp_layer * layer ,
583
588
enum zynqmp_disp_layer_mode mode )
584
589
{
585
590
u32 val ;
586
591
587
592
val = zynqmp_disp_avbuf_read (avbuf , ZYNQMP_DISP_AV_BUF_OUTPUT );
588
- if (layer == ZYNQMP_DISP_LAYER_VID ) {
593
+ if (zynqmp_disp_layer_is_video ( layer ) ) {
589
594
val &= ~ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_MASK ;
590
595
if (mode == ZYNQMP_DISP_LAYER_NONLIVE )
591
596
val |= ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_MEM ;
@@ -605,17 +610,17 @@ static void zynqmp_disp_avbuf_enable_video(struct zynqmp_disp_avbuf *avbuf,
605
610
/**
606
611
* zynqmp_disp_avbuf_disable_video - Disable a video layer
607
612
* @avbuf: Audio/video buffer manager
608
- * @layer: The layer ID
613
+ * @layer: The layer
609
614
*
610
615
* Disable the video/graphics buffer for @layer.
611
616
*/
612
617
static void zynqmp_disp_avbuf_disable_video (struct zynqmp_disp_avbuf * avbuf ,
613
- enum zynqmp_disp_layer_id layer )
618
+ struct zynqmp_disp_layer * layer )
614
619
{
615
620
u32 val ;
616
621
617
622
val = zynqmp_disp_avbuf_read (avbuf , ZYNQMP_DISP_AV_BUF_OUTPUT );
618
- if (layer == ZYNQMP_DISP_LAYER_VID ) {
623
+ if (zynqmp_disp_layer_is_video ( layer ) ) {
619
624
val &= ~ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_MASK ;
620
625
val |= ZYNQMP_DISP_AV_BUF_OUTPUT_VID1_NONE ;
621
626
} else {
@@ -807,7 +812,7 @@ static void zynqmp_disp_blend_layer_set_csc(struct zynqmp_disp_blend *blend,
807
812
}
808
813
}
809
814
810
- if (layer -> id == ZYNQMP_DISP_LAYER_VID )
815
+ if (zynqmp_disp_layer_is_video ( layer ) )
811
816
reg = ZYNQMP_DISP_V_BLEND_IN1CSC_COEFF (0 );
812
817
else
813
818
reg = ZYNQMP_DISP_V_BLEND_IN2CSC_COEFF (0 );
@@ -818,7 +823,7 @@ static void zynqmp_disp_blend_layer_set_csc(struct zynqmp_disp_blend *blend,
818
823
zynqmp_disp_blend_write (blend , reg + 8 , coeffs [i + swap [2 ]]);
819
824
}
820
825
821
- if (layer -> id == ZYNQMP_DISP_LAYER_VID )
826
+ if (zynqmp_disp_layer_is_video ( layer ) )
822
827
reg = ZYNQMP_DISP_V_BLEND_IN1CSC_OFFSET (0 );
823
828
else
824
829
reg = ZYNQMP_DISP_V_BLEND_IN2CSC_OFFSET (0 );
@@ -1025,7 +1030,7 @@ zynqmp_disp_layer_find_format(struct zynqmp_disp_layer *layer,
1025
1030
*/
1026
1031
static void zynqmp_disp_layer_enable (struct zynqmp_disp_layer * layer )
1027
1032
{
1028
- zynqmp_disp_avbuf_enable_video (& layer -> disp -> avbuf , layer -> id ,
1033
+ zynqmp_disp_avbuf_enable_video (& layer -> disp -> avbuf , layer ,
1029
1034
ZYNQMP_DISP_LAYER_NONLIVE );
1030
1035
zynqmp_disp_blend_layer_enable (& layer -> disp -> blend , layer );
1031
1036
@@ -1046,7 +1051,7 @@ static void zynqmp_disp_layer_disable(struct zynqmp_disp_layer *layer)
1046
1051
for (i = 0 ; i < layer -> drm_fmt -> num_planes ; i ++ )
1047
1052
dmaengine_terminate_sync (layer -> dmas [i ].chan );
1048
1053
1049
- zynqmp_disp_avbuf_disable_video (& layer -> disp -> avbuf , layer -> id );
1054
+ zynqmp_disp_avbuf_disable_video (& layer -> disp -> avbuf , layer );
1050
1055
zynqmp_disp_blend_layer_disable (& layer -> disp -> blend , layer );
1051
1056
}
1052
1057
@@ -1067,7 +1072,7 @@ static void zynqmp_disp_layer_set_format(struct zynqmp_disp_layer *layer,
1067
1072
layer -> disp_fmt = zynqmp_disp_layer_find_format (layer , info -> format );
1068
1073
layer -> drm_fmt = info ;
1069
1074
1070
- zynqmp_disp_avbuf_set_format (& layer -> disp -> avbuf , layer -> id ,
1075
+ zynqmp_disp_avbuf_set_format (& layer -> disp -> avbuf , layer ,
1071
1076
layer -> disp_fmt );
1072
1077
1073
1078
/*
@@ -1244,8 +1249,8 @@ static int zynqmp_disp_create_planes(struct zynqmp_disp *disp)
1244
1249
drm_formats [j ] = layer -> info -> formats [j ].drm_fmt ;
1245
1250
1246
1251
/* Graphics layer is primary, and video layer is overlay. */
1247
- type = i == ZYNQMP_DISP_LAYER_GFX
1248
- ? DRM_PLANE_TYPE_PRIMARY : DRM_PLANE_TYPE_OVERLAY ;
1252
+ type = zynqmp_disp_layer_is_video ( layer )
1253
+ ? DRM_PLANE_TYPE_OVERLAY : DRM_PLANE_TYPE_PRIMARY ;
1249
1254
ret = drm_universal_plane_init (disp -> drm , & layer -> plane , 0 ,
1250
1255
& zynqmp_disp_plane_funcs ,
1251
1256
drm_formats ,
0 commit comments