cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

meson_venc.h (2113B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * Copyright (C) 2016 BayLibre, SAS
      4 * Author: Neil Armstrong <narmstrong@baylibre.com>
      5 */
      6
      7/*
      8 * Video Encoders
      9 * - ENCI : Interlace Video Encoder
     10 * - ENCI_DVI : Interlace Video Encoder for DVI/HDMI
     11 * - ENCP : Progressive Video Encoder
     12 */
     13
     14#ifndef __MESON_VENC_H
     15#define __MESON_VENC_H
     16
     17struct drm_display_mode;
     18
     19enum {
     20	MESON_VENC_MODE_NONE = 0,
     21	MESON_VENC_MODE_CVBS_PAL,
     22	MESON_VENC_MODE_CVBS_NTSC,
     23	MESON_VENC_MODE_HDMI,
     24};
     25
     26struct meson_cvbs_enci_mode {
     27	unsigned int mode_tag;
     28	unsigned int hso_begin; /* HSO begin position */
     29	unsigned int hso_end; /* HSO end position */
     30	unsigned int vso_even; /* VSO even line */
     31	unsigned int vso_odd; /* VSO odd line */
     32	unsigned int macv_max_amp; /* Macrovision max amplitude */
     33	unsigned int video_prog_mode;
     34	unsigned int video_mode;
     35	unsigned int sch_adjust;
     36	unsigned int yc_delay;
     37	unsigned int pixel_start;
     38	unsigned int pixel_end;
     39	unsigned int top_field_line_start;
     40	unsigned int top_field_line_end;
     41	unsigned int bottom_field_line_start;
     42	unsigned int bottom_field_line_end;
     43	unsigned int video_saturation;
     44	unsigned int video_contrast;
     45	unsigned int video_brightness;
     46	unsigned int video_hue;
     47	unsigned int analog_sync_adj;
     48};
     49
     50/* HDMI Clock parameters */
     51enum drm_mode_status
     52meson_venc_hdmi_supported_mode(const struct drm_display_mode *mode);
     53bool meson_venc_hdmi_supported_vic(int vic);
     54bool meson_venc_hdmi_venc_repeat(int vic);
     55
     56/* CVBS Timings and Parameters */
     57extern struct meson_cvbs_enci_mode meson_cvbs_enci_pal;
     58extern struct meson_cvbs_enci_mode meson_cvbs_enci_ntsc;
     59
     60void meson_venci_cvbs_mode_set(struct meson_drm *priv,
     61			       struct meson_cvbs_enci_mode *mode);
     62void meson_venc_hdmi_mode_set(struct meson_drm *priv, int vic,
     63			      unsigned int ycrcb_map,
     64			      bool yuv420_mode,
     65			      const struct drm_display_mode *mode);
     66unsigned int meson_venci_get_field(struct meson_drm *priv);
     67
     68void meson_venc_enable_vsync(struct meson_drm *priv);
     69void meson_venc_disable_vsync(struct meson_drm *priv);
     70
     71void meson_venc_init(struct meson_drm *priv);
     72
     73#endif /* __MESON_VENC_H */