Home | History | Annotate | Download | only in linux
      1 /*
      2  * include/video/tegrafb.h
      3  *
      4  * Copyright (C) 2010 Google, Inc.
      5  * Author: Erik Gilling <konkers (at) android.com>
      6  *
      7  * This software is licensed under the terms of the GNU General Public
      8  * License version 2, as published by the Free Software Foundation, and
      9  * may be copied, distributed, and modified under those terms.
     10  *
     11  * This program is distributed in the hope that it will be useful,
     12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14  * GNU General Public License for more details.
     15  *
     16  */
     17 
     18 #ifndef _LINUX_TEGRAFB_H_
     19 #define _LINUX_TEGRAFB_H_
     20 
     21 #include <linux/fb.h>
     22 #include <linux/types.h>
     23 #include <asm/ioctl.h>
     24 
     25 #define TEGRA_FB_WIN_FMT_P1		0
     26 #define TEGRA_FB_WIN_FMT_P2		1
     27 #define TEGRA_FB_WIN_FMT_P4		2
     28 #define TEGRA_FB_WIN_FMT_P8		3
     29 #define TEGRA_FB_WIN_FMT_B4G4R4A4	4
     30 #define TEGRA_FB_WIN_FMT_B5G5R5A	5
     31 #define TEGRA_FB_WIN_FMT_B5G6R5		6
     32 #define TEGRA_FB_WIN_FMT_AB5G5R5	7
     33 #define TEGRA_FB_WIN_FMT_B8G8R8A8	12
     34 #define TEGRA_FB_WIN_FMT_R8G8B8A8	13
     35 #define TEGRA_FB_WIN_FMT_B6x2G6x2R6x2A8	14
     36 #define TEGRA_FB_WIN_FMT_R6x2G6x2B6x2A8	15
     37 #define TEGRA_FB_WIN_FMT_YCbCr422	16
     38 #define TEGRA_FB_WIN_FMT_YUV422		17
     39 #define TEGRA_FB_WIN_FMT_YCbCr420P	18
     40 #define TEGRA_FB_WIN_FMT_YUV420P	19
     41 #define TEGRA_FB_WIN_FMT_YCbCr422P	20
     42 #define TEGRA_FB_WIN_FMT_YUV422P	21
     43 #define TEGRA_FB_WIN_FMT_YCbCr422R	22
     44 #define TEGRA_FB_WIN_FMT_YUV422R	23
     45 #define TEGRA_FB_WIN_FMT_YCbCr422RA	24
     46 #define TEGRA_FB_WIN_FMT_YUV422RA	25
     47 
     48 #define TEGRA_FB_WIN_BLEND_NONE		0
     49 #define TEGRA_FB_WIN_BLEND_PREMULT	1
     50 #define TEGRA_FB_WIN_BLEND_COVERAGE	2
     51 
     52 #define TEGRA_FB_WIN_FLAG_INVERT_H	(1 << 0)
     53 #define TEGRA_FB_WIN_FLAG_INVERT_V	(1 << 1)
     54 #define TEGRA_FB_WIN_FLAG_TILED		(1 << 2)
     55 
     56 /* set index to -1 to ignore window data */
     57 struct tegra_fb_windowattr {
     58 	__s32	index;
     59 	__u32	buff_id;
     60 	__u32	flags;
     61 	__u32	blend;
     62 	__u32	offset;
     63 	__u32	offset_u;
     64 	__u32	offset_v;
     65 	__u32	stride;
     66 	__u32	stride_uv;
     67 	__u32	pixformat;
     68 	__u32	x;
     69 	__u32	y;
     70 	__u32	w;
     71 	__u32	h;
     72 	__u32	out_x;
     73 	__u32	out_y;
     74 	__u32	out_w;
     75 	__u32	out_h;
     76 	__u32	z;
     77 	__u32	pre_syncpt_id;
     78 	__u32	pre_syncpt_val;
     79 };
     80 
     81 #define TEGRA_FB_FLIP_N_WINDOWS		3
     82 
     83 struct tegra_fb_flip_args {
     84 	struct tegra_fb_windowattr win[TEGRA_FB_FLIP_N_WINDOWS];
     85 	__u32 post_syncpt_id;
     86 	__u32 post_syncpt_val;
     87 };
     88 
     89 struct tegra_fb_modedb {
     90 	struct fb_var_screeninfo *modedb;
     91 	__u32 modedb_len;
     92 };
     93 
     94 #define FBIO_TEGRA_SET_NVMAP_FD	_IOW('F', 0x40, __u32)
     95 #define FBIO_TEGRA_FLIP		_IOW('F', 0x41, struct tegra_fb_flip_args)
     96 #define FBIO_TEGRA_GET_MODEDB	_IOWR('F', 0x42, struct tegra_fb_modedb)
     97 
     98 #endif
     99