Skip to content

Commit 2f34c12

Browse files
committed
Merge tag 'drm-for-v4.12' of git://people.freedesktop.org/~airlied/linux
Pull drm u pdates from Dave Airlie: "This is the main drm pull request for v4.12. Apart from two fixes pulls, everything should have been in drm-next for at least 2 weeks. The biggest thing in here is AMD released the public headers for their upcoming VEGA GPUs. These as always are quite a sizeable chunk of header files. They've also added initial non-display support for those GPUs, though they aren't available in production yet. Otherwise it's pretty much normal. New bridge drivers: - megachips-stdpxxxx-ge-b850v3-fw LVDS->DP++ - generic LVDS bridge support. Core: - Displayport link train failure reporting to userspace - debugfs interface cleaned up - subsystem TODO in kerneldoc now - Extended fbdev support (flipping and vblank wait) - drm_platform removed - EDP CRC support in helper - HF-VSDB SCDC support in EDID parser - Lots of code cleanups and header extraction - Thunderbolt external GPU awareness - Atomic helper improvements - Documentation improvements panel: - Sitronix and Samsung new panel support amdgpu: - Preliminary vega10 support - Multi-level page table support - GPU sensor support for userspace - PRT support for sparse buffers - SR-IOV improvements - Non-contig VRAM CPU mapping i915: - Atomic modesetting enabled by default on Gen5+ - LSPCON improvements - Atomic state handling for cdclk - GPU reset improvements - In-kernel unit tests - Geminilake improvements and color manager support - Designware i2c fixes - vblank evasion improvements - Hotplug safe connector iterators - GVT scheduler QoS support - GVT Kabylake support nouveau: - Acceleration support for Pascal (GP10x). - Rearchitecture of code handling proprietary signed firmware - Fix GTX 970 with odd MMU configuration - GP10B support - GP107 acceleration support vmwgfx: - Atomic modesetting support for vmwgfx omapdrm: - Support for render nodes - Refactor omapdss code - Fix some probe ordering issues - Fix too dark RGB565 rendering sunxi: - prelim rework for multiple pipes. mali-dp: - Color management support - Plane scaling - Power management improvements imx-drm: - Prefetch Resolve Engine/Gasket on i.MX6QP - Deferred plane disabling - Separate alpha support mediatek: - Mediatek SoC MT2701 support rcar-du: - Gen3 HDMI support msm: - 4k support for newer chips - OPP bindings for gpu - prep work for per-process pagetables vc4: - HDMI audio support - fixes qxl: - minor fixes. dw-hdmi: - PHY improvements - CSC fixes - Amlogic GX SoC support" * tag 'drm-for-v4.12' of git://people.freedesktop.org/~airlied/linux: (1778 commits) drm/nouveau/fb/gf100-: Fix 32 bit wraparound in new ram detection drm/nouveau/secboot/gm20b: fix the error return code in gm20b_secboot_tegra_read_wpr() drm/nouveau/kms: Increase max retries in scanout position queries. drm/nouveau/bios/bitP: check that table is long enough for optional pointers drm/nouveau/fifo/nv40: no ctxsw for pre-nv44 mpeg engine drm: mali-dp: use div_u64 for expensive 64-bit divisions drm/i915: Confirm the request is still active before adding it to the await drm/i915: Avoid busy-spinning on VLV_GLTC_PW_STATUS mmio drm/i915/selftests: Allocate inode/file dynamically drm/i915: Fix system hang with EI UP masked on Haswell drm/i915: checking for NULL instead of IS_ERR() in mock selftests drm/i915: Perform link quality check unconditionally during long pulse drm/i915: Fix use after free in lpe_audio_platdev_destroy() drm/i915: Use the right mapping_gfp_mask for final shmem allocation drm/i915: Make legacy cursor updates more unsynced drm/i915: Apply a cond_resched() to the saturated signaler drm/i915: Park the signaler before sleeping drm: mali-dp: Check the mclk rate and allow up/down scaling drm: mali-dp: Enable image enhancement when scaling drm: mali-dp: Add plane upscaling support ...
2 parents a3719f3 + 8b03d1e commit 2f34c12

1,060 files changed

Lines changed: 456334 additions & 27130 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Documentation/EDID/edid.S‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@
5959
/* Fixed header pattern */
6060
header: .byte 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00
6161

62-
mfg_id: .word swap16(mfgname2id(MFG_LNX1, MFG_LNX2, MFG_LNX3))
62+
mfg_id: .hword swap16(mfgname2id(MFG_LNX1, MFG_LNX2, MFG_LNX3))
6363

64-
prod_code: .word 0
64+
prod_code: .hword 0
6565

6666
/* Serial number. 32 bits, little endian. */
6767
serial_number: .long SERIAL
@@ -177,7 +177,7 @@ std_vres: .byte (XY_RATIO<<6)+VFREQ-60
177177

178178
descriptor1:
179179
/* Pixel clock in 10 kHz units. (0.-655.35 MHz, little-endian) */
180-
clock: .word CLOCK/10
180+
clock: .hword CLOCK/10
181181

182182
/* Horizontal active pixels 8 lsbits (0-4095) */
183183
x_act_lsb: .byte XPIX&0xff
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
Amlogic specific extensions to the Synopsys Designware HDMI Controller
2+
======================================================================
3+
4+
The Amlogic Meson Synopsys Designware Integration is composed of :
5+
- A Synopsys DesignWare HDMI Controller IP
6+
- A TOP control block controlling the Clocks and PHY
7+
- A custom HDMI PHY in order to convert video to TMDS signal
8+
___________________________________
9+
| HDMI TOP |<= HPD
10+
|___________________________________|
11+
| | |
12+
| Synopsys HDMI | HDMI PHY |=> TMDS
13+
| Controller |________________|
14+
|___________________________________|<=> DDC
15+
16+
The HDMI TOP block only supports HPD sensing.
17+
The Synopsys HDMI Controller interrupt is routed through the
18+
TOP Block interrupt.
19+
Communication to the TOP Block and the Synopsys HDMI Controller is done
20+
via a pair of dedicated addr+read/write registers.
21+
The HDMI PHY is configured by registers in the HHI register block.
22+
23+
Pixel data arrives in 4:4:4 format from the VENC block and the VPU HDMI mux
24+
selects either the ENCI encoder for the 576i or 480i formats or the ENCP
25+
encoder for all the other formats including interlaced HD formats.
26+
27+
The VENC uses a DVI encoder on top of the ENCI or ENCP encoders to generate
28+
DVI timings for the HDMI controller.
29+
30+
Amlogic Meson GXBB, GXL and GXM SoCs families embeds the Synopsys DesignWare
31+
HDMI TX IP version 2.01a with HDCP and I2C & S/PDIF
32+
audio source interfaces.
33+
34+
Required properties:
35+
- compatible: value should be different for each SoC family as :
36+
- GXBB (S905) : "amlogic,meson-gxbb-dw-hdmi"
37+
- GXL (S905X, S905D) : "amlogic,meson-gxl-dw-hdmi"
38+
- GXM (S912) : "amlogic,meson-gxm-dw-hdmi"
39+
followed by the common "amlogic,meson-gx-dw-hdmi"
40+
- reg: Physical base address and length of the controller's registers.
41+
- interrupts: The HDMI interrupt number
42+
- clocks, clock-names : must have the phandles to the HDMI iahb and isfr clocks,
43+
and the Amlogic Meson venci clocks as described in
44+
Documentation/devicetree/bindings/clock/clock-bindings.txt,
45+
the clocks are soc specific, the clock-names should be "iahb", "isfr", "venci"
46+
- resets, resets-names: must have the phandles to the HDMI apb, glue and phy
47+
resets as described in :
48+
Documentation/devicetree/bindings/reset/reset.txt,
49+
the reset-names should be "hdmitx_apb", "hdmitx", "hdmitx_phy"
50+
51+
Required nodes:
52+
53+
The connections to the HDMI ports are modeled using the OF graph
54+
bindings specified in Documentation/devicetree/bindings/graph.txt.
55+
56+
The following table lists for each supported model the port number
57+
corresponding to each HDMI output and input.
58+
59+
Port 0 Port 1
60+
-----------------------------------------
61+
S905 (GXBB) VENC Input TMDS Output
62+
S905X (GXL) VENC Input TMDS Output
63+
S905D (GXL) VENC Input TMDS Output
64+
S912 (GXM) VENC Input TMDS Output
65+
66+
Example:
67+
68+
hdmi-connector {
69+
compatible = "hdmi-connector";
70+
type = "a";
71+
72+
port {
73+
hdmi_connector_in: endpoint {
74+
remote-endpoint = <&hdmi_tx_tmds_out>;
75+
};
76+
};
77+
};
78+
79+
hdmi_tx: hdmi-tx@c883a000 {
80+
compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
81+
reg = <0x0 0xc883a000 0x0 0x1c>;
82+
interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
83+
resets = <&reset RESET_HDMITX_CAPB3>,
84+
<&reset RESET_HDMI_SYSTEM_RESET>,
85+
<&reset RESET_HDMI_TX>;
86+
reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
87+
clocks = <&clkc CLKID_HDMI_PCLK>,
88+
<&clkc CLKID_CLK81>,
89+
<&clkc CLKID_GCLK_VENCI_INT0>;
90+
clock-names = "isfr", "iahb", "venci";
91+
#address-cells = <1>;
92+
#size-cells = <0>;
93+
94+
/* VPU VENC Input */
95+
hdmi_tx_venc_port: port@0 {
96+
reg = <0>;
97+
98+
hdmi_tx_in: endpoint {
99+
remote-endpoint = <&hdmi_tx_out>;
100+
};
101+
};
102+
103+
/* TMDS Output */
104+
hdmi_tx_tmds_port: port@1 {
105+
reg = <1>;
106+
107+
hdmi_tx_tmds_out: endpoint {
108+
remote-endpoint = <&hdmi_connector_in>;
109+
};
110+
};
111+
};

‎Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ Optional properties for HDMI:
3434
- hpd-gpios: The GPIO pin for HDMI hotplug detect (if it doesn't appear
3535
as an interrupt/status bit in the HDMI controller
3636
itself). See bindings/pinctrl/brcm,bcm2835-gpio.txt
37+
- dmas: Should contain one entry pointing to the DMA channel used to
38+
transfer audio data
39+
- dma-names: Should contain "audio-rx"
3740

3841
Required properties for DPI:
3942
- compatible: Should be "brcm,bcm2835-dpi"
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
Parallel to LVDS Encoder
2+
------------------------
3+
4+
This binding supports the parallel to LVDS encoders that don't require any
5+
configuration.
6+
7+
LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple
8+
incompatible data link layers have been used over time to transmit image data
9+
to LVDS panels. This binding targets devices compatible with the following
10+
specifications only.
11+
12+
[JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February
13+
1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA)
14+
[LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National
15+
Semiconductor
16+
[VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video
17+
Electronics Standards Association (VESA)
18+
19+
Those devices have been marketed under the FPD-Link and FlatLink brand names
20+
among others.
21+
22+
23+
Required properties:
24+
25+
- compatible: Must be "lvds-encoder"
26+
27+
Required nodes:
28+
29+
This device has two video ports. Their connections are modeled using the OF
30+
graph bindings specified in Documentation/devicetree/bindings/graph.txt.
31+
32+
- Video port 0 for parallel input
33+
- Video port 1 for LVDS output
34+
35+
36+
Example
37+
-------
38+
39+
lvds-encoder {
40+
compatible = "lvds-encoder";
41+
#address-cells = <1>;
42+
#size-cells = <0>;
43+
44+
ports {
45+
#address-cells = <1>;
46+
#size-cells = <0>;
47+
48+
port@0 {
49+
reg = <0>;
50+
51+
lvds_enc_in: endpoint {
52+
remote-endpoint = <&display_out_rgb>;
53+
};
54+
};
55+
56+
port@1 {
57+
reg = <1>;
58+
59+
lvds_enc_out: endpoint {
60+
remote-endpoint = <&lvds_panel_in>;
61+
};
62+
};
63+
};
64+
};
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
Drivers for the second video output of the GE B850v3:
2+
STDP4028-ge-b850v3-fw bridges (LVDS-DP)
3+
STDP2690-ge-b850v3-fw bridges (DP-DP++)
4+
5+
The video processing pipeline on the second output on the GE B850v3:
6+
7+
Host -> LVDS|--(STDP4028)--|DP -> DP|--(STDP2690)--|DP++ -> Video output
8+
9+
Each bridge has a dedicated flash containing firmware for supporting the custom
10+
design. The result is that, in this design, neither the STDP4028 nor the
11+
STDP2690 behave as the stock bridges would. The compatible strings include the
12+
suffix "-ge-b850v3-fw" to make it clear that the driver is for the bridges with
13+
the firmware specific for the GE B850v3.
14+
15+
The hardware do not provide control over the video processing pipeline, as the
16+
two bridges behaves as a single one. The only interfaces exposed by the
17+
hardware are EDID, HPD, and interrupts.
18+
19+
stdp4028-ge-b850v3-fw required properties:
20+
- compatible : "megachips,stdp4028-ge-b850v3-fw"
21+
- reg : I2C bus address
22+
- interrupt-parent : phandle of the interrupt controller that services
23+
interrupts to the device
24+
- interrupts : one interrupt should be described here, as in
25+
<0 IRQ_TYPE_LEVEL_HIGH>
26+
- ports : One input port(reg = <0>) and one output port(reg = <1>)
27+
28+
stdp2690-ge-b850v3-fw required properties:
29+
compatible : "megachips,stdp2690-ge-b850v3-fw"
30+
- reg : I2C bus address
31+
- ports : One input port(reg = <0>) and one output port(reg = <1>)
32+
33+
Example:
34+
35+
&mux2_i2c2 {
36+
status = "okay";
37+
clock-frequency = <100000>;
38+
39+
stdp4028@73 {
40+
compatible = "megachips,stdp4028-ge-b850v3-fw";
41+
#address-cells = <1>;
42+
#size-cells = <0>;
43+
44+
reg = <0x73>;
45+
46+
interrupt-parent = <&gpio2>;
47+
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
48+
49+
ports {
50+
#address-cells = <1>;
51+
#size-cells = <0>;
52+
53+
port@0 {
54+
reg = <0>;
55+
stdp4028_in: endpoint {
56+
remote-endpoint = <&lvds0_out>;
57+
};
58+
};
59+
port@1 {
60+
reg = <1>;
61+
stdp4028_out: endpoint {
62+
remote-endpoint = <&stdp2690_in>;
63+
};
64+
};
65+
};
66+
};
67+
68+
stdp2690@72 {
69+
compatible = "megachips,stdp2690-ge-b850v3-fw";
70+
#address-cells = <1>;
71+
#size-cells = <0>;
72+
73+
reg = <0x72>;
74+
75+
ports {
76+
#address-cells = <1>;
77+
#size-cells = <0>;
78+
79+
port@0 {
80+
reg = <0>;
81+
stdp2690_in: endpoint {
82+
remote-endpoint = <&stdp4028_out>;
83+
};
84+
};
85+
86+
port@1 {
87+
reg = <1>;
88+
stdp2690_out: endpoint {
89+
/* Connector for external display */
90+
};
91+
};
92+
};
93+
};
94+
};
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
Renesas Gen3 DWC HDMI TX Encoder
2+
================================
3+
4+
The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP
5+
with a companion PHY IP.
6+
7+
These DT bindings follow the Synopsys DWC HDMI TX bindings defined in
8+
Documentation/devicetree/bindings/display/bridge/dw_hdmi.txt with the
9+
following device-specific properties.
10+
11+
12+
Required properties:
13+
14+
- compatible : Shall contain one or more of
15+
- "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX
16+
- "renesas,rcar-gen3-hdmi" for the generic R-Car Gen3 compatible HDMI TX
17+
18+
When compatible with generic versions, nodes must list the SoC-specific
19+
version corresponding to the platform first, followed by the
20+
family-specific version.
21+
22+
- reg: See dw_hdmi.txt.
23+
- interrupts: HDMI interrupt number
24+
- clocks: See dw_hdmi.txt.
25+
- clock-names: Shall contain "iahb" and "isfr" as defined in dw_hdmi.txt.
26+
- ports: See dw_hdmi.txt. The DWC HDMI shall have one port numbered 0
27+
corresponding to the video input of the controller and one port numbered 1
28+
corresponding to its HDMI output. Each port shall have a single endpoint.
29+
30+
Optional properties:
31+
32+
- power-domains: Shall reference the power domain that contains the DWC HDMI,
33+
if any.
34+
35+
36+
Example:
37+
38+
hdmi0: hdmi0@fead0000 {
39+
compatible = "renesas,r8a7795-dw-hdmi";
40+
reg = <0 0xfead0000 0 0x10000>;
41+
interrupts = <0 389 IRQ_TYPE_LEVEL_HIGH>;
42+
clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>;
43+
clock-names = "iahb", "isfr";
44+
power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
45+
status = "disabled";
46+
47+
ports {
48+
#address-cells = <1>;
49+
#size-cells = <0>;
50+
port@0 {
51+
reg = <0>;
52+
dw_hdmi0_in: endpoint {
53+
remote-endpoint = <&du_out_hdmi0>;
54+
};
55+
};
56+
port@1 {
57+
reg = <1>;
58+
rcar_dw_hdmi0_out: endpoint {
59+
remote-endpoint = <&hdmi0_con>;
60+
};
61+
};
62+
};
63+
};
64+
65+
hdmi0-out {
66+
compatible = "hdmi-connector";
67+
label = "HDMI0 OUT";
68+
type = "a";
69+
70+
port {
71+
hdmi0_con: endpoint {
72+
remote-endpoint = <&rcar_dw_hdmi0_out>;
73+
};
74+
};
75+
};

0 commit comments

Comments
 (0)