Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/include/video/sh_mobile_meram.h
10818 views
1
#ifndef __VIDEO_SH_MOBILE_MERAM_H__
2
#define __VIDEO_SH_MOBILE_MERAM_H__
3
4
/* For sh_mobile_meram_info.addr_mode */
5
enum {
6
SH_MOBILE_MERAM_MODE0 = 0,
7
SH_MOBILE_MERAM_MODE1
8
};
9
10
enum {
11
SH_MOBILE_MERAM_PF_NV = 0,
12
SH_MOBILE_MERAM_PF_RGB,
13
SH_MOBILE_MERAM_PF_NV24
14
};
15
16
17
struct sh_mobile_meram_priv;
18
struct sh_mobile_meram_ops;
19
20
struct sh_mobile_meram_info {
21
int addr_mode;
22
struct sh_mobile_meram_ops *ops;
23
struct sh_mobile_meram_priv *priv;
24
struct platform_device *pdev;
25
};
26
27
/* icb config */
28
struct sh_mobile_meram_icb {
29
int marker_icb; /* ICB # for Marker ICB */
30
int cache_icb; /* ICB # for Cache ICB */
31
int meram_offset; /* MERAM Buffer Offset to use */
32
int meram_size; /* MERAM Buffer Size to use */
33
34
int cache_unit; /* bytes to cache per ICB */
35
};
36
37
struct sh_mobile_meram_cfg {
38
struct sh_mobile_meram_icb icb[2];
39
int pixelformat;
40
int current_reg;
41
};
42
43
struct module;
44
struct sh_mobile_meram_ops {
45
struct module *module;
46
/* register usage of meram */
47
int (*meram_register)(struct sh_mobile_meram_info *meram_dev,
48
struct sh_mobile_meram_cfg *cfg,
49
int xres, int yres, int pixelformat,
50
unsigned long base_addr_y,
51
unsigned long base_addr_c,
52
unsigned long *icb_addr_y,
53
unsigned long *icb_addr_c, int *pitch);
54
55
/* unregister usage of meram */
56
int (*meram_unregister)(struct sh_mobile_meram_info *meram_dev,
57
struct sh_mobile_meram_cfg *cfg);
58
59
/* update meram settings */
60
int (*meram_update)(struct sh_mobile_meram_info *meram_dev,
61
struct sh_mobile_meram_cfg *cfg,
62
unsigned long base_addr_y,
63
unsigned long base_addr_c,
64
unsigned long *icb_addr_y,
65
unsigned long *icb_addr_c);
66
};
67
68
#endif /* __VIDEO_SH_MOBILE_MERAM_H__ */
69
70