root/include/linux/soc/amlogic/meson-canvas.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  23 struct device;
  24 struct meson_canvas;
  25 
  26 /**
  27  * meson_canvas_get() - get a canvas provider instance
  28  *
  29  * @dev: consumer device pointer
  30  */
  31 struct 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  */
  39 int 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  */
  47 int 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  */
  61 int 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

/* [<][>][^][v][top][bottom][index][help] */