diff options
-rw-r--r-- | drivers/gpu/drm/meson/meson_canvas.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/meson/meson_drv.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/meson/meson_dw_hdmi.c | 25 | ||||
-rw-r--r-- | drivers/gpu/drm/meson/meson_vclk.c | 22 | ||||
-rw-r--r-- | drivers/gpu/drm/meson/meson_venc.c | 25 | ||||
-rw-r--r-- | drivers/gpu/drm/meson/meson_viu.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/meson/meson_vpp.c | 8 |
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 |