forked from shenki/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 ...
- Loading branch information
Showing
1,060 changed files
with
456,334 additions
and
27,130 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
111 changes: 111 additions & 0 deletions
111
Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
Amlogic specific extensions to the Synopsys Designware HDMI Controller | ||
====================================================================== | ||
|
||
The Amlogic Meson Synopsys Designware Integration is composed of : | ||
- A Synopsys DesignWare HDMI Controller IP | ||
- A TOP control block controlling the Clocks and PHY | ||
- A custom HDMI PHY in order to convert video to TMDS signal | ||
___________________________________ | ||
| HDMI TOP |<= HPD | ||
|___________________________________| | ||
| | | | ||
| Synopsys HDMI | HDMI PHY |=> TMDS | ||
| Controller |________________| | ||
|___________________________________|<=> DDC | ||
|
||
The HDMI TOP block only supports HPD sensing. | ||
The Synopsys HDMI Controller interrupt is routed through the | ||
TOP Block interrupt. | ||
Communication to the TOP Block and the Synopsys HDMI Controller is done | ||
via a pair of dedicated addr+read/write registers. | ||
The HDMI PHY is configured by registers in the HHI register block. | ||
|
||
Pixel data arrives in 4:4:4 format from the VENC block and the VPU HDMI mux | ||
selects either the ENCI encoder for the 576i or 480i formats or the ENCP | ||
encoder for all the other formats including interlaced HD formats. | ||
|
||
The VENC uses a DVI encoder on top of the ENCI or ENCP encoders to generate | ||
DVI timings for the HDMI controller. | ||
|
||
Amlogic Meson GXBB, GXL and GXM SoCs families embeds the Synopsys DesignWare | ||
HDMI TX IP version 2.01a with HDCP and I2C & S/PDIF | ||
audio source interfaces. | ||
|
||
Required properties: | ||
- compatible: value should be different for each SoC family as : | ||
- GXBB (S905) : "amlogic,meson-gxbb-dw-hdmi" | ||
- GXL (S905X, S905D) : "amlogic,meson-gxl-dw-hdmi" | ||
- GXM (S912) : "amlogic,meson-gxm-dw-hdmi" | ||
followed by the common "amlogic,meson-gx-dw-hdmi" | ||
- reg: Physical base address and length of the controller's registers. | ||
- interrupts: The HDMI interrupt number | ||
- clocks, clock-names : must have the phandles to the HDMI iahb and isfr clocks, | ||
and the Amlogic Meson venci clocks as described in | ||
Documentation/devicetree/bindings/clock/clock-bindings.txt, | ||
the clocks are soc specific, the clock-names should be "iahb", "isfr", "venci" | ||
- resets, resets-names: must have the phandles to the HDMI apb, glue and phy | ||
resets as described in : | ||
Documentation/devicetree/bindings/reset/reset.txt, | ||
the reset-names should be "hdmitx_apb", "hdmitx", "hdmitx_phy" | ||
|
||
Required nodes: | ||
|
||
The connections to the HDMI ports are modeled using the OF graph | ||
bindings specified in Documentation/devicetree/bindings/graph.txt. | ||
|
||
The following table lists for each supported model the port number | ||
corresponding to each HDMI output and input. | ||
|
||
Port 0 Port 1 | ||
----------------------------------------- | ||
S905 (GXBB) VENC Input TMDS Output | ||
S905X (GXL) VENC Input TMDS Output | ||
S905D (GXL) VENC Input TMDS Output | ||
S912 (GXM) VENC Input TMDS Output | ||
|
||
Example: | ||
|
||
hdmi-connector { | ||
compatible = "hdmi-connector"; | ||
type = "a"; | ||
|
||
port { | ||
hdmi_connector_in: endpoint { | ||
remote-endpoint = <&hdmi_tx_tmds_out>; | ||
}; | ||
}; | ||
}; | ||
|
||
hdmi_tx: hdmi-tx@c883a000 { | ||
compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; | ||
reg = <0x0 0xc883a000 0x0 0x1c>; | ||
interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>; | ||
resets = <&reset RESET_HDMITX_CAPB3>, | ||
<&reset RESET_HDMI_SYSTEM_RESET>, | ||
<&reset RESET_HDMI_TX>; | ||
reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; | ||
clocks = <&clkc CLKID_HDMI_PCLK>, | ||
<&clkc CLKID_CLK81>, | ||
<&clkc CLKID_GCLK_VENCI_INT0>; | ||
clock-names = "isfr", "iahb", "venci"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
/* VPU VENC Input */ | ||
hdmi_tx_venc_port: port@0 { | ||
reg = <0>; | ||
|
||
hdmi_tx_in: endpoint { | ||
remote-endpoint = <&hdmi_tx_out>; | ||
}; | ||
}; | ||
|
||
/* TMDS Output */ | ||
hdmi_tx_tmds_port: port@1 { | ||
reg = <1>; | ||
|
||
hdmi_tx_tmds_out: endpoint { | ||
remote-endpoint = <&hdmi_connector_in>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
64 changes: 64 additions & 0 deletions
64
Documentation/devicetree/bindings/display/bridge/lvds-transmitter.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
Parallel to LVDS Encoder | ||
------------------------ | ||
|
||
This binding supports the parallel to LVDS encoders that don't require any | ||
configuration. | ||
|
||
LVDS is a physical layer specification defined in ANSI/TIA/EIA-644-A. Multiple | ||
incompatible data link layers have been used over time to transmit image data | ||
to LVDS panels. This binding targets devices compatible with the following | ||
specifications only. | ||
|
||
[JEIDA] "Digital Interface Standards for Monitor", JEIDA-59-1999, February | ||
1999 (Version 1.0), Japan Electronic Industry Development Association (JEIDA) | ||
[LDI] "Open LVDS Display Interface", May 1999 (Version 0.95), National | ||
Semiconductor | ||
[VESA] "VESA Notebook Panel Standard", October 2007 (Version 1.0), Video | ||
Electronics Standards Association (VESA) | ||
|
||
Those devices have been marketed under the FPD-Link and FlatLink brand names | ||
among others. | ||
|
||
|
||
Required properties: | ||
|
||
- compatible: Must be "lvds-encoder" | ||
|
||
Required nodes: | ||
|
||
This device has two video ports. Their connections are modeled using the OF | ||
graph bindings specified in Documentation/devicetree/bindings/graph.txt. | ||
|
||
- Video port 0 for parallel input | ||
- Video port 1 for LVDS output | ||
|
||
|
||
Example | ||
------- | ||
|
||
lvds-encoder { | ||
compatible = "lvds-encoder"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
ports { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
port@0 { | ||
reg = <0>; | ||
|
||
lvds_enc_in: endpoint { | ||
remote-endpoint = <&display_out_rgb>; | ||
}; | ||
}; | ||
|
||
port@1 { | ||
reg = <1>; | ||
|
||
lvds_enc_out: endpoint { | ||
remote-endpoint = <&lvds_panel_in>; | ||
}; | ||
}; | ||
}; | ||
}; |
94 changes: 94 additions & 0 deletions
94
Documentation/devicetree/bindings/display/bridge/megachips-stdpxxxx-ge-b850v3-fw.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
Drivers for the second video output of the GE B850v3: | ||
STDP4028-ge-b850v3-fw bridges (LVDS-DP) | ||
STDP2690-ge-b850v3-fw bridges (DP-DP++) | ||
|
||
The video processing pipeline on the second output on the GE B850v3: | ||
|
||
Host -> LVDS|--(STDP4028)--|DP -> DP|--(STDP2690)--|DP++ -> Video output | ||
|
||
Each bridge has a dedicated flash containing firmware for supporting the custom | ||
design. The result is that, in this design, neither the STDP4028 nor the | ||
STDP2690 behave as the stock bridges would. The compatible strings include the | ||
suffix "-ge-b850v3-fw" to make it clear that the driver is for the bridges with | ||
the firmware specific for the GE B850v3. | ||
|
||
The hardware do not provide control over the video processing pipeline, as the | ||
two bridges behaves as a single one. The only interfaces exposed by the | ||
hardware are EDID, HPD, and interrupts. | ||
|
||
stdp4028-ge-b850v3-fw required properties: | ||
- compatible : "megachips,stdp4028-ge-b850v3-fw" | ||
- reg : I2C bus address | ||
- interrupt-parent : phandle of the interrupt controller that services | ||
interrupts to the device | ||
- interrupts : one interrupt should be described here, as in | ||
<0 IRQ_TYPE_LEVEL_HIGH> | ||
- ports : One input port(reg = <0>) and one output port(reg = <1>) | ||
|
||
stdp2690-ge-b850v3-fw required properties: | ||
compatible : "megachips,stdp2690-ge-b850v3-fw" | ||
- reg : I2C bus address | ||
- ports : One input port(reg = <0>) and one output port(reg = <1>) | ||
|
||
Example: | ||
|
||
&mux2_i2c2 { | ||
status = "okay"; | ||
clock-frequency = <100000>; | ||
|
||
stdp4028@73 { | ||
compatible = "megachips,stdp4028-ge-b850v3-fw"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
reg = <0x73>; | ||
|
||
interrupt-parent = <&gpio2>; | ||
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; | ||
|
||
ports { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
port@0 { | ||
reg = <0>; | ||
stdp4028_in: endpoint { | ||
remote-endpoint = <&lvds0_out>; | ||
}; | ||
}; | ||
port@1 { | ||
reg = <1>; | ||
stdp4028_out: endpoint { | ||
remote-endpoint = <&stdp2690_in>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
stdp2690@72 { | ||
compatible = "megachips,stdp2690-ge-b850v3-fw"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
reg = <0x72>; | ||
|
||
ports { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
port@0 { | ||
reg = <0>; | ||
stdp2690_in: endpoint { | ||
remote-endpoint = <&stdp4028_out>; | ||
}; | ||
}; | ||
|
||
port@1 { | ||
reg = <1>; | ||
stdp2690_out: endpoint { | ||
/* Connector for external display */ | ||
}; | ||
}; | ||
}; | ||
}; | ||
}; |
75 changes: 75 additions & 0 deletions
75
Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
Renesas Gen3 DWC HDMI TX Encoder | ||
================================ | ||
|
||
The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP | ||
with a companion PHY IP. | ||
|
||
These DT bindings follow the Synopsys DWC HDMI TX bindings defined in | ||
Documentation/devicetree/bindings/display/bridge/dw_hdmi.txt with the | ||
following device-specific properties. | ||
|
||
|
||
Required properties: | ||
|
||
- compatible : Shall contain one or more of | ||
- "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX | ||
- "renesas,rcar-gen3-hdmi" for the generic R-Car Gen3 compatible HDMI TX | ||
|
||
When compatible with generic versions, nodes must list the SoC-specific | ||
version corresponding to the platform first, followed by the | ||
family-specific version. | ||
|
||
- reg: See dw_hdmi.txt. | ||
- interrupts: HDMI interrupt number | ||
- clocks: See dw_hdmi.txt. | ||
- clock-names: Shall contain "iahb" and "isfr" as defined in dw_hdmi.txt. | ||
- ports: See dw_hdmi.txt. The DWC HDMI shall have one port numbered 0 | ||
corresponding to the video input of the controller and one port numbered 1 | ||
corresponding to its HDMI output. Each port shall have a single endpoint. | ||
|
||
Optional properties: | ||
|
||
- power-domains: Shall reference the power domain that contains the DWC HDMI, | ||
if any. | ||
|
||
|
||
Example: | ||
|
||
hdmi0: hdmi0@fead0000 { | ||
compatible = "renesas,r8a7795-dw-hdmi"; | ||
reg = <0 0xfead0000 0 0x10000>; | ||
interrupts = <0 389 IRQ_TYPE_LEVEL_HIGH>; | ||
clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>; | ||
clock-names = "iahb", "isfr"; | ||
power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | ||
status = "disabled"; | ||
|
||
ports { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
port@0 { | ||
reg = <0>; | ||
dw_hdmi0_in: endpoint { | ||
remote-endpoint = <&du_out_hdmi0>; | ||
}; | ||
}; | ||
port@1 { | ||
reg = <1>; | ||
rcar_dw_hdmi0_out: endpoint { | ||
remote-endpoint = <&hdmi0_con>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
hdmi0-out { | ||
compatible = "hdmi-connector"; | ||
label = "HDMI0 OUT"; | ||
type = "a"; | ||
|
||
port { | ||
hdmi0_con: endpoint { | ||
remote-endpoint = <&rcar_dw_hdmi0_out>; | ||
}; | ||
}; | ||
}; |
Oops, something went wrong.