meson_venc.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * Copyright (C) 2016 BayLibre, SAS
  3. * Author: Neil Armstrong <narmstrong@baylibre.com>
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License as
  7. * published by the Free Software Foundation; either version 2 of the
  8. * License, or (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful, but
  11. * WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this program; if not, see <http://www.gnu.org/licenses/>.
  17. */
  18. /*
  19. * Video Encoders
  20. * - ENCI : Interlace Video Encoder
  21. * - ENCI_DVI : Interlace Video Encoder for DVI/HDMI
  22. * - ENCP : Progressive Video Encoder
  23. */
  24. #ifndef __MESON_VENC_H
  25. #define __MESON_VENC_H
  26. enum {
  27. MESON_VENC_MODE_NONE = 0,
  28. MESON_VENC_MODE_CVBS_PAL,
  29. MESON_VENC_MODE_CVBS_NTSC,
  30. };
  31. struct meson_cvbs_enci_mode {
  32. unsigned int mode_tag;
  33. unsigned int hso_begin; /* HSO begin position */
  34. unsigned int hso_end; /* HSO end position */
  35. unsigned int vso_even; /* VSO even line */
  36. unsigned int vso_odd; /* VSO odd line */
  37. unsigned int macv_max_amp; /* Macrovision max amplitude */
  38. unsigned int video_prog_mode;
  39. unsigned int video_mode;
  40. unsigned int sch_adjust;
  41. unsigned int yc_delay;
  42. unsigned int pixel_start;
  43. unsigned int pixel_end;
  44. unsigned int top_field_line_start;
  45. unsigned int top_field_line_end;
  46. unsigned int bottom_field_line_start;
  47. unsigned int bottom_field_line_end;
  48. unsigned int video_saturation;
  49. unsigned int video_contrast;
  50. unsigned int video_brightness;
  51. unsigned int video_hue;
  52. unsigned int analog_sync_adj;
  53. };
  54. /* CVBS Timings and Parameters */
  55. extern struct meson_cvbs_enci_mode meson_cvbs_enci_pal;
  56. extern struct meson_cvbs_enci_mode meson_cvbs_enci_ntsc;
  57. void meson_venci_cvbs_mode_set(struct meson_drm *priv,
  58. struct meson_cvbs_enci_mode *mode);
  59. unsigned int meson_venci_get_field(struct meson_drm *priv);
  60. void meson_venc_enable_vsync(struct meson_drm *priv);
  61. void meson_venc_disable_vsync(struct meson_drm *priv);
  62. void meson_venc_init(struct meson_drm *priv);
  63. #endif /* __MESON_VENC_H */