linux/include/video/sh_mobile_meram.h
<<
>>
Prefs
   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;
  18struct sh_mobile_meram_ops;
  19
  20struct sh_mobile_meram_info {
  21        int                             addr_mode;
  22        struct sh_mobile_meram_ops      *ops;
  23        struct sh_mobile_meram_priv     *priv;
  24        struct platform_device          *pdev;
  25};
  26
  27/* icb config */
  28struct sh_mobile_meram_icb {
  29        int marker_icb;         /* ICB # for Marker ICB */
  30        int cache_icb;          /* ICB # for Cache ICB */
  31        int meram_offset;       /* MERAM Buffer Offset to use */
  32        int meram_size;         /* MERAM Buffer Size to use */
  33
  34        int cache_unit;         /* bytes to cache per ICB */
  35};
  36
  37struct sh_mobile_meram_cfg {
  38        struct sh_mobile_meram_icb      icb[2];
  39        int                             pixelformat;
  40        int                             current_reg;
  41};
  42
  43struct module;
  44struct sh_mobile_meram_ops {
  45        struct module   *module;
  46        /* register usage of meram */
  47        int (*meram_register)(struct sh_mobile_meram_info *meram_dev,
  48                              struct sh_mobile_meram_cfg *cfg,
  49                              int xres, int yres, int pixelformat,
  50                              unsigned long base_addr_y,
  51                              unsigned long base_addr_c,
  52                              unsigned long *icb_addr_y,
  53                              unsigned long *icb_addr_c, int *pitch);
  54
  55        /* unregister usage of meram */
  56        int (*meram_unregister)(struct sh_mobile_meram_info *meram_dev,
  57                                struct sh_mobile_meram_cfg *cfg);
  58
  59        /* update meram settings */
  60        int (*meram_update)(struct sh_mobile_meram_info *meram_dev,
  61                            struct sh_mobile_meram_cfg *cfg,
  62                            unsigned long base_addr_y,
  63                            unsigned long base_addr_c,
  64                            unsigned long *icb_addr_y,
  65                            unsigned long *icb_addr_c);
  66};
  67
  68#endif /* __VIDEO_SH_MOBILE_MERAM_H__  */
  69