1/*
2 * This header was generated from the Linux kernel headers by update_headers.py,
3 * to provide necessary information from kernel to userspace, such as constants,
4 * structures, and macros, and thus, contains no copyrightable information.
5 */
6#ifndef _UAPI_LINUX_SISFB_H_
7#define _UAPI_LINUX_SISFB_H_
8#include <linux/types.h>
9#include <asm/ioctl.h>
10#define CRT2_DEFAULT		0x00000001
11#define CRT2_LCD		0x00000002
12#define CRT2_TV			0x00000004
13#define CRT2_VGA		0x00000008
14#define TV_NTSC			0x00000010
15#define TV_PAL			0x00000020
16#define TV_HIVISION		0x00000040
17#define TV_YPBPR		0x00000080
18#define TV_AVIDEO		0x00000100
19#define TV_SVIDEO		0x00000200
20#define TV_SCART		0x00000400
21#define TV_PALM			0x00001000
22#define TV_PALN			0x00002000
23#define TV_NTSCJ		0x00001000
24#define TV_CHSCART		0x00008000
25#define TV_CHYPBPR525I		0x00010000
26#define CRT1_VGA		0x00000000
27#define CRT1_LCDA		0x00020000
28#define VGA2_CONNECTED          0x00040000
29#define VB_DISPTYPE_CRT1	0x00080000
30#define VB_SINGLE_MODE		0x20000000
31#define VB_MIRROR_MODE		0x40000000
32#define VB_DUALVIEW_MODE	0x80000000
33#define CRT2_ENABLE		(CRT2_LCD | CRT2_TV | CRT2_VGA)
34#define TV_STANDARD		(TV_NTSC | TV_PAL | TV_PALM | TV_PALN | TV_NTSCJ)
35#define TV_INTERFACE		(TV_AVIDEO|TV_SVIDEO|TV_SCART|TV_HIVISION|TV_YPBPR|TV_CHSCART|TV_CHYPBPR525I)
36#define TV_YPBPR525I		TV_NTSC
37#define TV_YPBPR525P		TV_PAL
38#define TV_YPBPR750P		TV_PALM
39#define TV_YPBPR1080I		TV_PALN
40#define TV_YPBPRALL 		(TV_YPBPR525I | TV_YPBPR525P | TV_YPBPR750P | TV_YPBPR1080I)
41#define VB_DISPTYPE_DISP2	CRT2_ENABLE
42#define VB_DISPTYPE_CRT2	CRT2_ENABLE
43#define VB_DISPTYPE_DISP1	VB_DISPTYPE_CRT1
44#define VB_DISPMODE_SINGLE	VB_SINGLE_MODE
45#define VB_DISPMODE_MIRROR	VB_MIRROR_MODE
46#define VB_DISPMODE_DUAL	VB_DUALVIEW_MODE
47#define VB_DISPLAY_MODE		(SINGLE_MODE | MIRROR_MODE | DUALVIEW_MODE)
48struct sisfb_info {
49	__u32	sisfb_id;
50#ifndef SISFB_ID
51#define SISFB_ID	  0x53495346
52#endif
53	__u32   chip_id;
54	__u32   memory;
55	__u32   heapstart;
56	__u8    fbvidmode;
57	__u8	sisfb_version;
58	__u8	sisfb_revision;
59	__u8	sisfb_patchlevel;
60	__u8	sisfb_caps;
61	__u32	sisfb_tqlen;
62	__u32	sisfb_pcibus;
63	__u32	sisfb_pcislot;
64	__u32	sisfb_pcifunc;
65	__u8	sisfb_lcdpdc;
66	__u8	sisfb_lcda;
67	__u32	sisfb_vbflags;
68	__u32	sisfb_currentvbflags;
69	__u32	sisfb_scalelcd;
70	__u32	sisfb_specialtiming;
71	__u8	sisfb_haveemi;
72	__u8	sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33;
73	__u8	sisfb_haveemilcd;
74	__u8	sisfb_lcdpdca;
75	__u16	sisfb_tvxpos, sisfb_tvypos;
76	__u32	sisfb_heapsize;
77	__u32	sisfb_videooffset;
78	__u32	sisfb_curfstn;
79	__u32	sisfb_curdstn;
80	__u16	sisfb_pci_vendor;
81	__u32	sisfb_vbflags2;
82	__u8	sisfb_can_post;
83	__u8	sisfb_card_posted;
84	__u8	sisfb_was_boot_device;
85	__u8	reserved[183];
86};
87#define SISFB_CMD_GETVBFLAGS	0x55AA0001
88#define SISFB_CMD_SWITCHCRT1	0x55AA0010
89#define SISFB_CMD_ERR_OK	0x80000000
90#define SISFB_CMD_ERR_LOCKED	0x80000001
91#define SISFB_CMD_ERR_EARLY	0x80000002
92#define SISFB_CMD_ERR_NOVB	0x80000003
93#define SISFB_CMD_ERR_NOCRT2	0x80000004
94#define SISFB_CMD_ERR_UNKNOWN   0x8000ffff
95#define SISFB_CMD_ERR_OTHER	0x80010000
96struct sisfb_cmd {
97	__u32  sisfb_cmd;
98	__u32  sisfb_arg[16];
99	__u32  sisfb_result[4];
100};
101#define SISFB_GET_INFO_SIZE	_IOR(0xF3,0x00,__u32)
102#define SISFB_GET_INFO		_IOR(0xF3,0x01,struct sisfb_info)
103#define SISFB_GET_VBRSTATUS	_IOR(0xF3,0x02,__u32)
104#define SISFB_GET_AUTOMAXIMIZE	_IOR(0xF3,0x03,__u32)
105#define SISFB_SET_AUTOMAXIMIZE	_IOW(0xF3,0x03,__u32)
106#define SISFB_GET_TVPOSOFFSET	_IOR(0xF3,0x04,__u32)
107#define SISFB_SET_TVPOSOFFSET	_IOW(0xF3,0x04,__u32)
108#define SISFB_COMMAND		_IOWR(0xF3,0x05,struct sisfb_cmd)
109#define SISFB_SET_LOCK		_IOW(0xF3,0x06,__u32)
110#define SISFB_GET_INFO_OLD	   _IOR('n',0xF8,__u32)
111#define SISFB_GET_VBRSTATUS_OLD	   _IOR('n',0xF9,__u32)
112#define SISFB_GET_AUTOMAXIMIZE_OLD _IOR('n',0xFA,__u32)
113#define SISFB_SET_AUTOMAXIMIZE_OLD _IOW('n',0xFA,__u32)
114struct sis_memreq {
115	__u32	offset;
116	__u32	size;
117};
118#endif
119