Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab07881a authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'exynos-drm-next' of...

Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next

Summary:
- Add code cleanups and bug fixups.
- Add a new display controller dirver, DECON which is a new display
  controller of Exynos7 SoC. This device is much different from
  FIMD of Exynos4 and Exynos4 SoC series.

* 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
  drm/exynos: Add DECON driver
  drm/exynos: fix NULL pointer reference
  drm/exynos: remove exynos_plane_dpms
  drm/exynos: remove mode property of exynos crtc
  drm/exynos: Remove exynos_plane_dpms() call with no effect
  drm/exynos: fix DMA_ATTR_NO_KERNEL_MAPPING usage
  drm/exynos: hdmi: replace fb size with mode size from win commit
  drm/exynos: fix no hdmi output
  drm/exynos: use driver internal struct
  drm/exynos: fix wrong pipe calculation for crtc
  drm/exynos: remove to use unnecessary MODULE_xxx macro
  drm/exynos: remove DRM_EXYNOS_DMABUF config
  drm/exynos: IOMMU support should not be selectable by user
  drm/exynos: add support for 'hdmi' clock
parents 96abd10e 96976c3d
Loading
Loading
Loading
Loading
+68 −0
Original line number Diff line number Diff line
Device-Tree bindings for Samsung Exynos7 SoC display controller (DECON)

DECON (Display and Enhancement Controller) is the Display Controller for the
Exynos7 series of SoCs which transfers the image data from a video memory
buffer to an external LCD interface.

Required properties:
- compatible: value should be "samsung,exynos7-decon";

- reg: physical base address and length of the DECON registers set.

- interrupt-parent: should be the phandle of the decon controller's
		parent interrupt controller.

- interrupts: should contain a list of all DECON IP block interrupts in the
		 order: FIFO Level, VSYNC, LCD_SYSTEM. The interrupt specifier
		 format depends on the interrupt controller used.

- interrupt-names: should contain the interrupt names: "fifo", "vsync",
	"lcd_sys", in the same order as they were listed in the interrupts
        property.

- pinctrl-0: pin control group to be used for this controller.

- pinctrl-names: must contain a "default" entry.

- clocks: must include clock specifiers corresponding to entries in the
         clock-names property.

- clock-names: list of clock names sorted in the same order as the clocks
               property. Must contain "pclk_decon0", "aclk_decon0",
	       "decon0_eclk", "decon0_vclk".
- i80-if-timings: timing configuration for lcd i80 interface support.

Optional Properties:
- samsung,power-domain: a phandle to DECON power domain node.
- display-timings: timing settings for DECON, as described in document [1].
		Can be used in case timings cannot be provided otherwise
		or to override timings provided by the panel.

[1]: Documentation/devicetree/bindings/video/display-timing.txt

Example:

SoC specific DT entry:

	decon@13930000 {
		compatible = "samsung,exynos7-decon";
		interrupt-parent = <&combiner>;
		reg = <0x13930000 0x1000>;
		interrupt-names = "lcd_sys", "vsync", "fifo";
		interrupts = <0 188 0>, <0 189 0>, <0 190 0>;
		clocks = <&clock_disp PCLK_DECON_INT>,
			 <&clock_disp ACLK_DECON_INT>,
			 <&clock_disp SCLK_DECON_INT_ECLK>,
			 <&clock_disp SCLK_DECON_INT_EXTCLKPLL>;
		clock-names = "pclk_decon0", "aclk_decon0", "decon0_eclk",
				"decon0_vclk";
		status = "disabled";
	};

Board specific DT entry:

	decon@13930000 {
		pinctrl-0 = <&lcd_clk &pwm1_out>;
		pinctrl-names = "default";
		status = "okay";
	};
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ Required properties:
	a) mixer: Gate of Mixer IP bus clock.
	b) sclk_hdmi: HDMI Special clock, one of the two possible inputs of
               mixer mux.
	c) hdmi: Gate of HDMI IP bus clock, needed together with sclk_hdmi.

Example:

+12 −12
Original line number Diff line number Diff line
@@ -12,16 +12,9 @@ config DRM_EXYNOS
	  If M is selected the module will be called exynosdrm.

config DRM_EXYNOS_IOMMU
	bool "EXYNOS DRM IOMMU Support"
	bool
	depends on DRM_EXYNOS && EXYNOS_IOMMU && ARM_DMA_USE_IOMMU
	help
	  Choose this option if you want to use IOMMU feature for DRM.

config DRM_EXYNOS_DMABUF
	bool "EXYNOS DRM DMABUF"
	depends on DRM_EXYNOS
	help
	  Choose this option if you want to use DMABUF feature for DRM.
	default y

config DRM_EXYNOS_FIMD
	bool "Exynos DRM FIMD"
@@ -31,9 +24,16 @@ config DRM_EXYNOS_FIMD
	help
	  Choose this option if you want to use Exynos FIMD for DRM.

config DRM_EXYNOS7_DECON
	bool "Exynos DRM DECON"
	depends on DRM_EXYNOS
	select FB_MODE_HELPERS
	help
	  Choose this option if you want to use Exynos DECON for DRM.

config DRM_EXYNOS_DPI
	bool "EXYNOS DRM parallel output support"
	depends on DRM_EXYNOS_FIMD
	depends on (DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON)
	select DRM_PANEL
	default n
	help
@@ -41,7 +41,7 @@ config DRM_EXYNOS_DPI

config DRM_EXYNOS_DSI
	bool "EXYNOS DRM MIPI-DSI driver support"
	depends on DRM_EXYNOS_FIMD
	depends on (DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON)
	select DRM_MIPI_DSI
	select DRM_PANEL
	default n
@@ -50,7 +50,7 @@ config DRM_EXYNOS_DSI

config DRM_EXYNOS_DP
	bool "EXYNOS DRM DP driver support"
	depends on DRM_EXYNOS_FIMD && ARCH_EXYNOS && (DRM_PTN3460=n || DRM_PTN3460=y || DRM_PTN3460=DRM_EXYNOS)
	depends on (DRM_EXYNOS_FIMD || DRM_EXYNOS7DECON) && ARCH_EXYNOS && (DRM_PTN3460=n || DRM_PTN3460=y || DRM_PTN3460=DRM_EXYNOS)
	default DRM_EXYNOS
	select DRM_PANEL
	help
+2 −2
Original line number Diff line number Diff line
@@ -6,11 +6,11 @@ ccflags-y := -Iinclude/drm -Idrivers/gpu/drm/exynos
exynosdrm-y := exynos_drm_drv.o exynos_drm_encoder.o \
		exynos_drm_crtc.o exynos_drm_fbdev.o exynos_drm_fb.o \
		exynos_drm_buf.o exynos_drm_gem.o exynos_drm_core.o \
		exynos_drm_plane.o
		exynos_drm_plane.o exynos_drm_dmabuf.o

exynosdrm-$(CONFIG_DRM_EXYNOS_IOMMU) += exynos_drm_iommu.o
exynosdrm-$(CONFIG_DRM_EXYNOS_DMABUF) += exynos_drm_dmabuf.o
exynosdrm-$(CONFIG_DRM_EXYNOS_FIMD)	+= exynos_drm_fimd.o
exynosdrm-$(CONFIG_DRM_EXYNOS7_DECON)	+= exynos7_drm_decon.o
exynosdrm-$(CONFIG_DRM_EXYNOS_DPI)	+= exynos_drm_dpi.o
exynosdrm-$(CONFIG_DRM_EXYNOS_DSI)	+= exynos_drm_dsi.o
exynosdrm-$(CONFIG_DRM_EXYNOS_DP)	+= exynos_dp_core.o exynos_dp_reg.o
+990 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading