linux/include/uapi/video/sisfb.h

/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/*
 * sisfb.h - definitions for the SiS framebuffer driver
 *
 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the named License,
 * or any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
 */

#ifndef _UAPI_LINUX_SISFB_H_
#define _UAPI_LINUX_SISFB_H_

#include <linux/types.h>
#include <asm/ioctl.h>

/**********************************************/
/*                   PUBLIC                   */
/**********************************************/

/* vbflags, public (others in sis.h) */
#define CRT2_DEFAULT
#define CRT2_LCD
#define CRT2_TV
#define CRT2_VGA
#define TV_NTSC
#define TV_PAL
#define TV_HIVISION
#define TV_YPBPR
#define TV_AVIDEO
#define TV_SVIDEO
#define TV_SCART
#define TV_PALM
#define TV_PALN
#define TV_NTSCJ
#define TV_CHSCART
#define TV_CHYPBPR525I
#define CRT1_VGA
#define CRT1_LCDA
#define VGA2_CONNECTED
#define VB_DISPTYPE_CRT1
#define VB_SINGLE_MODE
#define VB_MIRROR_MODE
#define VB_DUALVIEW_MODE

/* Aliases: */
#define CRT2_ENABLE
#define TV_STANDARD
#define TV_INTERFACE

/* Only if TV_YPBPR is set: */
#define TV_YPBPR525I
#define TV_YPBPR525P
#define TV_YPBPR750P
#define TV_YPBPR1080I
#define TV_YPBPRALL

#define VB_DISPTYPE_DISP2
#define VB_DISPTYPE_CRT2
#define VB_DISPTYPE_DISP1
#define VB_DISPMODE_SINGLE
#define VB_DISPMODE_MIRROR
#define VB_DISPMODE_DUAL
#define VB_DISPLAY_MODE

/* Structure argument for SISFB_GET_INFO ioctl  */
struct sisfb_info {};

#define SISFB_CMD_GETVBFLAGS
#define SISFB_CMD_SWITCHCRT1
/* more to come */

#define SISFB_CMD_ERR_OK
#define SISFB_CMD_ERR_LOCKED
#define SISFB_CMD_ERR_EARLY
#define SISFB_CMD_ERR_NOVB
#define SISFB_CMD_ERR_NOCRT2
/* more to come */
#define SISFB_CMD_ERR_UNKNOWN
#define SISFB_CMD_ERR_OTHER

/* Argument for SISFB_CMD ioctl */
struct sisfb_cmd {};

/* Additional IOCTLs for communication sisfb <> X driver                */
/* If changing this, vgatypes.h must also be changed (for X driver)    */

/* ioctl for identifying and giving some info (esp. memory heap start) */
#define SISFB_GET_INFO_SIZE
#define SISFB_GET_INFO

/* ioctrl to get current vertical retrace status */
#define SISFB_GET_VBRSTATUS

/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */
#define SISFB_GET_AUTOMAXIMIZE
#define SISFB_SET_AUTOMAXIMIZE

/* ioctls to relocate TV output (x=D[31:16], y=D[15:0], + 32)*/
#define SISFB_GET_TVPOSOFFSET
#define SISFB_SET_TVPOSOFFSET

/* ioctl for internal sisfb commands (sisfbctrl) */
#define SISFB_COMMAND

/* ioctl for locking sisfb (no register access during lock) */
/* As of now, only used to avoid register access during
 * the ioctls listed above.
 */
#define SISFB_SET_LOCK

/* ioctls 0xF3 up to 0x3F reserved for sisfb */

/****************************************************************/
/* The following are deprecated and should not be used anymore: */
/****************************************************************/
/* ioctl for identifying and giving some info (esp. memory heap start) */
#define SISFB_GET_INFO_OLD
/* ioctrl to get current vertical retrace status */
#define SISFB_GET_VBRSTATUS_OLD
/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */
#define SISFB_GET_AUTOMAXIMIZE_OLD
#define SISFB_SET_AUTOMAXIMIZE_OLD
/****************************************************************/
/*               End of deprecated ioctl numbers                */
/****************************************************************/

/* For fb memory manager (FBIO_ALLOC, FBIO_FREE) */
struct sis_memreq {};

/**********************************************/
/*                  PRIVATE                   */
/*         (for IN-KERNEL usage only)         */
/**********************************************/


#endif /* _UAPI_LINUX_SISFB_H_ */