cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

omap_drm.h (4027B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2/*
      3 * include/uapi/drm/omap_drm.h
      4 *
      5 * Copyright (C) 2011 Texas Instruments
      6 * Author: Rob Clark <rob@ti.com>
      7 *
      8 * This program is free software; you can redistribute it and/or modify it
      9 * under the terms of the GNU General Public License version 2 as published by
     10 * the Free Software Foundation.
     11 *
     12 * This program is distributed in the hope that it will be useful, but WITHOUT
     13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     14 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     15 * more details.
     16 *
     17 * You should have received a copy of the GNU General Public License along with
     18 * this program.  If not, see <http://www.gnu.org/licenses/>.
     19 */
     20
     21#ifndef __OMAP_DRM_H__
     22#define __OMAP_DRM_H__
     23
     24#include "drm.h"
     25
     26#if defined(__cplusplus)
     27extern "C" {
     28#endif
     29
     30/* Please note that modifications to all structs defined here are
     31 * subject to backwards-compatibility constraints.
     32 */
     33
     34#define OMAP_PARAM_CHIPSET_ID	1	/* ie. 0x3430, 0x4430, etc */
     35
     36struct drm_omap_param {
     37	__u64 param;			/* in */
     38	__u64 value;			/* in (set_param), out (get_param) */
     39};
     40
     41/* Scanout buffer, consumable by DSS */
     42#define OMAP_BO_SCANOUT		0x00000001
     43
     44/* Buffer CPU caching mode: cached, write-combining or uncached. */
     45#define OMAP_BO_CACHED		0x00000000
     46#define OMAP_BO_WC		0x00000002
     47#define OMAP_BO_UNCACHED	0x00000004
     48#define OMAP_BO_CACHE_MASK	0x00000006
     49
     50/* Use TILER for the buffer. The TILER container unit can be 8, 16 or 32 bits. */
     51#define OMAP_BO_TILED_8		0x00000100
     52#define OMAP_BO_TILED_16	0x00000200
     53#define OMAP_BO_TILED_32	0x00000300
     54#define OMAP_BO_TILED_MASK	0x00000f00
     55
     56union omap_gem_size {
     57	__u32 bytes;		/* (for non-tiled formats) */
     58	struct {
     59		__u16 width;
     60		__u16 height;
     61	} tiled;		/* (for tiled formats) */
     62};
     63
     64struct drm_omap_gem_new {
     65	union omap_gem_size size;	/* in */
     66	__u32 flags;			/* in */
     67	__u32 handle;			/* out */
     68	__u32 __pad;
     69};
     70
     71/* mask of operations: */
     72enum omap_gem_op {
     73	OMAP_GEM_READ = 0x01,
     74	OMAP_GEM_WRITE = 0x02,
     75};
     76
     77struct drm_omap_gem_cpu_prep {
     78	__u32 handle;			/* buffer handle (in) */
     79	__u32 op;			/* mask of omap_gem_op (in) */
     80};
     81
     82struct drm_omap_gem_cpu_fini {
     83	__u32 handle;			/* buffer handle (in) */
     84	__u32 op;			/* mask of omap_gem_op (in) */
     85	/* TODO maybe here we pass down info about what regions are touched
     86	 * by sw so we can be clever about cache ops?  For now a placeholder,
     87	 * set to zero and we just do full buffer flush..
     88	 */
     89	__u32 nregions;
     90	__u32 __pad;
     91};
     92
     93struct drm_omap_gem_info {
     94	__u32 handle;			/* buffer handle (in) */
     95	__u32 pad;
     96	__u64 offset;			/* mmap offset (out) */
     97	/* note: in case of tiled buffers, the user virtual size can be
     98	 * different from the physical size (ie. how many pages are needed
     99	 * to back the object) which is returned in DRM_IOCTL_GEM_OPEN..
    100	 * This size here is the one that should be used if you want to
    101	 * mmap() the buffer:
    102	 */
    103	__u32 size;			/* virtual size for mmap'ing (out) */
    104	__u32 __pad;
    105};
    106
    107#define DRM_OMAP_GET_PARAM		0x00
    108#define DRM_OMAP_SET_PARAM		0x01
    109#define DRM_OMAP_GEM_NEW		0x03
    110#define DRM_OMAP_GEM_CPU_PREP		0x04	/* Deprecated, to be removed */
    111#define DRM_OMAP_GEM_CPU_FINI		0x05	/* Deprecated, to be removed */
    112#define DRM_OMAP_GEM_INFO		0x06
    113#define DRM_OMAP_NUM_IOCTLS		0x07
    114
    115#define DRM_IOCTL_OMAP_GET_PARAM	DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GET_PARAM, struct drm_omap_param)
    116#define DRM_IOCTL_OMAP_SET_PARAM	DRM_IOW (DRM_COMMAND_BASE + DRM_OMAP_SET_PARAM, struct drm_omap_param)
    117#define DRM_IOCTL_OMAP_GEM_NEW		DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GEM_NEW, struct drm_omap_gem_new)
    118#define DRM_IOCTL_OMAP_GEM_CPU_PREP	DRM_IOW (DRM_COMMAND_BASE + DRM_OMAP_GEM_CPU_PREP, struct drm_omap_gem_cpu_prep)
    119#define DRM_IOCTL_OMAP_GEM_CPU_FINI	DRM_IOW (DRM_COMMAND_BASE + DRM_OMAP_GEM_CPU_FINI, struct drm_omap_gem_cpu_fini)
    120#define DRM_IOCTL_OMAP_GEM_INFO		DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GEM_INFO, struct drm_omap_gem_info)
    121
    122#if defined(__cplusplus)
    123}
    124#endif
    125
    126#endif /* __OMAP_DRM_H__ */