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