···2424#include "meson_canvas.h"2525#include "meson_registers.h"26262727-/*2727+/**2828+ * DOC: Canvas2929+ *2830 * CANVAS is a memory zone where physical memory frames information2931 * are stored for the VIU to scanout.3032 */
+3-2
drivers/gpu/drm/meson/meson_drv.c
···5252#define DRIVER_NAME "meson"5353#define DRIVER_DESC "Amlogic Meson DRM driver"54545555-/*5656- * Video Processing Unit5555+/**5656+ * DOC: Video Processing Unit5757 *5858 * VPU Handles the Global Video Processing, it includes management of the5959 * clocks gates, blocks reset lines and power domains.6060 *6161 * What is missing :6262+ *6263 * - Full reset of entire video processing HW blocks6364 * - Scaling and setup of the VPU clock6465 * - Bus clock gates
+17-8
drivers/gpu/drm/meson/meson_dw_hdmi.c
···4242#define DRIVER_NAME "meson-dw-hdmi"4343#define DRIVER_DESC "Amlogic Meson HDMI-TX DRM driver"44444545-/*4545+/**4646+ * DOC: HDMI Output4747+ *4648 * HDMI Output is composed of :4949+ *4750 * - A Synopsys DesignWare HDMI Controller IP4851 * - A TOP control block controlling the Clocks and PHY4952 * - A custom HDMI PHY in order convert video to TMDS signal5050- * ___________________________________5151- * | HDMI TOP |<= HPD5252- * |___________________________________|5353- * | | |5454- * | Synopsys HDMI | HDMI PHY |=> TMDS5555- * | Controller |________________|5656- * |___________________________________|<=> DDC5353+ *5454+ * .. code::5555+ *5656+ * ___________________________________5757+ * | HDMI TOP |<= HPD5858+ * |___________________________________|5959+ * | | |6060+ * | Synopsys HDMI | HDMI PHY |=> TMDS6161+ * | Controller |________________|6262+ * |___________________________________|<=> DDC6363+ *5764 *5865 * The HDMI TOP block only supports HPD sensing.5966 * The Synopsys HDMI Controller interrupt is routed···8578 * audio source interfaces.8679 *8780 * We handle the following features :8181+ *8882 * - HPD Rise & Fall interrupt8983 * - HDMI Controller Interrupt9084 * - HDMI PHY Init for 480i to 1080p60···9385 * - VENC Mode setup for 480i to 1080p609486 *9587 * What is missing :8888+ *9689 * - PHY, Clock and Mode setup for 2k && 4k modes9790 * - SDDC Scrambling mode for HDMI 2.0a9891 * - HDCP Setup
+15-7
drivers/gpu/drm/meson/meson_vclk.c
···2323#include "meson_drv.h"2424#include "meson_vclk.h"25252626-/*2626+/**2727+ * DOC: Video Clocks2828+ *2729 * VCLK is the "Pixel Clock" frequency generator from a dedicated PLL.2830 * We handle the following encodings :3131+ *2932 * - CVBS 27MHz generator via the VCLK2 to the VENCI and VDAC blocks3033 * - HDMI Pixel Clocks generation3434+ *3135 * What is missing :3636+ *3237 * - Genenate Pixel clocks for 2K/4K 10bit formats3338 *3439 * Clock generator scheme :3535- * __________ _________ _____3636- * | | | | | |--ENCI3737- * | HDMI PLL |-| PLL_DIV |--- VCLK--| |--ENCL3838- * |__________| |_________| \ | MUX |--ENCP3939- * --VCLK2-| |--VDAC4040- * |_____|--HDMI-TX4040+ *4141+ * .. code::4242+ *4343+ * __________ _________ _____4444+ * | | | | | |--ENCI4545+ * | HDMI PLL |-| PLL_DIV |--- VCLK--| |--ENCL4646+ * |__________| |_________| \ | MUX |--ENCP4747+ * --VCLK2-| |--VDAC4848+ * |_____|--HDMI-TX4149 *4250 * Final clocks can take input for either VCLK or VCLK2, but4351 * VCLK is the preferred path for HDMI clocking and VCLK2 is the
+16-9
drivers/gpu/drm/meson/meson_venc.c
···2626#include "meson_vclk.h"2727#include "meson_registers.h"28282929-/*2929+/**3030+ * DOC: Video Encoder3131+ *3032 * VENC Handle the pixels encoding to the output formats.3133 * We handle the following encodings :3434+ *3235 * - CVBS Encoding via the ENCI encoder and VDAC digital to analog converter3336 * - TMDS/HDMI Encoding via ENCI_DIV and ENCP3437 * - Setup of more clock rates for HDMI modes3538 *3639 * What is missing :4040+ *3741 * - LCD Panel encoding via ENCL3842 * - TV Panel encoding via ENCT3943 *4044 * VENC paths :4141- * _____ _____ ____________________4242- * vd1---| |-| | | VENC /---------|----VDAC4343- * vd2---| VIU |-| VPP |-|-----ENCI/-ENCI_DVI-|\4444- * osd1--| |-| | | \ | X--HDMI-TX4545- * osd2--|_____|-|_____| | |\-ENCP--ENCP_DVI-|/4646- * | | |4747- * | \--ENCL-----------|----LVDS4848- * |____________________|4545+ *4646+ * .. code::4747+ *4848+ * _____ _____ ____________________4949+ * vd1---| |-| | | VENC /---------|----VDAC5050+ * vd2---| VIU |-| VPP |-|-----ENCI/-ENCI_DVI-|-|5151+ * osd1--| |-| | | \ | X--HDMI-TX5252+ * osd2--|_____|-|_____| | |\-ENCP--ENCP_DVI-|-|5353+ * | | |5454+ * | \--ENCL-----------|----LVDS5555+ * |____________________|4956 *5057 * The ENCI is designed for PAl or NTSC encoding and can go through the VDAC5158 * directly for CVBS encoding or through the ENCI_DVI encoder for HDMI.
+5-1
drivers/gpu/drm/meson/meson_viu.c
···2828#include "meson_canvas.h"2929#include "meson_registers.h"30303131-/*3131+/**3232+ * DOC: Video Input Unit3333+ *3234 * VIU Handles the Pixel scanout and the basic Colorspace conversions3335 * We handle the following features :3636+ *3437 * - OSD1 RGB565/RGB888/xRGB8888 scanout3538 * - RGB conversion to x/cb/cr3639 * - Progressive or Interlace buffer scanout···4138 * - HDR OSD matrix for GXL/GXM4239 *4340 * What is missing :4141+ *4442 * - BGR888/xBGR8888/BGRx8888/BGRx8888 modes4543 * - YUV4:2:2 Y0CbY1Cr scanout4644 * - Conversion to YUV 4:4:4 from 4:2:2 input
+6-2
drivers/gpu/drm/meson/meson_vpp.c
···2525#include "meson_vpp.h"2626#include "meson_registers.h"27272828-/*2828+/**2929+ * DOC: Video Post Processing3030+ *2931 * VPP Handles all the Post Processing after the Scanout from the VIU3032 * We handle the following post processings :3131- * - Postblend : Blends the OSD1 only3333+ *3434+ * - Postblend, Blends the OSD1 only3235 * We exclude OSD2, VS1, VS1 and Preblend output3336 * - Vertical OSD Scaler for OSD1 only, we disable vertical scaler and3437 * use it only for interlace scanout3538 * - Intermediate FIFO with default Amlogic values3639 *3740 * What is missing :4141+ *3842 * - Preblend for video overlay pre-scaling3943 * - OSD2 support for cursor framebuffer4044 * - Video pre-scaling before postblend