lkml.org 
[lkml]   [2024]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v2 4/8] 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 siplify future support of the hybrid scenario.

    Signed-off-by: Anatoliy Klymenko <anatoliy.klymenko@amd.com>
    ---
    drivers/gpu/drm/xlnx/zynqmp_disp.c | 11 ++++-------
    1 file changed, 4 insertions(+), 7 deletions(-)

    diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c b/drivers/gpu/drm/xlnx/zynqmp_disp.c
    index af851190f447..dd48fa60fa9a 100644
    --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c
    +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c
    @@ -975,7 +975,7 @@ void zynqmp_disp_layer_disable(struct zynqmp_disp_layer *layer)
    {
    unsigned int i;

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

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

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

    /*
    @@ -1039,7 +1039,7 @@ int zynqmp_disp_layer_update(struct zynqmp_disp_layer *layer,
    const struct drm_format_info *info = layer->drm_fmt;
    unsigned int i;

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

    for (i = 0; i < info->num_planes; i++) {
    @@ -1089,7 +1089,7 @@ static void zynqmp_disp_layer_release_dma(struct zynqmp_disp *disp,
    {
    unsigned int i;

    - if (!layer->info || !disp->dpsub->dma_enabled)
    + if (!layer->info)
    return;

    for (i = 0; i < layer->info->num_channels; i++) {
    @@ -1132,9 +1132,6 @@ static int zynqmp_disp_layer_request_dma(struct zynqmp_disp *disp,
    unsigned int i;
    int ret;

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


    \
     
     \ /
      Last update: 2024-05-27 15:46    [W:3.613 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site