Merge tag 'mmc-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
[cascardo/linux.git] / drivers / media / platform / vsp1 / vsp1_drm.c
index fe9665e..cd209dc 100644 (file)
@@ -276,17 +276,18 @@ int vsp1_du_atomic_update(struct device *dev, unsigned int rpf_index,
        }
 
        dev_dbg(vsp1->dev,
-               "%s: RPF%u: (%u,%u)/%ux%u -> (%u,%u)/%ux%u (%08x), pitch %u dma { %pad, %pad } zpos %u\n",
+               "%s: RPF%u: (%u,%u)/%ux%u -> (%u,%u)/%ux%u (%08x), pitch %u dma { %pad, %pad, %pad } zpos %u\n",
                __func__, rpf_index,
                cfg->src.left, cfg->src.top, cfg->src.width, cfg->src.height,
                cfg->dst.left, cfg->dst.top, cfg->dst.width, cfg->dst.height,
                cfg->pixelformat, cfg->pitch, &cfg->mem[0], &cfg->mem[1],
-               cfg->zpos);
+               &cfg->mem[2], cfg->zpos);
 
-       /* Store the format, stride, memory buffer address, crop and compose
+       /*
+        * Store the format, stride, memory buffer address, crop and compose
         * rectangles and Z-order position and for the input.
         */
-       fmtinfo = vsp1_get_format_info(cfg->pixelformat);
+       fmtinfo = vsp1_get_format_info(vsp1, cfg->pixelformat);
        if (!fmtinfo) {
                dev_dbg(vsp1->dev, "Unsupport pixel format %08x for RPF\n",
                        cfg->pixelformat);
@@ -301,7 +302,7 @@ int vsp1_du_atomic_update(struct device *dev, unsigned int rpf_index,
 
        rpf->mem.addr[0] = cfg->mem[0];
        rpf->mem.addr[1] = cfg->mem[1];
-       rpf->mem.addr[2] = 0;
+       rpf->mem.addr[2] = cfg->mem[2];
 
        vsp1->drm->inputs[rpf_index].crop = cfg->src;
        vsp1->drm->inputs[rpf_index].compose = cfg->dst;
@@ -492,16 +493,13 @@ void vsp1_du_atomic_flush(struct device *dev)
                vsp1_entity_route_setup(entity, pipe->dl);
 
                if (entity->ops->configure) {
-                       entity->ops->configure(entity, pipe, pipe->dl, true);
-                       entity->ops->configure(entity, pipe, pipe->dl, false);
+                       entity->ops->configure(entity, pipe, pipe->dl,
+                                              VSP1_ENTITY_PARAMS_INIT);
+                       entity->ops->configure(entity, pipe, pipe->dl,
+                                              VSP1_ENTITY_PARAMS_RUNTIME);
+                       entity->ops->configure(entity, pipe, pipe->dl,
+                                              VSP1_ENTITY_PARAMS_PARTITION);
                }
-
-               /* The memory buffer address must be applied after configuring
-                * the RPF to make sure the crop offset are computed.
-                */
-               if (entity->type == VSP1_ENTITY_RPF)
-                       vsp1_rwpf_set_memory(to_rwpf(&entity->subdev),
-                                            pipe->dl);
        }
 
        vsp1_dl_list_commit(pipe->dl);