sh_mobile_meram.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef __VIDEO_SH_MOBILE_MERAM_H__
  2. #define __VIDEO_SH_MOBILE_MERAM_H__
  3. /* For sh_mobile_meram_info.addr_mode */
  4. enum {
  5. SH_MOBILE_MERAM_MODE0 = 0,
  6. SH_MOBILE_MERAM_MODE1
  7. };
  8. enum {
  9. SH_MOBILE_MERAM_PF_NV = 0,
  10. SH_MOBILE_MERAM_PF_RGB,
  11. SH_MOBILE_MERAM_PF_NV24
  12. };
  13. struct sh_mobile_meram_priv;
  14. struct sh_mobile_meram_ops;
  15. struct sh_mobile_meram_info {
  16. int addr_mode;
  17. struct sh_mobile_meram_ops *ops;
  18. struct sh_mobile_meram_priv *priv;
  19. struct platform_device *pdev;
  20. };
  21. /* icb config */
  22. struct sh_mobile_meram_icb_cfg {
  23. unsigned int marker_icb; /* ICB # for Marker ICB */
  24. unsigned int cache_icb; /* ICB # for Cache ICB */
  25. unsigned int meram_offset; /* MERAM Buffer Offset to use */
  26. unsigned int meram_size; /* MERAM Buffer Size to use */
  27. };
  28. struct sh_mobile_meram_cfg {
  29. struct sh_mobile_meram_icb_cfg icb[2];
  30. };
  31. struct module;
  32. struct sh_mobile_meram_ops {
  33. struct module *module;
  34. /* register usage of meram */
  35. int (*meram_register)(struct sh_mobile_meram_info *meram_dev,
  36. const struct sh_mobile_meram_cfg *cfg,
  37. unsigned int xres, unsigned int yres,
  38. unsigned int pixelformat,
  39. unsigned long base_addr_y,
  40. unsigned long base_addr_c,
  41. unsigned long *icb_addr_y,
  42. unsigned long *icb_addr_c,
  43. unsigned int *pitch);
  44. /* unregister usage of meram */
  45. int (*meram_unregister)(struct sh_mobile_meram_info *meram_dev,
  46. const struct sh_mobile_meram_cfg *cfg);
  47. /* update meram settings */
  48. int (*meram_update)(struct sh_mobile_meram_info *meram_dev,
  49. const struct sh_mobile_meram_cfg *cfg,
  50. unsigned long base_addr_y,
  51. unsigned long base_addr_c,
  52. unsigned long *icb_addr_y,
  53. unsigned long *icb_addr_c);
  54. };
  55. #endif /* __VIDEO_SH_MOBILE_MERAM_H__ */