]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - include/video/sh_mobile_meram.h
nvme_fc: add module to ops template to allow module references
[mirror_ubuntu-bionic-kernel.git] / include / video / sh_mobile_meram.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
7caa4342
DHG
2#ifndef __VIDEO_SH_MOBILE_MERAM_H__
3#define __VIDEO_SH_MOBILE_MERAM_H__
4
5/* For sh_mobile_meram_info.addr_mode */
6enum {
7 SH_MOBILE_MERAM_MODE0 = 0,
8 SH_MOBILE_MERAM_MODE1
9};
10
11enum {
12 SH_MOBILE_MERAM_PF_NV = 0,
3fedd2ac
DHG
13 SH_MOBILE_MERAM_PF_RGB,
14 SH_MOBILE_MERAM_PF_NV24
7caa4342
DHG
15};
16
17
18struct sh_mobile_meram_priv;
7caa4342 19
48110050
LP
20/*
21 * struct sh_mobile_meram_info - MERAM platform data
22 * @reserved_icbs: Bitmask of reserved ICBs (for instance used through UIO)
23 */
7caa4342
DHG
24struct sh_mobile_meram_info {
25 int addr_mode;
48110050 26 u32 reserved_icbs;
7caa4342
DHG
27 struct sh_mobile_meram_priv *priv;
28 struct platform_device *pdev;
29};
30
31/* icb config */
d272f428 32struct sh_mobile_meram_icb_cfg {
d272f428 33 unsigned int meram_size; /* MERAM Buffer Size to use */
7caa4342
DHG
34};
35
36struct sh_mobile_meram_cfg {
2a618e03 37 struct sh_mobile_meram_icb_cfg icb[2];
7caa4342
DHG
38};
39
6e729b41
LP
40#if defined(CONFIG_FB_SH_MOBILE_MERAM) || \
41 defined(CONFIG_FB_SH_MOBILE_MERAM_MODULE)
239921ec
LP
42unsigned long sh_mobile_meram_alloc(struct sh_mobile_meram_info *meram_dev,
43 size_t size);
44void sh_mobile_meram_free(struct sh_mobile_meram_info *meram_dev,
45 unsigned long mem, size_t size);
6e729b41
LP
46void *sh_mobile_meram_cache_alloc(struct sh_mobile_meram_info *dev,
47 const struct sh_mobile_meram_cfg *cfg,
48 unsigned int xres, unsigned int yres,
49 unsigned int pixelformat,
50 unsigned int *pitch);
51void sh_mobile_meram_cache_free(struct sh_mobile_meram_info *dev, void *data);
52void sh_mobile_meram_cache_update(struct sh_mobile_meram_info *dev, void *data,
53 unsigned long base_addr_y,
54 unsigned long base_addr_c,
55 unsigned long *icb_addr_y,
56 unsigned long *icb_addr_c);
57#else
239921ec
LP
58static inline unsigned long
59sh_mobile_meram_alloc(struct sh_mobile_meram_info *meram_dev, size_t size)
60{
61 return 0;
62}
63
64static inline void
65sh_mobile_meram_free(struct sh_mobile_meram_info *meram_dev,
66 unsigned long mem, size_t size)
67{
68}
69
6e729b41
LP
70static inline void *
71sh_mobile_meram_cache_alloc(struct sh_mobile_meram_info *dev,
72 const struct sh_mobile_meram_cfg *cfg,
73 unsigned int xres, unsigned int yres,
74 unsigned int pixelformat,
75 unsigned int *pitch)
76{
77 return ERR_PTR(-ENODEV);
78}
79
80static inline void
81sh_mobile_meram_cache_free(struct sh_mobile_meram_info *dev, void *data)
82{
83}
84
85static inline void
86sh_mobile_meram_cache_update(struct sh_mobile_meram_info *dev, void *data,
cdf88b90
LP
87 unsigned long base_addr_y,
88 unsigned long base_addr_c,
89 unsigned long *icb_addr_y,
6e729b41
LP
90 unsigned long *icb_addr_c)
91{
92}
93#endif
7caa4342
DHG
94
95#endif /* __VIDEO_SH_MOBILE_MERAM_H__ */