vsp1.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * vsp1.h -- R-Car VSP1 API
  3. *
  4. * Copyright (C) 2015 Renesas Electronics Corporation
  5. *
  6. * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation; either version 2 of the License, or
  11. * (at your option) any later version.
  12. */
  13. #ifndef __MEDIA_VSP1_H__
  14. #define __MEDIA_VSP1_H__
  15. #include <linux/scatterlist.h>
  16. #include <linux/types.h>
  17. #include <linux/videodev2.h>
  18. struct device;
  19. int vsp1_du_init(struct device *dev);
  20. /**
  21. * struct vsp1_du_lif_config - VSP LIF configuration
  22. * @width: output frame width
  23. * @height: output frame height
  24. * @callback: frame completion callback function (optional). When a callback
  25. * is provided, the VSP driver guarantees that it will be called once
  26. * and only once for each vsp1_du_atomic_flush() call.
  27. * @callback_data: data to be passed to the frame completion callback
  28. */
  29. struct vsp1_du_lif_config {
  30. unsigned int width;
  31. unsigned int height;
  32. void (*callback)(void *);
  33. void *callback_data;
  34. };
  35. int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg);
  36. struct vsp1_du_atomic_config {
  37. u32 pixelformat;
  38. unsigned int pitch;
  39. dma_addr_t mem[3];
  40. struct v4l2_rect src;
  41. struct v4l2_rect dst;
  42. unsigned int alpha;
  43. unsigned int zpos;
  44. };
  45. void vsp1_du_atomic_begin(struct device *dev);
  46. int vsp1_du_atomic_update(struct device *dev, unsigned int rpf,
  47. const struct vsp1_du_atomic_config *cfg);
  48. void vsp1_du_atomic_flush(struct device *dev);
  49. int vsp1_du_map_sg(struct device *dev, struct sg_table *sgt);
  50. void vsp1_du_unmap_sg(struct device *dev, struct sg_table *sgt);
  51. #endif /* __MEDIA_VSP1_H__ */