1 #ifndef __LINUX_MATROXFB_H__
2 #define __LINUX_MATROXFB_H__
3 
4 #include <asm/ioctl.h>
5 #include <asm/types.h>
6 
7 struct matroxioc_output_mode {
8 	__u32	output;		/* which output */
9 #define MATROXFB_OUTPUT_PRIMARY		0x0000
10 #define MATROXFB_OUTPUT_SECONDARY	0x0001
11 #define MATROXFB_OUTPUT_DFP		0x0002
12 	__u32	mode;		/* which mode */
13 #define MATROXFB_OUTPUT_MODE_PAL	0x0001
14 #define MATROXFB_OUTPUT_MODE_NTSC	0x0002
15 #define MATROXFB_OUTPUT_MODE_MONITOR	0x0080
16 };
17 #define MATROXFB_SET_OUTPUT_MODE	_IOW('n',0xFA,sizeof(struct matroxioc_output_mode))
18 #define MATROXFB_GET_OUTPUT_MODE	_IOWR('n',0xFA,sizeof(struct matroxioc_output_mode))
19 
20 /* bitfield */
21 #define MATROXFB_OUTPUT_CONN_PRIMARY	(1 << MATROXFB_OUTPUT_PRIMARY)
22 #define MATROXFB_OUTPUT_CONN_SECONDARY	(1 << MATROXFB_OUTPUT_SECONDARY)
23 #define MATROXFB_OUTPUT_CONN_DFP	(1 << MATROXFB_OUTPUT_DFP)
24 /* connect these outputs to this framebuffer */
25 #define MATROXFB_SET_OUTPUT_CONNECTION	_IOW('n',0xF8,sizeof(__u32))
26 /* which outputs are connected to this framebuffer */
27 #define MATROXFB_GET_OUTPUT_CONNECTION	_IOR('n',0xF8,sizeof(__u32))
28 /* which outputs are available for this framebuffer */
29 #define MATROXFB_GET_AVAILABLE_OUTPUTS	_IOR('n',0xF9,sizeof(__u32))
30 /* which outputs exist on this framebuffer */
31 #define MATROXFB_GET_ALL_OUTPUTS	_IOR('n',0xFB,sizeof(__u32))
32 
33 struct matroxfb_queryctrl {
34   __u32 id;			/* ID for control */
35   char name[32];		/* A suggested label for this control */
36   int minimum;			/* Minimum value */
37   int maximum;			/* Maximum value */
38   unsigned int step;            /* The increment between values of an integer
39 				   control that are distinct on the hardware */
40   int default_value;		/* Driver default value */
41   __u32 type;			/* Control type. */
42   __u32 flags;			/* Control flags */
43   __u32 category;               /* Control category code, useful for
44 				   separating controls by function */
45   char group[32];               /* A suggested label string for the
46 				   control group */
47   __u32 reserved[2];
48 };
49 
50 enum matroxfb_ctrl_type {
51   MATROXFB_CTRL_TYPE_INTEGER=0,	/* An integer-valued control */
52   MATROXFB_CTRL_TYPE_BOOLEAN,	/* A boolean-valued control */
53   MATROXFB_CTRL_TYPE_MENU,	/* The control has a menu of choices */
54   MATROXFB_CTRL_TYPE_BUTTON /* A button which performs an action when clicked */
55 };
56 
57 enum matroxfb_ctrl_id {
58   MATROXFB_CID_BRIGHTNESS=0x00980900,
59   MATROXFB_CID_CONTRAST,
60   MATROXFB_CID_SATURATION,
61   MATROXFB_CID_HUE,
62   MATROXFB_CID_GAMMA	 =0x00980910,
63   MATROXFB_CID_TESTOUT	 =0x08000000,
64   MATROXFB_CID_DEFLICKER,
65   MATROXFB_CID_LAST
66 };
67 
68 
69 #define MATROXFB_TVOQUERYCTRL	_IOWR('V',36,struct matroxfb_queryctrl)
70 
71 struct matroxfb_control {
72   __u32 id;			/* A driver-defined ID */
73   int value;			/* The current value, or new value */
74 };
75 
76 #define MATROXFB_G_TVOCTRL	_IOWR('V',27,struct matroxfb_control)
77 #define MATROXFB_S_TVOCTRL	_IOW ('V',28,struct matroxfb_control)
78 
79 #define FBIO_WAITFORVSYNC	_IOW('F', 0x20, u_int32_t)
80 
81 #endif
82 
83