linux/drivers/gpu/drm/tegra/uapi.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/* Copyright (c) 2020 NVIDIA Corporation */
   3
   4#ifndef _TEGRA_DRM_UAPI_H
   5#define _TEGRA_DRM_UAPI_H
   6
   7#include <linux/dma-mapping.h>
   8#include <linux/idr.h>
   9#include <linux/kref.h>
  10#include <linux/xarray.h>
  11
  12#include <drm/drm.h>
  13
  14struct drm_file;
  15struct drm_device;
  16
  17struct tegra_drm_file {
  18        /* Legacy UAPI state */
  19        struct idr legacy_contexts;
  20        struct mutex lock;
  21
  22        /* New UAPI state */
  23        struct xarray contexts;
  24        struct xarray syncpoints;
  25};
  26
  27struct tegra_drm_mapping {
  28        struct kref ref;
  29
  30        struct host1x_bo_mapping *map;
  31        struct host1x_bo *bo;
  32
  33        dma_addr_t iova;
  34        dma_addr_t iova_end;
  35};
  36
  37int tegra_drm_ioctl_channel_open(struct drm_device *drm, void *data,
  38                                 struct drm_file *file);
  39int tegra_drm_ioctl_channel_close(struct drm_device *drm, void *data,
  40                                  struct drm_file *file);
  41int tegra_drm_ioctl_channel_map(struct drm_device *drm, void *data,
  42                                struct drm_file *file);
  43int tegra_drm_ioctl_channel_unmap(struct drm_device *drm, void *data,
  44                                  struct drm_file *file);
  45int tegra_drm_ioctl_channel_submit(struct drm_device *drm, void *data,
  46                                   struct drm_file *file);
  47int tegra_drm_ioctl_syncpoint_allocate(struct drm_device *drm, void *data,
  48                                       struct drm_file *file);
  49int tegra_drm_ioctl_syncpoint_free(struct drm_device *drm, void *data,
  50                                   struct drm_file *file);
  51int tegra_drm_ioctl_syncpoint_wait(struct drm_device *drm, void *data,
  52                                   struct drm_file *file);
  53
  54void tegra_drm_uapi_close_file(struct tegra_drm_file *file);
  55void tegra_drm_mapping_put(struct tegra_drm_mapping *mapping);
  56
  57#endif
  58