Skip to content
Snippets Groups Projects
Select Git revision
  • e7e04c0c8c7ea931d966e5bd349a0b1c836b1ebf
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

check_00index.sh

Blame
  • meson_venc.h 2.47 KiB
    /*
     * Copyright (C) 2016 BayLibre, SAS
     * Author: Neil Armstrong <narmstrong@baylibre.com>
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License as
     * published by the Free Software Foundation; either version 2 of the
     * License, or (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful, but
     * WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     * General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, see <http://www.gnu.org/licenses/>.
     */
    
    /*
     * Video Encoders
     * - ENCI : Interlace Video Encoder
     * - ENCI_DVI : Interlace Video Encoder for DVI/HDMI
     * - ENCP : Progressive Video Encoder
     */
    
    #ifndef __MESON_VENC_H
    #define __MESON_VENC_H
    
    enum {
    	MESON_VENC_MODE_NONE = 0,
    	MESON_VENC_MODE_CVBS_PAL,
    	MESON_VENC_MODE_CVBS_NTSC,
    	MESON_VENC_MODE_HDMI,
    };
    
    struct meson_cvbs_enci_mode {
    	unsigned int mode_tag;
    	unsigned int hso_begin; /* HSO begin position */
    	unsigned int hso_end; /* HSO end position */
    	unsigned int vso_even; /* VSO even line */
    	unsigned int vso_odd; /* VSO odd line */
    	unsigned int macv_max_amp; /* Macrovision max amplitude */
    	unsigned int video_prog_mode;
    	unsigned int video_mode;
    	unsigned int sch_adjust;
    	unsigned int yc_delay;
    	unsigned int pixel_start;
    	unsigned int pixel_end;
    	unsigned int top_field_line_start;
    	unsigned int top_field_line_end;
    	unsigned int bottom_field_line_start;
    	unsigned int bottom_field_line_end;
    	unsigned int video_saturation;
    	unsigned int video_contrast;
    	unsigned int video_brightness;
    	unsigned int video_hue;
    	unsigned int analog_sync_adj;
    };
    
    /* HDMI Clock parameters */
    bool meson_venc_hdmi_supported_vic(int vic);
    bool meson_venc_hdmi_venc_repeat(int vic);
    
    /* CVBS Timings and Parameters */
    extern struct meson_cvbs_enci_mode meson_cvbs_enci_pal;
    extern struct meson_cvbs_enci_mode meson_cvbs_enci_ntsc;
    
    void meson_venci_cvbs_mode_set(struct meson_drm *priv,
    			       struct meson_cvbs_enci_mode *mode);
    void meson_venc_hdmi_mode_set(struct meson_drm *priv, int vic,
    			      struct drm_display_mode *mode);
    unsigned int meson_venci_get_field(struct meson_drm *priv);
    
    void meson_venc_enable_vsync(struct meson_drm *priv);
    void meson_venc_disable_vsync(struct meson_drm *priv);
    
    void meson_venc_init(struct meson_drm *priv);
    
    #endif /* __MESON_VENC_H */