• Kieran Bingham's avatar
    media: vsp1: Move video configuration to a cached dlb · e646e177
    Kieran Bingham authored
    We are now able to configure a pipeline directly into a local display
    list body. Take advantage of this fact, and create a cacheable body to
    store the configuration of the pipeline in the pipeline object.
    
    vsp1_video_pipeline_run() is now the last user of the pipe->dl object.
    Convert this function to use the cached pipe->stream_config body and
    obtain a local display list reference.
    
    Attach the pipe->stream_config body to the display list when needed
    before committing to hardware.
    
    Use a flag 'configured' to know when we should attach our stream_config
    to the next outgoing display list to reconfigure the hardware in the
    event of our first frame, or the first frame following a suspend/resume
    cycle.
    
    Our video DL usage now looks like the below output:
    
    dl->body0 contains our disposable runtime configuration. Max 41.
    dl_child->body0 is our partition specific configuration. Max 12.
    dl->bodies shows our constant configuration and LUTs.
    
      These two are LUT/CLU:
         * dl->bodies[x]->num_entries 256 / max 256
         * dl->bodies[x]->num_entries 4914 / max 4914
    
    Which shows that our 'constant' configuration cache is currently
    utilised to a maximum of 64 entries.
    
    trace-cmd report | \
    
      dl->body0->num_entries 13 / max 128
      dl->body0->num_entries 14 / max 128
      dl->body0->num_entries 16 / max 128
      dl->body0->num_entries 20 / max 128
      dl->body0->num_entries 27 / max 128
      dl->body0->num_entries 34 / max 128
      dl->body0->num_entries 41 / max 128
      dl_child->body0->num_entries 10 / max 128
      dl_child->body0->num_entries 12 / max 128
      dl->bodies[x]->num_entries 15 / max 128
      dl->bodies[x]->num_entries 16 / max 128
      dl->bodies[x]->num_entries 17 / max 128
      dl->bodies[x]->num_entries 18 / max 128
      dl->bodies[x]->num_entries 20 / max 128
      dl->bodies[x]->num_entries 21 / max 128
      dl->bodies[x]->num_entries 256 / max 256
      dl->bodies[x]->num_entries 31 / max 128
      dl->bodies[x]->num_entries 32 / max 128
      dl->bodies[x]->num_entries 39 / max 128
      dl->bodies[x]->num_entries 40 / max 128
      dl->bodies[x]->num_entries 47 / max 128
      dl->bodies[x]->num_entries 48 / max 128
      dl->bodies[x]->num_entries 4914 / max 4914
      dl->bodies[x]->num_entries 55 / max 128
      dl->bodies[x]->num_entries 56 / max 128
      dl->bodies[x]->num_entries 63 / max 128
      dl->bodies[x]->num_entries 64 / max 128
    Signed-off-by: default avatarKieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
    e646e177
vsp1_dl.c 23 KB