Skip to content

Commit 0ab3902

Browse files
committed
Merge tag 'drm-misc-next-2018-04-26' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for v4.18: UAPI Changes: - Add support for a generic plane alpha property to sun4i, rcar-du and atmel-hclcdc. (Maxime) Core Changes: - Stop looking at legacy plane->fb and crtc members in atomic drivers. (Ville) - mode_valid return type fixes. (Luc) - Handle zpos normalization in the core. (Peter) Driver Changes: - Implement CTM, plane alpha and generic async cursor support in vc4. (Stefan) - Various fixes for HPD and aux chan in drm_bridge/analogix_dp. (Lin, Zain, Douglas) - Add support for MIPI DSI to sun4i. (Maxime) Signed-off-by: Dave Airlie <airlied@redhat.com> # gpg: Signature made Thu 26 Apr 2018 08:21:01 PM AEST # gpg: using RSA key FE558C72A67013C3 # gpg: Can't check signature: public key not found Link: https://patchwork.freedesktop.org/patch/msgid/b33da7eb-efc9-ae6f-6f69-b7acd6df6797@mblankhorst.nl
2 parents 6da6c0d + 741c3ae commit 0ab3902

File tree

165 files changed

+8499
-1096
lines changed

Some content is hidden

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

165 files changed

+8499
-1096
lines changed

Documentation/devicetree/bindings/display/bridge/adi,adv7511.txt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ Required properties:
1414
"adi,adv7513"
1515
"adi,adv7533"
1616

17-
- reg: I2C slave address
17+
- reg: I2C slave addresses
18+
The ADV7511 internal registers are split into four pages exposed through
19+
different I2C addresses, creating four register maps. Each map has it own
20+
I2C address and acts as a standard slave device on the I2C bus. The main
21+
address is mandatory, others are optional and revert to defaults if not
22+
specified.
23+
1824

1925
The ADV7511 supports a large number of input data formats that differ by their
2026
color depth, color format, clock mode, bit justification and random
@@ -70,6 +76,9 @@ Optional properties:
7076
rather than generate its own timings for HDMI output.
7177
- clocks: from common clock binding: reference to the CEC clock.
7278
- clock-names: from common clock binding: must be "cec".
79+
- reg-names : Names of maps with programmable addresses.
80+
It can contain any map needing a non-default address.
81+
Possible maps names are : "main", "edid", "cec", "packet"
7382

7483
Required nodes:
7584

@@ -88,7 +97,12 @@ Example
8897

8998
adv7511w: hdmi@39 {
9099
compatible = "adi,adv7511w";
91-
reg = <39>;
100+
/*
101+
* The EDID page will be accessible on address 0x66 on the I2C
102+
* bus. All other maps continue to use their default addresses.
103+
*/
104+
reg = <0x39>, <0x66>;
105+
reg-names = "main", "edid";
92106
interrupt-parent = <&gpio3>;
93107
interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
94108
clocks = <&cec_clock>;
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
Cadence DSI bridge
2+
==================
3+
4+
The Cadence DSI bridge is a DPI to DSI bridge supporting up to 4 DSI lanes.
5+
6+
Required properties:
7+
- compatible: should be set to "cdns,dsi".
8+
- reg: physical base address and length of the controller's registers.
9+
- interrupts: interrupt line connected to the DSI bridge.
10+
- clocks: DSI bridge clocks.
11+
- clock-names: must contain "dsi_p_clk" and "dsi_sys_clk".
12+
- phys: phandle link to the MIPI D-PHY controller.
13+
- phy-names: must contain "dphy".
14+
- #address-cells: must be set to 1.
15+
- #size-cells: must be set to 0.
16+
17+
Optional properties:
18+
- resets: DSI reset lines.
19+
- reset-names: can contain "dsi_p_rst".
20+
21+
Required subnodes:
22+
- ports: Ports as described in Documentation/devicetree/bindings/graph.txt.
23+
2 ports are available:
24+
* port 0: this port is only needed if some of your DSI devices are
25+
controlled through an external bus like I2C or SPI. Can have at
26+
most 4 endpoints. The endpoint number is directly encoding the
27+
DSI virtual channel used by this device.
28+
* port 1: represents the DPI input.
29+
Other ports will be added later to support the new kind of inputs.
30+
31+
- one subnode per DSI device connected on the DSI bus. Each DSI device should
32+
contain a reg property encoding its virtual channel.
33+
34+
Cadence DPHY
35+
============
36+
37+
Cadence DPHY block.
38+
39+
Required properties:
40+
- compatible: should be set to "cdns,dphy".
41+
- reg: physical base address and length of the DPHY registers.
42+
- clocks: DPHY reference clocks.
43+
- clock-names: must contain "psm" and "pll_ref".
44+
- #phy-cells: must be set to 0.
45+
46+
47+
Example:
48+
dphy0: dphy@fd0e0000{
49+
compatible = "cdns,dphy";
50+
reg = <0x0 0xfd0e0000 0x0 0x1000>;
51+
clocks = <&psm_clk>, <&pll_ref_clk>;
52+
clock-names = "psm", "pll_ref";
53+
#phy-cells = <0>;
54+
};
55+
56+
dsi0: dsi@fd0c0000 {
57+
compatible = "cdns,dsi";
58+
reg = <0x0 0xfd0c0000 0x0 0x1000>;
59+
clocks = <&pclk>, <&sysclk>;
60+
clock-names = "dsi_p_clk", "dsi_sys_clk";
61+
interrupts = <1>;
62+
phys = <&dphy0>;
63+
phy-names = "dphy";
64+
#address-cells = <1>;
65+
#size-cells = <0>;
66+
67+
ports {
68+
#address-cells = <1>;
69+
#size-cells = <0>;
70+
71+
port@1 {
72+
reg = <1>;
73+
dsi0_dpi_input: endpoint {
74+
remote-endpoint = <&xxx_dpi_output>;
75+
};
76+
};
77+
};
78+
79+
panel: dsi-dev@0 {
80+
compatible = "<vendor,panel>";
81+
reg = <0>;
82+
};
83+
};
84+
85+
or
86+
87+
dsi0: dsi@fd0c0000 {
88+
compatible = "cdns,dsi";
89+
reg = <0x0 0xfd0c0000 0x0 0x1000>;
90+
clocks = <&pclk>, <&sysclk>;
91+
clock-names = "dsi_p_clk", "dsi_sys_clk";
92+
interrupts = <1>;
93+
phys = <&dphy1>;
94+
phy-names = "dphy";
95+
#address-cells = <1>;
96+
#size-cells = <0>;
97+
98+
ports {
99+
#address-cells = <1>;
100+
#size-cells = <0>;
101+
102+
port@0 {
103+
reg = <0>;
104+
#address-cells = <1>;
105+
#size-cells = <0>;
106+
107+
dsi0_output: endpoint@0 {
108+
reg = <0>;
109+
remote-endpoint = <&dsi_panel_input>;
110+
};
111+
};
112+
113+
port@1 {
114+
reg = <1>;
115+
dsi0_dpi_input: endpoint {
116+
remote-endpoint = <&xxx_dpi_output>;
117+
};
118+
};
119+
};
120+
};
121+
122+
i2c@xxx {
123+
panel: panel@59 {
124+
compatible = "<vendor,panel>";
125+
reg = <0x59>;
126+
127+
port {
128+
dsi_panel_input: endpoint {
129+
remote-endpoint = <&dsi0_output>;
130+
};
131+
};
132+
};
133+
};
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
Thine Electronics THC63LVD1024 LVDS decoder
2+
-------------------------------------------
3+
4+
The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS streams
5+
to parallel data outputs. The chip supports single/dual input/output modes,
6+
handling up to two LVDS input streams and up to two digital CMOS/TTL outputs.
7+
8+
Single or dual operation mode, output data mapping and DDR output modes are
9+
configured through input signals and the chip does not expose any control bus.
10+
11+
Required properties:
12+
- compatible: Shall be "thine,thc63lvd1024"
13+
- vcc-supply: Power supply for TTL output, TTL CLOCKOUT signal, LVDS input,
14+
PPL and digital circuitry
15+
16+
Optional properties:
17+
- powerdown-gpios: Power down GPIO signal, pin name "/PDWN". Active low
18+
- oe-gpios: Output enable GPIO signal, pin name "OE". Active high
19+
20+
The THC63LVD1024 video port connections are modeled according
21+
to OF graph bindings specified by Documentation/devicetree/bindings/graph.txt
22+
23+
Required video port nodes:
24+
- port@0: First LVDS input port
25+
- port@2: First digital CMOS/TTL parallel output
26+
27+
Optional video port nodes:
28+
- port@1: Second LVDS input port
29+
- port@3: Second digital CMOS/TTL parallel output
30+
31+
Example:
32+
--------
33+
34+
thc63lvd1024: lvds-decoder {
35+
compatible = "thine,thc63lvd1024";
36+
37+
vcc-supply = <&reg_lvds_vcc>;
38+
powerdown-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
39+
40+
ports {
41+
#address-cells = <1>;
42+
#size-cells = <0>;
43+
44+
port@0 {
45+
reg = <0>;
46+
47+
lvds_dec_in_0: endpoint {
48+
remote-endpoint = <&lvds_out>;
49+
};
50+
};
51+
52+
port@2{
53+
reg = <2>;
54+
55+
lvds_dec_out_2: endpoint {
56+
remote-endpoint = <&adv7511_in>;
57+
};
58+
};
59+
};
60+
};
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
Allwinner A31 DSI Encoder
2+
=========================
3+
4+
The DSI pipeline consists of two separate blocks: the DSI controller
5+
itself, and its associated D-PHY.
6+
7+
DSI Encoder
8+
-----------
9+
10+
The DSI Encoder generates the DSI signal from the TCON's.
11+
12+
Required properties:
13+
- compatible: value must be one of:
14+
* allwinner,sun6i-a31-mipi-dsi
15+
- reg: base address and size of memory-mapped region
16+
- interrupts: interrupt associated to this IP
17+
- clocks: phandles to the clocks feeding the DSI encoder
18+
* bus: the DSI interface clock
19+
* mod: the DSI module clock
20+
- clock-names: the clock names mentioned above
21+
- phys: phandle to the D-PHY
22+
- phy-names: must be "dphy"
23+
- resets: phandle to the reset controller driving the encoder
24+
25+
- ports: A ports node with endpoint definitions as defined in
26+
Documentation/devicetree/bindings/media/video-interfaces.txt. The
27+
first port should be the input endpoint, usually coming from the
28+
associated TCON.
29+
30+
Any MIPI-DSI device attached to this should be described according to
31+
the bindings defined in ../mipi-dsi-bus.txt
32+
33+
D-PHY
34+
-----
35+
36+
Required properties:
37+
- compatible: value must be one of:
38+
* allwinner,sun6i-a31-mipi-dphy
39+
- reg: base address and size of memory-mapped region
40+
- clocks: phandles to the clocks feeding the DSI encoder
41+
* bus: the DSI interface clock
42+
* mod: the DSI module clock
43+
- clock-names: the clock names mentioned above
44+
- resets: phandle to the reset controller driving the encoder
45+
46+
Example:
47+
48+
dsi0: dsi@1ca0000 {
49+
compatible = "allwinner,sun6i-a31-mipi-dsi";
50+
reg = <0x01ca0000 0x1000>;
51+
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
52+
clocks = <&ccu CLK_BUS_MIPI_DSI>,
53+
<&ccu CLK_DSI_SCLK>;
54+
clock-names = "bus", "mod";
55+
resets = <&ccu RST_BUS_MIPI_DSI>;
56+
phys = <&dphy0>;
57+
phy-names = "dphy";
58+
#address-cells = <1>;
59+
#size-cells = <0>;
60+
61+
panel@0 {
62+
compatible = "bananapi,lhr050h41", "ilitek,ili9881c";
63+
reg = <0>;
64+
power-gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>; /* PB07 */
65+
reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL05 */
66+
backlight = <&pwm_bl>;
67+
};
68+
69+
ports {
70+
#address-cells = <1>;
71+
#size-cells = <0>;
72+
73+
port@0 {
74+
#address-cells = <1>;
75+
#size-cells = <0>;
76+
reg = <0>;
77+
78+
dsi0_in_tcon0: endpoint {
79+
remote-endpoint = <&tcon0_out_dsi0>;
80+
};
81+
};
82+
};
83+
};
84+
85+
dphy0: d-phy@1ca1000 {
86+
compatible = "allwinner,sun6i-a31-mipi-dphy";
87+
reg = <0x01ca1000 0x1000>;
88+
clocks = <&ccu CLK_BUS_MIPI_DSI>,
89+
<&ccu CLK_DSI_DPHY>;
90+
clock-names = "bus", "mod";
91+
resets = <&ccu RST_BUS_MIPI_DSI>;
92+
#phy-cells = <0>;
93+
};

Documentation/gpu/drivers.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ GPU Driver Documentation
1212
tve200
1313
vc4
1414
bridge/dw-hdmi
15+
xen-front
1516

1617
.. only:: subproject and html
1718

Documentation/gpu/kms-properties.csv

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,4 @@ radeon,DVI-I,“coherent”,RANGE,"Min=0, Max=1",Connector,TBD
9898
,,"""underscan vborder""",RANGE,"Min=0, Max=128",Connector,TBD
9999
,Audio,“audio”,ENUM,"{ ""off"", ""on"", ""auto"" }",Connector,TBD
100100
,FMT Dithering,“dither”,ENUM,"{ ""off"", ""on"" }",Connector,TBD
101-
rcar-du,Generic,"""alpha""",RANGE,"Min=0, Max=255",Plane,TBD
102101
,,"""colorkey""",RANGE,"Min=0, Max=0x01ffffff",Plane,TBD

Documentation/gpu/todo.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,24 @@ probably use drm_fb_helper_fbdev_teardown().
212212

213213
Contact: Maintainer of the driver you plan to convert
214214

215+
Clean up mmap forwarding
216+
------------------------
217+
218+
A lot of drivers forward gem mmap calls to dma-buf mmap for imported buffers.
219+
And also a lot of them forward dma-buf mmap to the gem mmap implementations.
220+
Would be great to refactor this all into a set of small common helpers.
221+
222+
Contact: Daniel Vetter
223+
224+
Put a reservation_object into drm_gem_object
225+
--------------------------------------------
226+
227+
This would remove the need for the ->gem_prime_res_obj callback. It would also
228+
allow us to implement generic helpers for waiting for a bo, allowing for quite a
229+
bit of refactoring in the various wait ioctl implementations.
230+
231+
Contact: Daniel Vetter
232+
215233
idr_init_base()
216234
---------------
217235

Documentation/gpu/xen-front.rst

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
====================================================
2+
drm/xen-front Xen para-virtualized frontend driver
3+
====================================================
4+
5+
This frontend driver implements Xen para-virtualized display
6+
according to the display protocol described at
7+
include/xen/interface/io/displif.h
8+
9+
Driver modes of operation in terms of display buffers used
10+
==========================================================
11+
12+
.. kernel-doc:: drivers/gpu/drm/xen/xen_drm_front.h
13+
:doc: Driver modes of operation in terms of display buffers used
14+
15+
Buffers allocated by the frontend driver
16+
----------------------------------------
17+
18+
.. kernel-doc:: drivers/gpu/drm/xen/xen_drm_front.h
19+
:doc: Buffers allocated by the frontend driver
20+
21+
Buffers allocated by the backend
22+
--------------------------------
23+
24+
.. kernel-doc:: drivers/gpu/drm/xen/xen_drm_front.h
25+
:doc: Buffers allocated by the backend
26+
27+
Driver limitations
28+
==================
29+
30+
.. kernel-doc:: drivers/gpu/drm/xen/xen_drm_front.h
31+
:doc: Driver limitations

0 commit comments

Comments
 (0)