Skip to content

Commit 334200b

Browse files
committed
Merge tag 'drm-msm-next-2021-06-23b' of https://gitlab.freedesktop.org/drm/msm into drm-next
* devcoredump support for display errors * dpu: irq cleanup/refactor * dpu: dt bindings conversion to yaml * dsi: dt bindings conversion to yaml * mdp5: alpha/blend_mode/zpos support * a6xx: cached coherent buffer support * a660 support * gpu iova fault improvements: - info about which block triggered the fault, etc - generation of gpu devcoredump on fault * assortment of other cleanups and fixes Signed-off-by: Dave Airlie <airlied@redhat.com> From: Rob Clark <robdclark@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGs4=qsGBBbyn-4JWqW4-YUSTKh67X3DsPQ=T2D9aXKqNA@mail.gmail.com
2 parents 61c0cb8 + e88bbc9 commit 334200b

133 files changed

Lines changed: 7203 additions & 6274 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.
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/display/msm/dp-controller.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MSM Display Port Controller
8+
9+
maintainers:
10+
- Kuogee Hsieh <khsieh@codeaurora.org>
11+
12+
description: |
13+
Device tree bindings for DisplayPort host controller for MSM targets
14+
that are compatible with VESA DisplayPort interface specification.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- qcom,sc7180-dp
20+
21+
reg:
22+
maxItems: 1
23+
24+
interrupts:
25+
maxItems: 1
26+
27+
clocks:
28+
items:
29+
- description: AHB clock to enable register access
30+
- description: Display Port AUX clock
31+
- description: Display Port Link clock
32+
- description: Link interface clock between DP and PHY
33+
- description: Display Port Pixel clock
34+
35+
clock-names:
36+
items:
37+
- const: core_iface
38+
- const: core_aux
39+
- const: ctrl_link
40+
- const: ctrl_link_iface
41+
- const: stream_pixel
42+
43+
assigned-clocks:
44+
items:
45+
- description: link clock source
46+
- description: pixel clock source
47+
48+
assigned-clock-parents:
49+
items:
50+
- description: phy 0 parent
51+
- description: phy 1 parent
52+
53+
phys:
54+
maxItems: 1
55+
56+
phy-names:
57+
items:
58+
- const: dp
59+
60+
operating-points-v2:
61+
maxItems: 1
62+
63+
power-domains:
64+
maxItems: 1
65+
66+
"#sound-dai-cells":
67+
const: 0
68+
69+
ports:
70+
$ref: /schemas/graph.yaml#/properties/ports
71+
properties:
72+
port@0:
73+
$ref: /schemas/graph.yaml#/properties/port
74+
description: Input endpoint of the controller
75+
76+
port@1:
77+
$ref: /schemas/graph.yaml#/properties/port
78+
description: Output endpoint of the controller
79+
80+
required:
81+
- compatible
82+
- reg
83+
- interrupts
84+
- clocks
85+
- clock-names
86+
- phys
87+
- phy-names
88+
- "#sound-dai-cells"
89+
- power-domains
90+
- ports
91+
92+
additionalProperties: false
93+
94+
examples:
95+
- |
96+
#include <dt-bindings/interrupt-controller/arm-gic.h>
97+
#include <dt-bindings/clock/qcom,dispcc-sc7180.h>
98+
#include <dt-bindings/power/qcom-aoss-qmp.h>
99+
#include <dt-bindings/power/qcom-rpmpd.h>
100+
101+
displayport-controller@ae90000 {
102+
compatible = "qcom,sc7180-dp";
103+
reg = <0xae90000 0x1400>;
104+
interrupt-parent = <&mdss>;
105+
interrupts = <12>;
106+
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
107+
<&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
108+
<&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
109+
<&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
110+
<&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
111+
clock-names = "core_iface", "core_aux",
112+
"ctrl_link",
113+
"ctrl_link_iface", "stream_pixel";
114+
115+
assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
116+
<&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
117+
118+
assigned-clock-parents = <&dp_phy 0>, <&dp_phy 1>;
119+
120+
phys = <&dp_phy>;
121+
phy-names = "dp";
122+
123+
#sound-dai-cells = <0>;
124+
125+
power-domains = <&rpmhpd SC7180_CX>;
126+
127+
ports {
128+
#address-cells = <1>;
129+
#size-cells = <0>;
130+
131+
port@0 {
132+
reg = <0>;
133+
endpoint {
134+
remote-endpoint = <&dpu_intf0_out>;
135+
};
136+
};
137+
138+
port@1 {
139+
reg = <1>;
140+
endpoint {
141+
remote-endpoint = <&typec>;
142+
};
143+
};
144+
};
145+
};
146+
...
Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/display/msm/dpu-sc7180.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Display DPU dt properties for SC7180 target
8+
9+
maintainers:
10+
- Krishna Manikandan <mkrishn@codeaurora.org>
11+
12+
description: |
13+
Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
14+
sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
15+
bindings of MDSS and DPU are mentioned for SC7180 target.
16+
17+
properties:
18+
compatible:
19+
items:
20+
- const: qcom,sc7180-mdss
21+
22+
reg:
23+
maxItems: 1
24+
25+
reg-names:
26+
const: mdss
27+
28+
power-domains:
29+
maxItems: 1
30+
31+
clocks:
32+
items:
33+
- description: Display AHB clock from gcc
34+
- description: Display AHB clock from dispcc
35+
- description: Display core clock
36+
37+
clock-names:
38+
items:
39+
- const: iface
40+
- const: ahb
41+
- const: core
42+
43+
interrupts:
44+
maxItems: 1
45+
46+
interrupt-controller: true
47+
48+
"#address-cells": true
49+
50+
"#size-cells": true
51+
52+
"#interrupt-cells":
53+
const: 1
54+
55+
iommus:
56+
items:
57+
- description: Phandle to apps_smmu node with SID mask for Hard-Fail port0
58+
59+
ranges: true
60+
61+
interconnects:
62+
items:
63+
- description: Interconnect path specifying the port ids for data bus
64+
65+
interconnect-names:
66+
const: mdp0-mem
67+
68+
patternProperties:
69+
"^display-controller@[0-9a-f]+$":
70+
type: object
71+
description: Node containing the properties of DPU.
72+
73+
properties:
74+
compatible:
75+
items:
76+
- const: qcom,sc7180-dpu
77+
78+
reg:
79+
items:
80+
- description: Address offset and size for mdp register set
81+
- description: Address offset and size for vbif register set
82+
83+
reg-names:
84+
items:
85+
- const: mdp
86+
- const: vbif
87+
88+
clocks:
89+
items:
90+
- description: Display hf axi clock
91+
- description: Display ahb clock
92+
- description: Display rotator clock
93+
- description: Display lut clock
94+
- description: Display core clock
95+
- description: Display vsync clock
96+
97+
clock-names:
98+
items:
99+
- const: bus
100+
- const: iface
101+
- const: rot
102+
- const: lut
103+
- const: core
104+
- const: vsync
105+
106+
interrupts:
107+
maxItems: 1
108+
109+
power-domains:
110+
maxItems: 1
111+
112+
operating-points-v2: true
113+
114+
ports:
115+
$ref: /schemas/graph.yaml#/properties/ports
116+
description: |
117+
Contains the list of output ports from DPU device. These ports
118+
connect to interfaces that are external to the DPU hardware,
119+
such as DSI, DP etc. Each output port contains an endpoint that
120+
describes how it is connected to an external interface.
121+
122+
properties:
123+
port@0:
124+
$ref: /schemas/graph.yaml#/properties/port
125+
description: DPU_INTF1 (DSI1)
126+
127+
port@2:
128+
$ref: /schemas/graph.yaml#/properties/port
129+
description: DPU_INTF0 (DP)
130+
131+
required:
132+
- port@0
133+
134+
required:
135+
- compatible
136+
- reg
137+
- reg-names
138+
- clocks
139+
- interrupts
140+
- power-domains
141+
- operating-points-v2
142+
- ports
143+
144+
required:
145+
- compatible
146+
- reg
147+
- reg-names
148+
- power-domains
149+
- clocks
150+
- interrupts
151+
- interrupt-controller
152+
- iommus
153+
- ranges
154+
155+
additionalProperties: false
156+
157+
examples:
158+
- |
159+
#include <dt-bindings/clock/qcom,dispcc-sc7180.h>
160+
#include <dt-bindings/clock/qcom,gcc-sc7180.h>
161+
#include <dt-bindings/interrupt-controller/arm-gic.h>
162+
#include <dt-bindings/interconnect/qcom,sdm845.h>
163+
#include <dt-bindings/power/qcom-rpmpd.h>
164+
165+
display-subsystem@ae00000 {
166+
#address-cells = <1>;
167+
#size-cells = <1>;
168+
compatible = "qcom,sc7180-mdss";
169+
reg = <0xae00000 0x1000>;
170+
reg-names = "mdss";
171+
power-domains = <&dispcc MDSS_GDSC>;
172+
clocks = <&gcc GCC_DISP_AHB_CLK>,
173+
<&dispcc DISP_CC_MDSS_AHB_CLK>,
174+
<&dispcc DISP_CC_MDSS_MDP_CLK>;
175+
clock-names = "iface", "ahb", "core";
176+
177+
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
178+
interrupt-controller;
179+
#interrupt-cells = <1>;
180+
181+
interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>;
182+
interconnect-names = "mdp0-mem";
183+
184+
iommus = <&apps_smmu 0x800 0x2>;
185+
ranges;
186+
187+
display-controller@ae01000 {
188+
compatible = "qcom,sc7180-dpu";
189+
reg = <0x0ae01000 0x8f000>,
190+
<0x0aeb0000 0x2008>;
191+
192+
reg-names = "mdp", "vbif";
193+
194+
clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
195+
<&dispcc DISP_CC_MDSS_AHB_CLK>,
196+
<&dispcc DISP_CC_MDSS_ROT_CLK>,
197+
<&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
198+
<&dispcc DISP_CC_MDSS_MDP_CLK>,
199+
<&dispcc DISP_CC_MDSS_VSYNC_CLK>;
200+
clock-names = "bus", "iface", "rot", "lut", "core",
201+
"vsync";
202+
203+
interrupt-parent = <&mdss>;
204+
interrupts = <0>;
205+
power-domains = <&rpmhpd SC7180_CX>;
206+
operating-points-v2 = <&mdp_opp_table>;
207+
208+
ports {
209+
#address-cells = <1>;
210+
#size-cells = <0>;
211+
212+
port@0 {
213+
reg = <0>;
214+
dpu_intf1_out: endpoint {
215+
remote-endpoint = <&dsi0_in>;
216+
};
217+
};
218+
219+
port@2 {
220+
reg = <2>;
221+
dpu_intf0_out: endpoint {
222+
remote-endpoint = <&dp_in>;
223+
};
224+
};
225+
};
226+
};
227+
};
228+
...

0 commit comments

Comments
 (0)