Lines Matching refs:vic
28 #include "vic.h"
32 struct vic base;
45 static int vic40_fill(struct vic *v, struct vic_image *output,
51 struct vic40 *vic = container_of(v, struct vic40, base);
55 err = drm_tegra_bo_map(vic->config.bo, (void **)&c);
83 drm_tegra_bo_unmap(vic->config.bo);
88 static int vic40_blit(struct vic *v, struct vic_image *output,
91 struct vic40 *vic = container_of(v, struct vic40, base);
97 err = drm_tegra_bo_map(vic->config.bo, (void **)&c);
152 drm_tegra_bo_unmap(vic->config.bo);
157 static int vic40_flip(struct vic *v, struct vic_image *output,
160 struct vic40 *vic = container_of(v, struct vic40, base);
166 err = drm_tegra_bo_map(vic->config.bo, (void **)&c);
222 drm_tegra_bo_unmap(vic->config.bo);
227 static int vic40_execute(struct vic *v, struct drm_tegra_pushbuf *pushbuf,
231 struct vic40 *vic = container_of(v, struct vic40, base);
239 VIC_PUSH_BUFFER(pushbuf, ptrp, NVB0B6_VIDEO_COMPOSITOR_SET_CONFIG_STRUCT_OFFSET, vic->config.map, 0, 0);
250 static void vic40_free(struct vic *v)
252 struct vic40 *vic = container_of(v, struct vic40, base);
254 drm_tegra_channel_unmap(vic->filter.map);
255 drm_tegra_bo_unref(vic->filter.bo);
257 drm_tegra_channel_unmap(vic->config.map);
258 drm_tegra_bo_unref(vic->config.bo);
262 free(vic);
274 struct vic **vicp)
276 struct vic40 *vic;
280 vic = calloc(1, sizeof(*vic));
281 if (!vic)
284 vic->base.drm = drm;
285 vic->base.channel = channel;
286 vic->base.ops = &vic40_ops;
287 vic->base.version = 0x21;
289 err = drm_tegra_syncpoint_new(drm, &vic->base.syncpt);
295 err = drm_tegra_bo_new(drm, 0, 16384, &vic->config.bo);
302 err = drm_tegra_channel_map(channel, vic->config.bo, DRM_TEGRA_CHANNEL_MAP_READ,
303 &vic->config.map);
310 err = drm_tegra_bo_new(drm, 0, 16384, &vic->filter.bo);
317 err = drm_tegra_bo_map(vic->filter.bo, &ptr);
324 drm_tegra_bo_unmap(vic->filter.bo);
326 err = drm_tegra_channel_map(channel, vic->filter.bo, DRM_TEGRA_CHANNEL_MAP_READ,
327 &vic->filter.map);
335 *vicp = &vic->base;