Home | History | Annotate | Download | only in drm_gralloc

Lines Matching refs:info

67 static struct nouveau_bo *alloc_bo(struct nouveau_info *info,
83 if (!info->chan)
85 else if (scanout && info->tiled_scanout)
90 if (info->arch >= 0x50) {
91 if (scanout && !info->tiled_scanout)
100 if (info->arch >= 0xc0) {
117 else if (info->arch >= 0x50) {
146 align = MAX((info->dev->chipset >= 0x40) ? 1024 : 256,
164 if (nouveau_bo_new_tile(info->dev, flags, 0, *pitch * height,
177 struct nouveau_info *info = (struct nouveau_info *) drv;
192 if (nouveau_bo_handle_ref(info->dev, handle->name, &nb->bo)) {
206 nb->bo = alloc_bo(info, width, height,
272 struct nouveau_info *info = (struct nouveau_info *) drv;
274 if (info->chan)
275 nouveau_channel_free(&info->chan);
276 nouveau_device_close(&info->dev);
277 free(info);
280 static int nouveau_init(struct nouveau_info *info)
284 switch (info->dev->chipset & 0xf0) {
286 info->arch = 0x04;
289 info->arch = 0x10;
292 info->arch = 0x20;
295 info->arch = 0x30;
299 info->arch = 0x40;
305 info->arch = 0x50;
308 info->arch = 0xc0;
311 ALOGE("unknown nouveau chipset 0x%x", info->dev->chipset);
316 info->tiled_scanout = (info->chan != NULL);
323 struct nouveau_info *info;
326 info = calloc(1, sizeof(*info));
327 if (!info)
330 info->fd = fd;
331 err = nouveau_device_open_existing(&info->dev, 0, info->fd, 0);
334 free(info);
338 err = nouveau_channel_alloc(info->dev, NvDmaFB, NvDmaTT,
339 24 * 1024, &info->chan);
343 info->chan = NULL;
346 err = nouveau_init(info);
348 if (info->chan)
349 nouveau_channel_free(&info->chan);
350 nouveau_device_close(&info->dev);
351 free(info);
355 info->base.destroy = nouveau_destroy;
356 info->base.alloc = nouveau_alloc;
357 info->base.free = nouveau_free;
358 info->base.map = nouveau_map;
359 info->base.unmap = nouveau_unmap;
361 return &info->base;