cdf88b9072
The meram_register(), meram_unregister() and meram_update() operations check that the pointers they get from the caller are not NULL. Those checks can be remove, as the caller already ensures that the pointers are valid. The platform sanity checks can also be removed, as the operations can't be accessed without valid platform data anyway. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
63 lines
1.5 KiB
C
63 lines
1.5 KiB
C
#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 - MERAM platform data
|
|
* @reserved_icbs: Bitmask of reserved ICBs (for instance used through UIO)
|
|
*/
|
|
struct sh_mobile_meram_info {
|
|
int addr_mode;
|
|
u32 reserved_icbs;
|
|
struct sh_mobile_meram_ops *ops;
|
|
struct sh_mobile_meram_priv *priv;
|
|
struct platform_device *pdev;
|
|
};
|
|
|
|
/* icb config */
|
|
struct sh_mobile_meram_icb_cfg {
|
|
unsigned int meram_size; /* MERAM Buffer Size to use */
|
|
};
|
|
|
|
struct sh_mobile_meram_cfg {
|
|
struct sh_mobile_meram_icb_cfg icb[2];
|
|
};
|
|
|
|
struct module;
|
|
struct sh_mobile_meram_ops {
|
|
struct module *module;
|
|
/* register usage of meram */
|
|
void *(*meram_register)(struct sh_mobile_meram_info *meram_dev,
|
|
const struct sh_mobile_meram_cfg *cfg,
|
|
unsigned int xres, unsigned int yres,
|
|
unsigned int pixelformat,
|
|
unsigned int *pitch);
|
|
|
|
/* unregister usage of meram */
|
|
void (*meram_unregister)(struct sh_mobile_meram_info *meram_dev,
|
|
void *data);
|
|
|
|
/* update meram settings */
|
|
void (*meram_update)(struct sh_mobile_meram_info *meram_dev, void *data,
|
|
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__ */
|