123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #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__ */
|