|  | #ifndef __VIDEO_SH_MOBILE_MERAM_H__ | 
|  | #define __VIDEO_SH_MOBILE_MERAM_H__ | 
|  |  | 
|  | /* For sh_mobile_meram_info.addr_mode */ | 
|  | enum { | 
|  | SH_MOBILE_MERAM_MODE0 = 0, | 
|  | SH_MOBILE_MERAM_MODE1 | 
|  | }; | 
|  |  | 
|  | enum { | 
|  | SH_MOBILE_MERAM_PF_NV = 0, | 
|  | SH_MOBILE_MERAM_PF_RGB, | 
|  | SH_MOBILE_MERAM_PF_NV24 | 
|  | }; | 
|  |  | 
|  |  | 
|  | struct sh_mobile_meram_priv; | 
|  | struct sh_mobile_meram_ops; | 
|  |  | 
|  | struct sh_mobile_meram_info { | 
|  | int				addr_mode; | 
|  | struct sh_mobile_meram_ops	*ops; | 
|  | struct sh_mobile_meram_priv	*priv; | 
|  | struct platform_device		*pdev; | 
|  | }; | 
|  |  | 
|  | /* icb config */ | 
|  | struct sh_mobile_meram_icb { | 
|  | int marker_icb;		/* ICB # for Marker ICB */ | 
|  | int cache_icb;		/* ICB # for Cache ICB */ | 
|  | int meram_offset;	/* MERAM Buffer Offset to use */ | 
|  | int meram_size;		/* MERAM Buffer Size to use */ | 
|  |  | 
|  | int cache_unit;		/* bytes to cache per ICB */ | 
|  | }; | 
|  |  | 
|  | struct sh_mobile_meram_cfg { | 
|  | struct sh_mobile_meram_icb	icb[2]; | 
|  | int				pixelformat; | 
|  | int				current_reg; | 
|  | }; | 
|  |  | 
|  | struct module; | 
|  | struct sh_mobile_meram_ops { | 
|  | struct module	*module; | 
|  | /* register usage of meram */ | 
|  | int (*meram_register)(struct sh_mobile_meram_info *meram_dev, | 
|  | struct sh_mobile_meram_cfg *cfg, | 
|  | int xres, int yres, int pixelformat, | 
|  | unsigned long base_addr_y, | 
|  | unsigned long base_addr_c, | 
|  | unsigned long *icb_addr_y, | 
|  | unsigned long *icb_addr_c, int *pitch); | 
|  |  | 
|  | /* unregister usage of meram */ | 
|  | int (*meram_unregister)(struct sh_mobile_meram_info *meram_dev, | 
|  | struct sh_mobile_meram_cfg *cfg); | 
|  |  | 
|  | /* update meram settings */ | 
|  | int (*meram_update)(struct sh_mobile_meram_info *meram_dev, | 
|  | struct sh_mobile_meram_cfg *cfg, | 
|  | unsigned long base_addr_y, | 
|  | unsigned long base_addr_c, | 
|  | unsigned long *icb_addr_y, | 
|  | unsigned long *icb_addr_c); | 
|  | }; | 
|  |  | 
|  | #endif /* __VIDEO_SH_MOBILE_MERAM_H__  */ |