aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-01-20 19:17:16 -0500
committerDave Airlie <airlied@redhat.com>2015-01-20 19:17:16 -0500
commitfc83975348ebce07793e6b9f780edc3cbcffa9fc (patch)
tree0fc7972c181cebed1c344852bb8b1a96607d3b15
parentb2eb0489809cf0b824357b6fa85aab1aabe3f063 (diff)
parentd50141d8072e5322ee0518a8c967b5c9caf463d2 (diff)
Merge tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux into drm-next
imx-drm mode fixup support, imx-hdmi bridge conversion and imx-drm cleanup - Implement mode_fixup for a DI vertical timing limitation - Use generic DRM OF helpers in DRM core - Convert imx-hdmi to dw_hdmi drm_bridge and add rockchip driver - Add DC use counter to fix multi-display support - Simplify handling of DI clock flags - A few small fixes and cleanup * tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux: (26 commits) imx-drm: core: handling of DI clock flags to ipu_crtc_mode_set() gpu: ipu-di: Switch to DIV_ROUND_CLOSEST for DI clock divider calc gpu: ipu-v3: Use videomode in struct ipu_di_signal_cfg imx-drm: encoder prepare/mode_set must use adjusted mode imx-drm: ipuv3-crtc: Implement mode_fixup drm_modes: add drm_display_mode_to_videomode gpu: ipu-di: remove some non-functional code gpu: ipu-di: Add ipu_di_adjust_videomode() drm: rockchip: export functions needed by rockchip dw_hdmi bridge driver drm: bridge/dw_hdmi: request interrupt only after initializing the mutes drm: bridge/dw_hdmi: add rockchip rk3288 support dt-bindings: Add documentation for rockchip dw hdmi drm: bridge/dw_hdmi: add function dw_hdmi_phy_enable_spare drm: bridge/dw_hdmi: clear i2cmphy_stat0 reg in hdmi_phy_wait_i2c_done drm: bridge/dw_hdmi: add mode_valid support drm: bridge/dw_hdmi: add support for multi-byte register width access dt-bindings: add document for dw_hdmi drm: imx: imx-hdmi: move imx-hdmi to bridge/dw_hdmi drm: imx: imx-hdmi: split phy configuration to platform driver drm: imx: imx-hdmi: convert imx-hdmi to drm_bridge mode ...
-rw-r--r--Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt50
-rw-r--r--Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt46
-rw-r--r--drivers/gpu/drm/bridge/Kconfig5
-rw-r--r--drivers/gpu/drm/bridge/Makefile1
-rw-r--r--drivers/gpu/drm/bridge/dw_hdmi.c (renamed from drivers/gpu/drm/imx/imx-hdmi.c)724
-rw-r--r--drivers/gpu/drm/bridge/dw_hdmi.h (renamed from drivers/gpu/drm/imx/imx-hdmi.h)4
-rw-r--r--drivers/gpu/drm/drm_modes.c40
-rw-r--r--drivers/gpu/drm/imx/Kconfig1
-rw-r--r--drivers/gpu/drm/imx/Makefile2
-rw-r--r--drivers/gpu/drm/imx/dw_hdmi-imx.c258
-rw-r--r--drivers/gpu/drm/imx/imx-drm-core.c87
-rw-r--r--drivers/gpu/drm/imx/imx-drm.h2
-rw-r--r--drivers/gpu/drm/imx/imx-ldb.c8
-rw-r--r--drivers/gpu/drm/imx/imx-tve.c4
-rw-r--r--drivers/gpu/drm/imx/ipuv3-crtc.c78
-rw-r--r--drivers/gpu/drm/imx/parallel-display.c7
-rw-r--r--drivers/gpu/drm/rockchip/Kconfig10
-rw-r--r--drivers/gpu/drm/rockchip/Makefile2
-rw-r--r--drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c341
-rw-r--r--drivers/gpu/drm/rockchip/rockchip_drm_drv.c1
-rw-r--r--drivers/gpu/drm/rockchip/rockchip_drm_vop.c1
-rw-r--r--drivers/gpu/ipu-v3/ipu-dc.c25
-rw-r--r--drivers/gpu/ipu-v3/ipu-di.c121
-rw-r--r--include/drm/bridge/dw_hdmi.h61
-rw-r--r--include/drm/drm_modes.h2
-rw-r--r--include/video/imx-ipu-v3.h21
26 files changed, 1334 insertions, 568 deletions
diff --git a/Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt b/Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt
new file mode 100644
index 000000000000..a905c1413558
--- /dev/null
+++ b/Documentation/devicetree/bindings/drm/bridge/dw_hdmi.txt
@@ -0,0 +1,50 @@
1DesignWare HDMI bridge bindings
2
3Required properties:
4- compatible: platform specific such as:
5 * "snps,dw-hdmi-tx"
6 * "fsl,imx6q-hdmi"
7 * "fsl,imx6dl-hdmi"
8 * "rockchip,rk3288-dw-hdmi"
9- reg: Physical base address and length of the controller's registers.
10- interrupts: The HDMI interrupt number
11- clocks, clock-names : must have the phandles to the HDMI iahb and isfr clocks,
12 as described in Documentation/devicetree/bindings/clock/clock-bindings.txt,
13 the clocks are soc specific, the clock-names should be "iahb", "isfr"
14-port@[X]: SoC specific port nodes with endpoint definitions as defined
15 in Documentation/devicetree/bindings/media/video-interfaces.txt,
16 please refer to the SoC specific binding document:
17 * Documentation/devicetree/bindings/drm/imx/hdmi.txt
18 * Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt
19
20Optional properties
21- reg-io-width: the width of the reg:1,4, default set to 1 if not present
22- ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
23- clocks, clock-names: phandle to the HDMI CEC clock, name should be "cec"
24
25Example:
26 hdmi: hdmi@0120000 {
27 compatible = "fsl,imx6q-hdmi";
28 reg = <0x00120000 0x9000>;
29 interrupts = <0 115 0x04>;
30 gpr = <&gpr>;
31 clocks = <&clks 123>, <&clks 124>;
32 clock-names = "iahb", "isfr";
33 ddc-i2c-bus = <&i2c2>;
34
35 port@0 {
36 reg = <0>;
37
38 hdmi_mux_0: endpoint {
39 remote-endpoint = <&ipu1_di0_hdmi>;
40 };
41 };
42
43 port@1 {
44 reg = <1>;
45
46 hdmi_mux_1: endpoint {
47 remote-endpoint = <&ipu1_di1_hdmi>;
48 };
49 };
50 };
diff --git a/Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt b/Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt
new file mode 100644
index 000000000000..668091f27674
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/dw_hdmi-rockchip.txt
@@ -0,0 +1,46 @@
1Rockchip specific extensions to the Synopsys Designware HDMI
2================================
3
4Required properties:
5- compatible: "rockchip,rk3288-dw-hdmi";
6- reg: Physical base address and length of the controller's registers.
7- clocks: phandle to hdmi iahb and isfr clocks.
8- clock-names: should be "iahb" "isfr"
9- rockchip,grf: this soc should set GRF regs to mux vopl/vopb.
10- interrupts: HDMI interrupt number
11- ports: contain a port node with endpoint definitions as defined in
12 Documentation/devicetree/bindings/media/video-interfaces.txt. For
13 vopb,set the reg = <0> and set the reg = <1> for vopl.
14- reg-io-width: the width of the reg:1,4, the value should be 4 on
15 rk3288 platform
16
17Optional properties
18- ddc-i2c-bus: phandle of an I2C controller used for DDC EDID probing
19- clocks, clock-names: phandle to the HDMI CEC clock, name should be "cec"
20
21Example:
22hdmi: hdmi@ff980000 {
23 compatible = "rockchip,rk3288-dw-hdmi";
24 reg = <0xff980000 0x20000>;
25 reg-io-width = <4>;
26 ddc-i2c-bus = <&i2c5>;
27 rockchip,grf = <&grf>;
28 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
29 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
30 clock-names = "iahb", "isfr";
31 status = "disabled";
32 ports {
33 hdmi_in: port {
34 #address-cells = <1>;
35 #size-cells = <0>;
36 hdmi_in_vopb: endpoint@0 {
37 reg = <0>;
38 remote-endpoint = <&vopb_out_hdmi>;
39 };
40 hdmi_in_vopl: endpoint@1 {
41 reg = <1>;
42 remote-endpoint = <&vopl_out_hdmi>;
43 };
44 };
45 };
46};
diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index 884923f982d9..b70f3c8d4e8a 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -3,3 +3,8 @@ config DRM_PTN3460
3 depends on DRM 3 depends on DRM
4 select DRM_KMS_HELPER 4 select DRM_KMS_HELPER
5 ---help--- 5 ---help---
6
7config DRM_DW_HDMI
8 tristate
9 depends on DRM
10 select DRM_KMS_HELPER
diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile
index b4733e1fbd2e..d8a8cfd12fbb 100644
--- a/drivers/gpu/drm/bridge/Makefile
+++ b/drivers/gpu/drm/bridge/Makefile
@@ -1,3 +1,4 @@
1ccflags-y := -Iinclude/drm 1ccflags-y := -Iinclude/drm
2 2
3obj-$(CONFIG_DRM_PTN3460) += ptn3460.o 3obj-$(CONFIG_DRM_PTN3460) += ptn3460.o
4obj-$(CONFIG_DRM_DW_HDMI) += dw_hdmi.o
diff --git a/drivers/gpu/drm/imx/imx-hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c
index ddc53e039530..6ea000504173 100644
--- a/drivers/gpu/drm/imx/imx-hdmi.c
+++ b/drivers/gpu/drm/bridge/dw_hdmi.c
@@ -6,31 +6,26 @@
6 * the Free Software Foundation; either version 2 of the License, or 6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version. 7 * (at your option) any later version.
8 * 8 *
9 * SH-Mobile High-Definition Multimedia Interface (HDMI) driver 9 * Designware High-Definition Multimedia Interface (HDMI) driver
10 * for SLISHDMI13T and SLIPHDMIT IP cores
11 * 10 *
12 * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de> 11 * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
13 */ 12 */
14 13#include <linux/module.h>