aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/meson/meson_canvas.c4
-rw-r--r--drivers/gpu/drm/meson/meson_drv.c5
-rw-r--r--drivers/gpu/drm/meson/meson_dw_hdmi.c25
-rw-r--r--drivers/gpu/drm/meson/meson_vclk.c22
-rw-r--r--drivers/gpu/drm/meson/meson_venc.c25
-rw-r--r--drivers/gpu/drm/meson/meson_viu.c6
-rw-r--r--drivers/gpu/drm/meson/meson_vpp.c8
7 files changed, 65 insertions, 30 deletions
diff --git a/drivers/gpu/drm/meson/meson_canvas.c b/drivers/gpu/drm/meson/meson_canvas.c
index 4109e36c297f..08f6073d967e 100644
--- a/drivers/gpu/drm/meson/meson_canvas.c
+++ b/drivers/gpu/drm/meson/meson_canvas.c
@@ -24,7 +24,9 @@
24#include "meson_canvas.h" 24#include "meson_canvas.h"
25#include "meson_registers.h" 25#include "meson_registers.h"
26 26
27/* 27/**
28 * DOC: Canvas
29 *
28 * CANVAS is a memory zone where physical memory frames information 30 * CANVAS is a memory zone where physical memory frames information
29 * are stored for the VIU to scanout. 31 * are stored for the VIU to scanout.
30 */ 32 */
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index a2e9f561ac89..75382f5f0fce 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -52,13 +52,14 @@
52#define DRIVER_NAME "meson" 52#define DRIVER_NAME "meson"
53#define DRIVER_DESC "Amlogic Meson DRM driver" 53#define DRIVER_DESC "Amlogic Meson DRM driver"
54 54
55/* 55/**
56 * Video Processing Unit 56 * DOC: Video Processing Unit
57 * 57 *
58 * VPU Handles the Global Video Processing, it includes management of the 58 * VPU Handles the Global Video Processing, it includes management of the
59 * clocks gates, blocks reset lines and power domains. 59 * clocks gates, blocks reset lines and power domains.
60 * 60 *
61 * What is missing : 61 * What is missing :
62 *
62 * - Full reset of entire video processing HW blocks 63 * - Full reset of entire video processing HW blocks
63 * - Scaling and setup of the VPU clock 64 * - Scaling and setup of the VPU clock
64 * - Bus clock gates 65 * - Bus clock gates
diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
index 8851dcbe6a68..7b86eb7776b3 100644
--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
@@ -42,18 +42,25 @@
42#define DRIVER_NAME "meson-dw-hdmi" 42#define DRIVER_NAME "meson-dw-hdmi"
43#define DRIVER_DESC "Amlogic Meson HDMI-TX DRM driver" 43#define DRIVER_DESC "Amlogic Meson HDMI-TX DRM driver"
44 44
45/* 45/**
46 * DOC: HDMI Output
47 *
46 * HDMI Output is composed of : 48 * HDMI Output is composed of :
49 *
47 * - A Synopsys DesignWare HDMI Controller IP 50 * - A Synopsys DesignWare HDMI Controller IP
48 * - A TOP control block controlling the Clocks and PHY 51 * - A TOP control block controlling the Clocks and PHY
49 * - A custom HDMI PHY in order convert video to TMDS signal 52 * - A custom HDMI PHY in order convert video to TMDS signal
50 * ___________________________________ 53 *
51 * | HDMI TOP |<= HPD 54 * .. code::
52 * |___________________________________| 55 *
53 * | | | 56 * ___________________________________
54 * | Synopsys HDMI | HDMI PHY |=> TMDS 57 * | HDMI TOP |<= HPD
55 * | Controller |________________| 58 * |___________________________________|
56 * |___________________________________|<=> DDC 59 * | | |
60 * | Synopsys HDMI | HDMI PHY |=> TMDS
61 * | Controller |________________|
62 * |___________________________________|<=> DDC
63 *
57 * 64 *
58 * The HDMI TOP block only supports HPD sensing. 65 * The HDMI TOP block only supports HPD sensing.
59 * The Synopsys HDMI Controller interrupt is routed 66 * The Synopsys HDMI Controller interrupt is routed
@@ -78,6 +85,7 @@
78 * audio source interfaces. 85 * audio source interfaces.
79 * 86 *
80 * We handle the following features : 87 * We handle the following features :
88 *
81 * - HPD Rise & Fall interrupt 89 * - HPD Rise & Fall interrupt
82 * - HDMI Controller Interrupt 90 * - HDMI Controller Interrupt
83 * - HDMI PHY Init for 480i to 1080p60 91 * - HDMI PHY Init for 480i to 1080p60
@@ -85,6 +93,7 @@
85 * - VENC Mode setup for 480i to 1080p60 93 * - VENC Mode setup for 480i to 1080p60
86 * 94 *
87 * What is missing : 95 * What is missing :
96 *
88 * - PHY, Clock and Mode setup for 2k && 4k modes 97 * - PHY, Clock and Mode setup for 2k && 4k modes
89 * - SDDC Scrambling mode for HDMI 2.0a 98 * - SDDC Scrambling mode for HDMI 2.0a
90 * - HDCP Setup 99 * - HDCP Setup
diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c
index 3731479746ca..47677047e42d 100644
--- a/drivers/gpu/drm/meson/meson_vclk.c
+++ b/drivers/gpu/drm/meson/meson_vclk.c
@@ -23,21 +23,29 @@
23#include "meson_drv.h" 23#include "meson_drv.h"
24#include "meson_vclk.h" 24#include "meson_vclk.h"
25 25
26/* 26/**
27 * DOC: Video Clocks
28 *
27 * VCLK is the "Pixel Clock" frequency generator from a dedicated PLL. 29 * VCLK is the "Pixel Clock" frequency generator from a dedicated PLL.
28 * We handle the following encodings : 30 * We handle the following encodings :
31 *
29 * - CVBS 27MHz generator via the VCLK2 to the VENCI and VDAC blocks 32 * - CVBS 27MHz generator via the VCLK2 to the VENCI and VDAC blocks
30 * - HDMI Pixel Clocks generation 33 * - HDMI Pixel Clocks generation
34 *
31 * What is missing : 35 * What is missing :
36 *
32 * - Genenate Pixel clocks for 2K/4K 10bit formats 37 * - Genenate Pixel clocks for 2K/4K 10bit formats
33 * 38 *
34 * Clock generator scheme : 39 * Clock generator scheme :
35 * __________ _________ _____ 40 *
36 * | | | | | |--ENCI 41 * .. code::
37 * | HDMI PLL |-| PLL_DIV |--- VCLK--| |--ENCL 42 *
38 * |__________| |_________| \ | MUX |--ENCP 43 * __________ _________ _____
39 * --VCLK2-| |--VDAC 44 * | | | | | |--ENCI
40 * |_____|--HDMI-TX 45 * | HDMI PLL |-| PLL_DIV |--- VCLK--| |--ENCL
46 * |__________| |_________| \ | MUX |--ENCP
47 * --VCLK2-| |--VDAC
48 * |_____|--HDMI-TX
41 * 49 *
42 * Final clocks can take input for either VCLK or VCLK2, but 50 * Final clocks can take input for either VCLK or VCLK2, but
43 * VCLK is the preferred path for HDMI clocking and VCLK2 is the 51 * VCLK is the preferred path for HDMI clocking and VCLK2 is the
diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
index 31dc275bf115..9509017dbded 100644
--- a/drivers/gpu/drm/meson/meson_venc.c
+++ b/drivers/gpu/drm/meson/meson_venc.c
@@ -26,26 +26,33 @@
26#include "meson_vclk.h" 26#include "meson_vclk.h"
27#include "meson_registers.h" 27#include "meson_registers.h"
28 28
29/* 29/**
30 * DOC: Video Encoder
31 *
30 * VENC Handle the pixels encoding to the output formats. 32 * VENC Handle the pixels encoding to the output formats.
31 * We handle the following encodings : 33 * We handle the following encodings :
34 *
32 * - CVBS Encoding via the ENCI encoder and VDAC digital to analog converter 35 * - CVBS Encoding via the ENCI encoder and VDAC digital to analog converter
33 * - TMDS/HDMI Encoding via ENCI_DIV and ENCP 36 * - TMDS/HDMI Encoding via ENCI_DIV and ENCP
34 * - Setup of more clock rates for HDMI modes 37 * - Setup of more clock rates for HDMI modes
35 * 38 *
36 * What is missing : 39 * What is missing :
40 *
37 * - LCD Panel encoding via ENCL 41 * - LCD Panel encoding via ENCL
38 * - TV Panel encoding via ENCT 42 * - TV Panel encoding via ENCT
39 * 43 *
40 * VENC paths : 44 * VENC paths :
41 * _____ _____ ____________________ 45 *
42 * vd1---| |-| | | VENC /---------|----VDAC 46 * .. code::
43 * vd2---| VIU |-| VPP |-|-----ENCI/-ENCI_DVI-|\ 47 *
44 * osd1--| |-| | | \ | X--HDMI-TX 48 * _____ _____ ____________________
45 * osd2--|_____|-|_____| | |\-ENCP--ENCP_DVI-|/ 49 * vd1---| |-| | | VENC /---------|----VDAC
46 * | | | 50 * vd2---| VIU |-| VPP |-|-----ENCI/-ENCI_DVI-|-|
47 * | \--ENCL-----------|----LVDS 51 * osd1--| |-| | | \ | X--HDMI-TX
48 * |____________________| 52 * osd2--|_____|-|_____| | |\-ENCP--ENCP_DVI-|-|
53 * | | |
54 * | \--ENCL-----------|----LVDS
55 * |____________________|
49 * 56 *
50 * The ENCI is designed for PAl or NTSC encoding and can go through the VDAC 57 * The ENCI is designed for PAl or NTSC encoding and can go through the VDAC
51 * directly for CVBS encoding or through the ENCI_DVI encoder for HDMI. 58 * directly for CVBS encoding or through the ENCI_DVI encoder for HDMI.
diff --git a/drivers/gpu/drm/meson/meson_viu.c b/drivers/gpu/drm/meson/meson_viu.c
index a6de8ba7af19..6bcfa527c180 100644
--- a/drivers/gpu/drm/meson/meson_viu.c
+++ b/drivers/gpu/drm/meson/meson_viu.c
@@ -28,9 +28,12 @@
28#include "meson_canvas.h" 28#include "meson_canvas.h"
29#include "meson_registers.h" 29#include "meson_registers.h"
30 30
31/* 31/**
32 * DOC: Video Input Unit
33 *
32 * VIU Handles the Pixel scanout and the basic Colorspace conversions 34 * VIU Handles the Pixel scanout and the basic Colorspace conversions
33 * We handle the following features : 35 * We handle the following features :
36 *
34 * - OSD1 RGB565/RGB888/xRGB8888 scanout 37 * - OSD1 RGB565/RGB888/xRGB8888 scanout
35 * - RGB conversion to x/cb/cr 38 * - RGB conversion to x/cb/cr
36 * - Progressive or Interlace buffer scanout 39 * - Progressive or Interlace buffer scanout
@@ -38,6 +41,7 @@
38 * - HDR OSD matrix for GXL/GXM 41 * - HDR OSD matrix for GXL/GXM
39 * 42 *
40 * What is missing : 43 * What is missing :
44 *
41 * - BGR888/xBGR8888/BGRx8888/BGRx8888 modes 45 * - BGR888/xBGR8888/BGRx8888/BGRx8888 modes
42 * - YUV4:2:2 Y0CbY1Cr scanout 46 * - YUV4:2:2 Y0CbY1Cr scanout
43 * - Conversion to YUV 4:4:4 from 4:2:2 input 47 * - Conversion to YUV 4:4:4 from 4:2:2 input
diff --git a/drivers/gpu/drm/meson/meson_vpp.c b/drivers/gpu/drm/meson/meson_vpp.c
index 671909d8672e..27356f81a0ab 100644
--- a/drivers/gpu/drm/meson/meson_vpp.c
+++ b/drivers/gpu/drm/meson/meson_vpp.c
@@ -25,16 +25,20 @@
25#include "meson_vpp.h" 25#include "meson_vpp.h"
26#include "meson_registers.h" 26#include "meson_registers.h"
27 27
28/* 28/**
29 * DOC: Video Post Processing
30 *
29 * VPP Handles all the Post Processing after the Scanout from the VIU 31 * VPP Handles all the Post Processing after the Scanout from the VIU
30 * We handle the following post processings : 32 * We handle the following post processings :
31 * - Postblend : Blends the OSD1 only 33 *
34 * - Postblend, Blends the OSD1 only
32 * We exclude OSD2, VS1, VS1 and Preblend output 35 * We exclude OSD2, VS1, VS1 and Preblend output
33 * - Vertical OSD Scaler for OSD1 only, we disable vertical scaler and 36 * - Vertical OSD Scaler for OSD1 only, we disable vertical scaler and
34 * use it only for interlace scanout 37 * use it only for interlace scanout
35 * - Intermediate FIFO with default Amlogic values 38 * - Intermediate FIFO with default Amlogic values
36 * 39 *
37 * What is missing : 40 * What is missing :
41 *
38 * - Preblend for video overlay pre-scaling 42 * - Preblend for video overlay pre-scaling
39 * - OSD2 support for cursor framebuffer 43 * - OSD2 support for cursor framebuffer
40 * - Video pre-scaling before postblend 44 * - Video pre-scaling before postblend