Skip to content

Commit 1836fd5

Browse files
Anatoliy Klymenkotomba
authored andcommitted
drm: xlnx: zynqmp_dpsub: Minimize usage of global flag
Avoid usage of global zynqmp_dpsub.dma_enabled flag in DPSUB layer context. This flag signals whether the driver runs in DRM CRTC or DRM bridge mode, assuming that all display layers share the same live or non-live mode of operation. Using per-layer mode instead of global flag will simplify future support of the hybrid scenario. Remove redundant checks in DMA request/release contexts as zynqmp_disp_layer.info is well-defined for all layer types, including the correct number of DMA channels required for each particular layer. Signed-off-by: Anatoliy Klymenko <[email protected]> Reviewed-by: Tomi Valkeinen <[email protected]> Reviewed-by: Tomi Valkeinen <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent b0f0469 commit 1836fd5

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

drivers/gpu/drm/xlnx/zynqmp_disp.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ void zynqmp_disp_layer_disable(struct zynqmp_disp_layer *layer)
10261026
{
10271027
unsigned int i;
10281028

1029-
if (layer->disp->dpsub->dma_enabled) {
1029+
if (layer->mode == ZYNQMP_DPSUB_LAYER_NONLIVE) {
10301030
for (i = 0; i < layer->drm_fmt->num_planes; i++)
10311031
dmaengine_terminate_sync(layer->dmas[i].chan);
10321032
}
@@ -1052,7 +1052,7 @@ void zynqmp_disp_layer_set_format(struct zynqmp_disp_layer *layer,
10521052

10531053
zynqmp_disp_avbuf_set_format(layer->disp, layer, layer->disp_fmt);
10541054

1055-
if (!layer->disp->dpsub->dma_enabled)
1055+
if (layer->mode == ZYNQMP_DPSUB_LAYER_LIVE)
10561056
return;
10571057

10581058
/*
@@ -1090,7 +1090,7 @@ int zynqmp_disp_layer_update(struct zynqmp_disp_layer *layer,
10901090
const struct drm_format_info *info = layer->drm_fmt;
10911091
unsigned int i;
10921092

1093-
if (!layer->disp->dpsub->dma_enabled)
1093+
if (layer->mode == ZYNQMP_DPSUB_LAYER_LIVE)
10941094
return 0;
10951095

10961096
for (i = 0; i < info->num_planes; i++) {
@@ -1140,9 +1140,6 @@ static void zynqmp_disp_layer_release_dma(struct zynqmp_disp *disp,
11401140
{
11411141
unsigned int i;
11421142

1143-
if (!layer->info || !disp->dpsub->dma_enabled)
1144-
return;
1145-
11461143
for (i = 0; i < layer->info->num_channels; i++) {
11471144
struct zynqmp_disp_layer_dma *dma = &layer->dmas[i];
11481145

@@ -1183,9 +1180,6 @@ static int zynqmp_disp_layer_request_dma(struct zynqmp_disp *disp,
11831180
unsigned int i;
11841181
int ret;
11851182

1186-
if (!disp->dpsub->dma_enabled)
1187-
return 0;
1188-
11891183
for (i = 0; i < layer->info->num_channels; i++) {
11901184
struct zynqmp_disp_layer_dma *dma = &layer->dmas[i];
11911185
char dma_channel_name[16];

0 commit comments

Comments
 (0)