linux/drivers/gpu/drm/xilinx/xilinx_osd.h
<<
>>
Prefs
   1/*
   2 * Xilinx OSD Header for Xilinx DRM KMS
   3 *
   4 *  Copyright (C) 2013 Xilinx, Inc.
   5 *
   6 *  Author: Hyun Woo Kwon <hyunk@xilinx.com>
   7 *
   8 * This software is licensed under the terms of the GNU General Public
   9 * License version 2, as published by the Free Software Foundation, and
  10 * may be copied, distributed, and modified under those terms.
  11 *
  12 * This program is distributed in the hope that it will be useful,
  13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 * GNU General Public License for more details.
  16 */
  17
  18#ifndef _XILINX_OSD_H_
  19#define _XILINX_OSD_H_
  20
  21/* TODO: use the fixed max alpha value for 8 bit component width for now. */
  22#define OSD_MAX_ALPHA   0x100
  23
  24struct xilinx_osd;
  25struct xilinx_osd_layer;
  26
  27/* osd layer configuration */
  28void xilinx_osd_layer_set_alpha(struct xilinx_osd_layer *layer, u32 alpha);
  29void xilinx_osd_layer_enable_alpha(struct xilinx_osd_layer *layer, bool enable);
  30void xilinx_osd_layer_set_priority(struct xilinx_osd_layer *layer, u32 prio);
  31void xilinx_osd_layer_set_dimension(struct xilinx_osd_layer *layer,
  32                                    u16 xstart, u16 ystart,
  33                                    u16 xsize, u16 ysize);
  34
  35/* osd layer operation */
  36void xilinx_osd_layer_enable(struct xilinx_osd_layer *layer);
  37void xilinx_osd_layer_disable(struct xilinx_osd_layer *layer);
  38struct xilinx_osd_layer *xilinx_osd_layer_get(struct xilinx_osd *osd);
  39void xilinx_osd_layer_put(struct xilinx_osd_layer *layer);
  40
  41/* osd configuration */
  42void xilinx_osd_set_color(struct xilinx_osd *osd, u8 r, u8 g, u8 b);
  43void xilinx_osd_set_dimension(struct xilinx_osd *osd, u32 width, u32 height);
  44
  45unsigned int xilinx_osd_get_num_layers(struct xilinx_osd *osd);
  46unsigned int xilinx_osd_get_max_width(struct xilinx_osd *osd);
  47unsigned int xilinx_osd_get_format(struct xilinx_osd *osd);
  48
  49/* osd operation */
  50void xilinx_osd_reset(struct xilinx_osd *osd);
  51void xilinx_osd_enable(struct xilinx_osd *osd);
  52void xilinx_osd_disable(struct xilinx_osd *osd);
  53void xilinx_osd_enable_rue(struct xilinx_osd *osd);
  54void xilinx_osd_disable_rue(struct xilinx_osd *osd);
  55
  56struct device;
  57struct device_node;
  58
  59struct xilinx_osd *xilinx_osd_probe(struct device *dev,
  60                                    struct device_node *node);
  61
  62#endif /* _XILINX_OSD_H_ */
  63