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

meson-canvas.h (1911B)


      1/* SPDX-License-Identifier: GPL-2.0+ */
      2/*
      3 * Copyright (C) 2018 BayLibre, SAS
      4 */
      5#ifndef __SOC_MESON_CANVAS_H
      6#define __SOC_MESON_CANVAS_H
      7
      8#include <linux/kernel.h>
      9
     10#define MESON_CANVAS_WRAP_NONE	0x00
     11#define MESON_CANVAS_WRAP_X	0x01
     12#define MESON_CANVAS_WRAP_Y	0x02
     13
     14#define MESON_CANVAS_BLKMODE_LINEAR	0x00
     15#define MESON_CANVAS_BLKMODE_32x32	0x01
     16#define MESON_CANVAS_BLKMODE_64x64	0x02
     17
     18#define MESON_CANVAS_ENDIAN_SWAP16	0x1
     19#define MESON_CANVAS_ENDIAN_SWAP32	0x3
     20#define MESON_CANVAS_ENDIAN_SWAP64	0x7
     21#define MESON_CANVAS_ENDIAN_SWAP128	0xf
     22
     23struct device;
     24struct meson_canvas;
     25
     26/**
     27 * meson_canvas_get() - get a canvas provider instance
     28 *
     29 * @dev: consumer device pointer
     30 */
     31struct meson_canvas *meson_canvas_get(struct device *dev);
     32
     33/**
     34 * meson_canvas_alloc() - take ownership of a canvas
     35 *
     36 * @canvas: canvas provider instance retrieved from meson_canvas_get()
     37 * @canvas_index: will be filled with the canvas ID
     38 */
     39int meson_canvas_alloc(struct meson_canvas *canvas, u8 *canvas_index);
     40
     41/**
     42 * meson_canvas_free() - remove ownership from a canvas
     43 *
     44 * @canvas: canvas provider instance retrieved from meson_canvas_get()
     45 * @canvas_index: canvas ID that was obtained via meson_canvas_alloc()
     46 */
     47int meson_canvas_free(struct meson_canvas *canvas, u8 canvas_index);
     48
     49/**
     50 * meson_canvas_config() - configure a canvas
     51 *
     52 * @canvas: canvas provider instance retrieved from meson_canvas_get()
     53 * @canvas_index: canvas ID that was obtained via meson_canvas_alloc()
     54 * @addr: physical address to the pixel buffer
     55 * @stride: width of the buffer
     56 * @height: height of the buffer
     57 * @wrap: undocumented
     58 * @blkmode: block mode (linear, 32x32, 64x64)
     59 * @endian: byte swapping (swap16, swap32, swap64, swap128)
     60 */
     61int meson_canvas_config(struct meson_canvas *canvas, u8 canvas_index,
     62			u32 addr, u32 stride, u32 height,
     63			unsigned int wrap, unsigned int blkmode,
     64			unsigned int endian);
     65
     66#endif