122851890Sopenharmony_ci/*
222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py,
322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants,
422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information.
522851890Sopenharmony_ci */
622851890Sopenharmony_ci#ifndef _UAPI_LINUX_SISFB_H_
722851890Sopenharmony_ci#define _UAPI_LINUX_SISFB_H_
822851890Sopenharmony_ci#include <linux/types.h>
922851890Sopenharmony_ci#include <asm/ioctl.h>
1022851890Sopenharmony_ci#define CRT2_DEFAULT		0x00000001
1122851890Sopenharmony_ci#define CRT2_LCD		0x00000002
1222851890Sopenharmony_ci#define CRT2_TV			0x00000004
1322851890Sopenharmony_ci#define CRT2_VGA		0x00000008
1422851890Sopenharmony_ci#define TV_NTSC			0x00000010
1522851890Sopenharmony_ci#define TV_PAL			0x00000020
1622851890Sopenharmony_ci#define TV_HIVISION		0x00000040
1722851890Sopenharmony_ci#define TV_YPBPR		0x00000080
1822851890Sopenharmony_ci#define TV_AVIDEO		0x00000100
1922851890Sopenharmony_ci#define TV_SVIDEO		0x00000200
2022851890Sopenharmony_ci#define TV_SCART		0x00000400
2122851890Sopenharmony_ci#define TV_PALM			0x00001000
2222851890Sopenharmony_ci#define TV_PALN			0x00002000
2322851890Sopenharmony_ci#define TV_NTSCJ		0x00001000
2422851890Sopenharmony_ci#define TV_CHSCART		0x00008000
2522851890Sopenharmony_ci#define TV_CHYPBPR525I		0x00010000
2622851890Sopenharmony_ci#define CRT1_VGA		0x00000000
2722851890Sopenharmony_ci#define CRT1_LCDA		0x00020000
2822851890Sopenharmony_ci#define VGA2_CONNECTED          0x00040000
2922851890Sopenharmony_ci#define VB_DISPTYPE_CRT1	0x00080000
3022851890Sopenharmony_ci#define VB_SINGLE_MODE		0x20000000
3122851890Sopenharmony_ci#define VB_MIRROR_MODE		0x40000000
3222851890Sopenharmony_ci#define VB_DUALVIEW_MODE	0x80000000
3322851890Sopenharmony_ci#define CRT2_ENABLE		(CRT2_LCD | CRT2_TV | CRT2_VGA)
3422851890Sopenharmony_ci#define TV_STANDARD		(TV_NTSC | TV_PAL | TV_PALM | TV_PALN | TV_NTSCJ)
3522851890Sopenharmony_ci#define TV_INTERFACE		(TV_AVIDEO|TV_SVIDEO|TV_SCART|TV_HIVISION|TV_YPBPR|TV_CHSCART|TV_CHYPBPR525I)
3622851890Sopenharmony_ci#define TV_YPBPR525I		TV_NTSC
3722851890Sopenharmony_ci#define TV_YPBPR525P		TV_PAL
3822851890Sopenharmony_ci#define TV_YPBPR750P		TV_PALM
3922851890Sopenharmony_ci#define TV_YPBPR1080I		TV_PALN
4022851890Sopenharmony_ci#define TV_YPBPRALL 		(TV_YPBPR525I | TV_YPBPR525P | TV_YPBPR750P | TV_YPBPR1080I)
4122851890Sopenharmony_ci#define VB_DISPTYPE_DISP2	CRT2_ENABLE
4222851890Sopenharmony_ci#define VB_DISPTYPE_CRT2	CRT2_ENABLE
4322851890Sopenharmony_ci#define VB_DISPTYPE_DISP1	VB_DISPTYPE_CRT1
4422851890Sopenharmony_ci#define VB_DISPMODE_SINGLE	VB_SINGLE_MODE
4522851890Sopenharmony_ci#define VB_DISPMODE_MIRROR	VB_MIRROR_MODE
4622851890Sopenharmony_ci#define VB_DISPMODE_DUAL	VB_DUALVIEW_MODE
4722851890Sopenharmony_ci#define VB_DISPLAY_MODE		(SINGLE_MODE | MIRROR_MODE | DUALVIEW_MODE)
4822851890Sopenharmony_cistruct sisfb_info {
4922851890Sopenharmony_ci	__u32	sisfb_id;
5022851890Sopenharmony_ci#ifndef SISFB_ID
5122851890Sopenharmony_ci#define SISFB_ID	  0x53495346
5222851890Sopenharmony_ci#endif
5322851890Sopenharmony_ci	__u32   chip_id;
5422851890Sopenharmony_ci	__u32   memory;
5522851890Sopenharmony_ci	__u32   heapstart;
5622851890Sopenharmony_ci	__u8    fbvidmode;
5722851890Sopenharmony_ci	__u8	sisfb_version;
5822851890Sopenharmony_ci	__u8	sisfb_revision;
5922851890Sopenharmony_ci	__u8	sisfb_patchlevel;
6022851890Sopenharmony_ci	__u8	sisfb_caps;
6122851890Sopenharmony_ci	__u32	sisfb_tqlen;
6222851890Sopenharmony_ci	__u32	sisfb_pcibus;
6322851890Sopenharmony_ci	__u32	sisfb_pcislot;
6422851890Sopenharmony_ci	__u32	sisfb_pcifunc;
6522851890Sopenharmony_ci	__u8	sisfb_lcdpdc;
6622851890Sopenharmony_ci	__u8	sisfb_lcda;
6722851890Sopenharmony_ci	__u32	sisfb_vbflags;
6822851890Sopenharmony_ci	__u32	sisfb_currentvbflags;
6922851890Sopenharmony_ci	__u32	sisfb_scalelcd;
7022851890Sopenharmony_ci	__u32	sisfb_specialtiming;
7122851890Sopenharmony_ci	__u8	sisfb_haveemi;
7222851890Sopenharmony_ci	__u8	sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33;
7322851890Sopenharmony_ci	__u8	sisfb_haveemilcd;
7422851890Sopenharmony_ci	__u8	sisfb_lcdpdca;
7522851890Sopenharmony_ci	__u16	sisfb_tvxpos, sisfb_tvypos;
7622851890Sopenharmony_ci	__u32	sisfb_heapsize;
7722851890Sopenharmony_ci	__u32	sisfb_videooffset;
7822851890Sopenharmony_ci	__u32	sisfb_curfstn;
7922851890Sopenharmony_ci	__u32	sisfb_curdstn;
8022851890Sopenharmony_ci	__u16	sisfb_pci_vendor;
8122851890Sopenharmony_ci	__u32	sisfb_vbflags2;
8222851890Sopenharmony_ci	__u8	sisfb_can_post;
8322851890Sopenharmony_ci	__u8	sisfb_card_posted;
8422851890Sopenharmony_ci	__u8	sisfb_was_boot_device;
8522851890Sopenharmony_ci	__u8	reserved[183];
8622851890Sopenharmony_ci};
8722851890Sopenharmony_ci#define SISFB_CMD_GETVBFLAGS	0x55AA0001
8822851890Sopenharmony_ci#define SISFB_CMD_SWITCHCRT1	0x55AA0010
8922851890Sopenharmony_ci#define SISFB_CMD_ERR_OK	0x80000000
9022851890Sopenharmony_ci#define SISFB_CMD_ERR_LOCKED	0x80000001
9122851890Sopenharmony_ci#define SISFB_CMD_ERR_EARLY	0x80000002
9222851890Sopenharmony_ci#define SISFB_CMD_ERR_NOVB	0x80000003
9322851890Sopenharmony_ci#define SISFB_CMD_ERR_NOCRT2	0x80000004
9422851890Sopenharmony_ci#define SISFB_CMD_ERR_UNKNOWN   0x8000ffff
9522851890Sopenharmony_ci#define SISFB_CMD_ERR_OTHER	0x80010000
9622851890Sopenharmony_cistruct sisfb_cmd {
9722851890Sopenharmony_ci	__u32  sisfb_cmd;
9822851890Sopenharmony_ci	__u32  sisfb_arg[16];
9922851890Sopenharmony_ci	__u32  sisfb_result[4];
10022851890Sopenharmony_ci};
10122851890Sopenharmony_ci#define SISFB_GET_INFO_SIZE	_IOR(0xF3,0x00,__u32)
10222851890Sopenharmony_ci#define SISFB_GET_INFO		_IOR(0xF3,0x01,struct sisfb_info)
10322851890Sopenharmony_ci#define SISFB_GET_VBRSTATUS	_IOR(0xF3,0x02,__u32)
10422851890Sopenharmony_ci#define SISFB_GET_AUTOMAXIMIZE	_IOR(0xF3,0x03,__u32)
10522851890Sopenharmony_ci#define SISFB_SET_AUTOMAXIMIZE	_IOW(0xF3,0x03,__u32)
10622851890Sopenharmony_ci#define SISFB_GET_TVPOSOFFSET	_IOR(0xF3,0x04,__u32)
10722851890Sopenharmony_ci#define SISFB_SET_TVPOSOFFSET	_IOW(0xF3,0x04,__u32)
10822851890Sopenharmony_ci#define SISFB_COMMAND		_IOWR(0xF3,0x05,struct sisfb_cmd)
10922851890Sopenharmony_ci#define SISFB_SET_LOCK		_IOW(0xF3,0x06,__u32)
11022851890Sopenharmony_ci#define SISFB_GET_INFO_OLD	   _IOR('n',0xF8,__u32)
11122851890Sopenharmony_ci#define SISFB_GET_VBRSTATUS_OLD	   _IOR('n',0xF9,__u32)
11222851890Sopenharmony_ci#define SISFB_GET_AUTOMAXIMIZE_OLD _IOR('n',0xFA,__u32)
11322851890Sopenharmony_ci#define SISFB_SET_AUTOMAXIMIZE_OLD _IOW('n',0xFA,__u32)
11422851890Sopenharmony_cistruct sis_memreq {
11522851890Sopenharmony_ci	__u32	offset;
11622851890Sopenharmony_ci	__u32	size;
11722851890Sopenharmony_ci};
11822851890Sopenharmony_ci#endif
119