summaryrefslogtreecommitdiff
path: root/src/via_privioctl.h
blob: 823c71d90a957d690d24ddf4f8623098cf732f4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
 * 
 * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
 * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sub license,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the
 * next paragraph) shall be included in all copies or substantial portions
 * of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
 * VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 */

#ifndef _VIA_PRIVIOCTL_H_
#define _VIA_PRIVIOCTL_H_

#ifdef XF86DRI
#define VIAHAVEV4L
#else
#ifdef linux
#include <asm/ioctl.h>
#define VIAHAVEV4L
#endif
/* If anyone using another operating system really needs this
   add another block here - but - beware, this code is #1 to go */
#endif

#ifdef VIAHAVEV4L

#define BASE_VIDIOCPRIVATE	192		/* 192-255 are private */

/*Added for SAMM*/
typedef struct {
    unsigned long dwWidth;          /* On screen Width                  */
    unsigned long dwHeight;         /* On screen Height                 */
    unsigned long dwSaveWidth;      /* On screen Width for Panning      */
    unsigned long dwSaveHeight;     /* On screen Height for Panning     */
    unsigned long dwBPP;            /* Bits Per Pixel                   */
    unsigned long dwPitch;          /* On screen pitch= width x BPP     */
    unsigned long dwRefreshRate;    /* Refresh rate of the mode         */
    unsigned long TotalVRAM;        /* Total Video RAM in unit of byte  */
    unsigned long VideoHeapBase;    /* Physical Start of video heap     */
    unsigned long VideoHeapEnd;     /* Physical End of video heap       */
    unsigned long dwDVIOn;    	    /* Is it DVI simultaneous mode ?    */
    unsigned long dwLCDOn;    	    /* Is it LCD simultaneous mode ?    */
    unsigned long dwExpand;    	    /* Is DVI in expand mode ?          */
    unsigned long dwPanning;    	/* Is DVI in Pannig mode ?          */
    unsigned long dwPanelWidth;     /* Panel physical Width             */
    unsigned long dwPanelHeight;    /* Panel physical Height            */
    unsigned long dwActiveDevice;   /* Active Device; ex. CRT or LCD    */       
}SCREENINFO, * LPSCREENINFO;

typedef struct {
    unsigned long HQVFilter_ManualSelect;    /* HQV Filter_Manual Select         */
    int MpegHQV_VFilterMode;                 /* MPEG HQV vertical filter mode    */
    int MpegHQV_HFilterMode;                 /* MPEG HQV horizontal filter mode  */
    int CapHQV_VFilterMode;                  /* Capture HQV vertical filter mode */
    int CapHQV_HFilterMode;                  /* Capture HQV horizontal filter mode */
    unsigned long SetMpeg_FBNumber;          /* Set Mpeg decode frame buffer number */
    unsigned long Cap1_UseIRQ;               /* Capture 1 use IRQ select, for S/W flip or H/W auto flip */
    unsigned long Cap0_SwitchToV3;           /* Capture 0 use V3 engine, only for SAMSUNG project */
    unsigned long HQV_ManualSwitch;      /* HQV engine manual switch select      */
    Bool  ColorSpaceChanged;                 /* The setting value of color space been changed by user    */
    unsigned long ColorSpaceValue1;          /* User set color value from utility , after driver convert */
    unsigned long ColorSpaceValue2;          /* User set color value from utility , after driver convert */
    Bool  DRMEnabled;               /* kernel module DRM flag           */
    Bool  Screen1IsLeft;            /* True: Screen1 LeftOf Screen0 ; False: Screen1 RightOf Screen0 */
    Bool  Screen1IsAbove;           /* True: Screen1 Above Screen0 ; False: Screen1 Below Screen0 */
    Bool  SAMM;                     /* True: XServer in SAMM mode  */
    int   RevisionID;               /* The chip revision ID */
    unsigned long dwDeviceID;       /* The chip device ID */
    unsigned long dwActiveDevice;   /* ActiveDevice; ex. SAMM: CRT+LCD  */
    SCREENINFO  Screen[2];          /* Information for Primary & Secondary Screens*/      
    unsigned long NoMPEGAddOneLineOnBottom;    /* Disable HQV bob-deinterlacing, 0x3D0[16] */
    Bool  ReDrawColorkey;           /* ReDrawColorKey at viaPutImageG everytime*/
    unsigned long Reserved[9];     /* For future use */
}VIAGRAPHICINFO, * LPVIAGRAPHICINFO;

/* via private ioctls */

#define VIAMGR_INFO_XSERVERON   _IOW ('v', BASE_VIDIOCPRIVATE+1, VIAGRAPHICINFO)
#define VIAMGR_INFO_XSERVEROFF  _IO  ('v', BASE_VIDIOCPRIVATE+2 )
#define VIA_VID_GET_2D_INFO     _IOR ('v', BASE_VIDIOCPRIVATE+3, VIAGRAPHICINFO)
#define VIA_VID_SET_2D_INFO     _IOW ('v', BASE_VIDIOCPRIVATE+4, VIAGRAPHICINFO)
#define VIA_VID_GET_VIDCTL		_IOR ('v', BASE_VIDIOCPRIVATE+5, VIAVIDCTRL)
#define VIA_VID_SET_VIDCTL		_IOW ('v', BASE_VIDIOCPRIVATE+6, VIAVIDCTRL)
#define VIA_VID_CREATESURFACE	_IOW ('v', BASE_VIDIOCPRIVATE+7, DDSURFACEDESC)
#define VIA_VID_DESTROYSURFACE	_IOW ('v', BASE_VIDIOCPRIVATE+8, DDSURFACEDESC)
#define VIA_VID_LOCKSURFACE		_IOWR ('v', BASE_VIDIOCPRIVATE+9, DDLOCK)
#define VIA_VID_UPDATEOVERLAY	_IOW ('v', BASE_VIDIOCPRIVATE+10, DDUPDATEOVERLAY)
#define VIA_VID_SETALPHAWIN		_IOW ('v', BASE_VIDIOCPRIVATE+11, ALPHACTRL)
#define VIA_VID_UPDATEALPHA		_IOW ('v', BASE_VIDIOCPRIVATE+12, RECTL)
#define VIA_VID_ADJUSTFRAME		_IOW ('v', BASE_VIDIOCPRIVATE+13, ADJUSTFRAME)
#define VIA_VID_FLIP    		_IOW ('v', BASE_VIDIOCPRIVATE+14, unsigned long)

#define VIA_VID_GET_CAP_INFO     _IOR ('v', BASE_VIDIOCPRIVATE+18, VIACAPINFO)
#define VIA_VID_SET_CAP_INFO     _IOW ('v', BASE_VIDIOCPRIVATE+19, VIACAPINFO)

#endif /* VIAHAVEV4L */
#endif  /* _VIA_PRIVIOCTL_H_ */