Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/include/video/kyro.h
10814 views
1
/*
2
* linux/drivers/video/kyro/kryo.h
3
*
4
* Copyright (C) 2002 STMicroelectronics
5
* Copyright (C) 2004 Paul Mundt
6
*
7
* This file is subject to the terms and conditions of the GNU General Public
8
* License. See the file COPYING in the main directory of this archive
9
* for more details.
10
*/
11
12
#ifndef _KYRO_H
13
#define _KYRO_H
14
15
struct kyrofb_info {
16
void __iomem *regbase;
17
18
u32 palette[16];
19
u32 HTot; /* Hor Total Time */
20
u32 HFP; /* Hor Front Porch */
21
u32 HST; /* Hor Sync Time */
22
u32 HBP; /* Hor Back Porch */
23
s32 HSP; /* Hor Sync Polarity */
24
u32 VTot; /* Ver Total Time */
25
u32 VFP; /* Ver Front Porch */
26
u32 VST; /* Ver Sync Time */
27
u32 VBP; /* Ver Back Porch */
28
s32 VSP; /* Ver Sync Polarity */
29
u32 XRES; /* X Resolution */
30
u32 YRES; /* Y Resolution */
31
u32 VFREQ; /* Ver Frequency */
32
u32 PIXCLK; /* Pixel Clock */
33
u32 HCLK; /* Hor Clock */
34
35
/* Useful to hold depth here for Linux */
36
u8 PIXDEPTH;
37
38
#ifdef CONFIG_MTRR
39
int mtrr_handle;
40
#endif
41
};
42
43
extern int kyro_dev_init(void);
44
extern void kyro_dev_reset(void);
45
46
extern unsigned char *kyro_dev_physical_fb_ptr(void);
47
extern unsigned char *kyro_dev_virtual_fb_ptr(void);
48
extern void *kyro_dev_physical_regs_ptr(void);
49
extern void *kyro_dev_virtual_regs_ptr(void);
50
extern unsigned int kyro_dev_fb_size(void);
51
extern unsigned int kyro_dev_regs_size(void);
52
53
extern u32 kyro_dev_overlay_offset(void);
54
55
/*
56
* [email protected]
57
* Added the follow IOCTLS for the creation of overlay services...
58
*/
59
#define KYRO_IOC_MAGIC 'k'
60
61
#define KYRO_IOCTL_OVERLAY_CREATE _IO(KYRO_IOC_MAGIC, 0)
62
#define KYRO_IOCTL_OVERLAY_VIEWPORT_SET _IO(KYRO_IOC_MAGIC, 1)
63
#define KYRO_IOCTL_SET_VIDEO_MODE _IO(KYRO_IOC_MAGIC, 2)
64
#define KYRO_IOCTL_UVSTRIDE _IO(KYRO_IOC_MAGIC, 3)
65
#define KYRO_IOCTL_OVERLAY_OFFSET _IO(KYRO_IOC_MAGIC, 4)
66
#define KYRO_IOCTL_STRIDE _IO(KYRO_IOC_MAGIC, 5)
67
68
/*
69
* The follow 3 structures are used to pass data from user space into the kernel
70
* for the creation of overlay surfaces and setting the video mode.
71
*/
72
typedef struct _OVERLAY_CREATE {
73
u32 ulWidth;
74
u32 ulHeight;
75
int bLinear;
76
} overlay_create;
77
78
typedef struct _OVERLAY_VIEWPORT_SET {
79
u32 xOrgin;
80
u32 yOrgin;
81
u32 xSize;
82
u32 ySize;
83
} overlay_viewport_set;
84
85
typedef struct _SET_VIDEO_MODE {
86
u32 ulWidth;
87
u32 ulHeight;
88
u32 ulScan;
89
u8 displayDepth;
90
int bLinear;
91
} set_video_mode;
92
93
#endif /* _KYRO_H */
94
95