msm_vidc.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020-2021,, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef _MSM_VIDC_H_
  6. #define _MSM_VIDC_H_
  7. #include <linux/videodev2.h>
  8. #include <media/media-device.h>
  9. union msm_v4l2_cmd {
  10. struct v4l2_decoder_cmd dec;
  11. struct v4l2_encoder_cmd enc;
  12. };
  13. void *msm_vidc_open(void *core, u32 session_type);
  14. int msm_vidc_close(void *instance);
  15. int msm_vidc_suspend(int core_id);
  16. int msm_vidc_querycap(void *instance, struct v4l2_capability *cap);
  17. int msm_vidc_enum_fmt(void *instance, struct v4l2_fmtdesc *f);
  18. int msm_vidc_s_fmt(void *instance, struct v4l2_format *f);
  19. int msm_vidc_g_fmt(void *instance, struct v4l2_format *f);
  20. int msm_vidc_s_selection(void* instance, struct v4l2_selection* s);
  21. int msm_vidc_g_selection(void* instance, struct v4l2_selection* s);
  22. int msm_vidc_s_param(void *instance, struct v4l2_streamparm *sp);
  23. int msm_vidc_g_param(void *instance, struct v4l2_streamparm *sp);
  24. int msm_vidc_s_ctrl(void *instance, struct v4l2_control *a);
  25. int msm_vidc_s_ext_ctrl(void *instance, struct v4l2_ext_controls *a);
  26. int msm_vidc_g_ext_ctrl(void *instance, struct v4l2_ext_controls *a);
  27. int msm_vidc_g_ctrl(void *instance, struct v4l2_control *a);
  28. int msm_vidc_reqbufs(void *instance, struct v4l2_requestbuffers *b);
  29. int msm_vidc_release_buffer(void *instance, int buffer_type,
  30. unsigned int buffer_index);
  31. int msm_vidc_qbuf(void *instance, struct media_device *mdev,
  32. struct v4l2_buffer *b);
  33. int msm_vidc_dqbuf(void *instance, struct v4l2_buffer *b);
  34. int msm_vidc_streamon(void *instance, enum v4l2_buf_type i);
  35. int msm_vidc_query_ctrl(void *instance, struct v4l2_queryctrl *ctrl);
  36. int msm_vidc_query_menu(void *instance, struct v4l2_querymenu *qmenu);
  37. int msm_vidc_streamoff(void *instance, enum v4l2_buf_type i);
  38. int msm_vidc_cmd(void *instance, union msm_v4l2_cmd *cmd);
  39. int msm_vidc_poll(void *instance, struct file *filp,
  40. struct poll_table_struct *pt);
  41. int msm_vidc_subscribe_event(void *instance,
  42. const struct v4l2_event_subscription *sub);
  43. int msm_vidc_unsubscribe_event(void *instance,
  44. const struct v4l2_event_subscription *sub);
  45. int msm_vidc_dqevent(void *instance, struct v4l2_event *event);
  46. int msm_vidc_g_crop(void *instance, struct v4l2_crop *a);
  47. int msm_vidc_enum_framesizes(void *instance, struct v4l2_frmsizeenum *fsize);
  48. int msm_vidc_enum_frameintervals(void *instance, struct v4l2_frmivalenum *fival);
  49. #endif