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

Commit 0947ccc2 authored by Jin Li's avatar Jin Li
Browse files

Merge remote-tracking branch 'origin/dev/msm-3.18-drm_kms' into msm-3.18



* origin/dev/msm-3.18-drm_kms: (200 commits)
  drm/msm/sde: apply default csc matrix when no user setting
  ARM: dts: msm: enable dsi to hdmi bridge chip on 8996 auto platform
  drm/sde: add bridge chip support for drm driver
  fb: msm_dba: fix issue in dba driver
  video: fbdev: msm: build msm driver when dba is enabled
  drm/sde: add support for enabling scrambling feature
  gpu: drm: add cursor support for mdss 1.7
  drm: edid: HDMI 2.0 HF-VSDB block parsing
  drm/sde: add support for customized mode
  ARM: dts: msm: assign virtual planes on msm8996 auto platform
  drm/sde: add wider hdmi support
  drm/sde: update plane pitches when it's different than fb
  drm/sde: don't set inv_alpha_sel when alpha blending is disabled
  drm/sde: assign different default zpos for each plane
  drm/adreno: fix issue during gpu driver recovery
  adreno/DRM: Get clock rate list from pwrlevel-bins
  ARM: dts: msm: modify display node to support DRM for 8996AU
  drm/msm: update SMMU context banks for drm display driver
  drm/msm: enable msm bus scaling feature
  drm: adreno: Fix issue of wait too long
  ...
  drm: backport drm changes from 4.4 kernel to 3.18

CRs-Fixed: 1083071
Change-Id: I42aec8318c40cd95db90b1cff6ac692dc9e084aa
Signed-off-by: default avatarJin Li <jinl@codeaurora.org>
parents 3803e4f8 26df0a2a
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. SDE KMS

Snapdragon Display Engine implements Linux DRM/KMS APIs to drive user
interface to different panel interfaces. SDE driver is the core of
display subsystem which manage all data paths to different panel interfaces.

Required properties
- compatible: Must be "qcom,sde-kms"
- reg: Offset and length of the register set for the device.
- reg-names : Names to refer to register sets related to this device
- clocks: List of Phandles for clock device nodes
    needed by the device.
- clock-names: List of clock names needed by the device.
- mmagic-supply: Phandle for mmagic mdss supply regulator device node.
- vdd-supply: Phandle for vdd regulator device node.
- interrupt-parent: Must be core interrupt controller.
- interrupts: Interrupt associated with MDSS.
- interrupt-controller: Mark the device node as an interrupt controller.
- #interrupt-cells: Should be one. The first cell is interrupt number.
- iommus: Specifies the SID's used by this context bank.

Please refer to ../../interrupt-controller/interrupts.txt for a general
description of interrupt bindings.

Example:
	mdss_mdp: qcom,mdss_mdp@900000 {
		compatible = "qcom,sde-kms";
		reg = <0x00900000 0x90000>,
			<0x009b0000 0x1040>,
			<0x009b8000 0x1040>;
		reg-names = "mdp_phys",
				"vbif_phys",
				"vbif_nrt_phys";
		clocks = <&clock_mmss clk_mdss_ahb_clk>,
				<&clock_mmss clk_mdss_axi_clk>,
				<&clock_mmss clk_mdp_clk_src>,
				<&clock_mmss clk_mdss_mdp_vote_clk>,
				<&clock_mmss clk_smmu_mdp_axi_clk>,
				<&clock_mmss clk_mmagic_mdss_axi_clk>,
				<&clock_mmss clk_mdss_vsync_clk>;
		clock-names = "iface_clk",
				"bus_clk",
				"core_clk_src",
				"core_clk",
				"iommu_clk",
				"mmagic_clk",
				"vsync_clk";
		mmagic-supply = <&gdsc_mmagic_mdss>;
		vdd-supply = <&gdsc_mdss>;
		interrupt-parent = <&intc>;
		interrupts = <0 83 0>;
		interrupt-controller;
		#interrupt-cells = <1>;
		iommus = <&mdp_smmu 0>;
	};
+56 −0
Original line number Diff line number Diff line
Qualcomm Technologies,Inc. Adreno/Snapdragon hdmi display manager

Required properties:
- compatible: "qcom,hdmi-display"
- label: label of this display manager

Optional properties:
- qcom,display-type: display type of this manager. It could be "primary",
  "secondary", "tertiary", etc.
- qcom,non-pluggable: Indicate if display is non pluggable.
- qcom,customize-modes: Customized modes when it's non pluggable display.
- qcom,customize-mode-id: Customized mode node.
- qcom,mode-name: Mode name.
- qcom,mode-h-active: Mode horizontal active pixels.
- qcom,mode-h-front-porch: Mode horizontal front porch in pixels.
- qcom,mode-h-pulse-width: Mode horizontal sync width in pixels.
- qcom,mode-h-back-porch: Mode horizontal back porch in pixels.
- qcom,mode-h-active-high: If mode horizontal polarity is active high.
- qcom,mode-v-active: Mode virtical active lines.
- qcom,mode-v-front-porch: Mode virtical front porch in lines.
- qcom,mode-v-pulse-width: Mode virtical sync width in lines.
- qcom,mode-v-back-porch: Mode virtical back porch in lines.
- qcom,mode-v-active-high: If mode virtical polarity is active high.
- qcom,mode-refersh-rate: Mode refresh rate in hertz.
- qcom,mode-clock-in-khz: Mode pixel clock in KHz.

Example:

/ {
	...

	hdmi_display: qcom,hdmi-display {
		compatible = "qcom,hdmi-display";
		label = "hdmi_display";
		qcom,display-type = "secondary";
		qcom,non-pluggable;
		qcom,customize-modes {
			qcom,customize-mode-id@0 {
				qcom,mode-name = "3840x2160@30Hz";
				qcom,mode-h-active = <3840>;
				qcom,mode-h-front-porch = <176>;
				qcom,mode-h-pulse-width = <88>;
				qcom,mode-h-back-porch = <296>;
				qcom,mode-h-active-high;
				qcom,mode-v-active = <2160>;
				qcom,mode-v-front-porch = <8>;
				qcom,mode-v-pulse-width = <10>;
				qcom,mode-v-back-porch = <72>;
				qcom,mode-v-active-high;
				qcom,mode-refersh-rate = <30>;
				qcom,mode-clock-in-khz = <297000>;
			};
		};
	};

};
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ Required properties:
- compatible: one of the following
   * "qcom,hdmi-tx-8660"
   * "qcom,hdmi-tx-8960"
   * "qcom,hdmi-tx-8996"
- reg: Physical base address and length of the controller's registers
- reg-names: "core_physical"
- interrupts: The interrupt signal from the hdmi block.
+26 −0
Original line number Diff line number Diff line
@@ -18,6 +18,15 @@ Required properties:

Optional properties:
- gpus: phandle for gpu device
- qcom,sde-plane-id-map: plane id mapping for virtual plane.
- qcom,sde-plane-id: each virtual plane mapping node.
- qcom,display-type: display type this plane is mapped to. It could be
 "primary", "secondary" and "tertiary".
- qcom,plane-name: plane name array for this virtual plane. It could be
 "rgb0", "rgb1", "rgb2", "rgb3", "vig0", "vig1", "vig2", "vig3", "dma0", "dma1",
 "dma2", "dma3", "cursor0", "cursor1".
- qcom,plane-type: virtual plane type. It could be "primary", "overlay",
 "cursor".

Example:

@@ -44,5 +53,22 @@ Example:
		    <&mmcc TV_SRC>,
		    <&mmcc HDMI_TV_CLK>,
		    <&mmcc MDP_TV_CLK>;
		qcom,sde-plane-id-map {
			qcom,sde-plane-id@0 {
				qcom,display-type = "primary";
				qcom,plane-name = "rgb0", "rgb1";
				qcom,plane-type = "primary";
			};
			qcom,sde-plane-id@1 {
				qcom,display-type = "primary";
				qcom,plane-name = "vig0", "vig1";
				qcom,plane-type = "overlay";
			};
			qcom,sde-plane-id@2 {
				qcom,display-type = "primary";
				qcom,plane-name = "cursor0", "cursor1";
				qcom,plane-type = "cursor";
			};
		};
	};
};
+82 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc.

mdss-dsi is the master DSI device which supports multiple DSI host controllers
that are compatible with MIPI display serial interface specification.

DSI Controller:
Required properties:
- compatible:           Should be "qcom,dsi-ctrl-hw-v<version>". Supported
			versions include 1.4 and 2.0.
			eg: qcom,dsi-ctrl-hw-v1.4, qcom,dsi-ctrl-hw-v2.0
			And for dsi phy driver:
			qcom,dsi-phy-v1.0, qcom,dsi-phy-v2.0, qcom,dsi-phy-v3.0,
			qcom,dsi-phy-v4.0
			For display manager driver:
			qcom,dsi-display, qcom,hdmi-display, qcom,dp-display
- reg:                  Base address and length of DSI controller's memory
			mapped regions.
- reg-names:            A list of strings that name the list of regs.
			"dsi_ctrl" - DSI controller memory region.
			"mmss_misc" - MMSS misc memory region.
- cell-index:           Specifies the controller instance.
- clocks:               Clocks required for DSI controller operation.
- clock-names:          Names of the clocks corresponding to handles. Following
			clocks are required:
			"mdp_core_clk"
			"iface_clk"
			"core_mmss_clk"
			"bus_clk"
			"byte_clk"
			"pixel_clk"
			"core_clk"
			"byte_clk_rcg"
			"pixel_clk_rcg"
- gdsc-supply:		phandle to gdsc regulator node.
- vdda-supply:		phandle to vdda regulator node.
- vcca-supply:		phandle to vcca regulator node.
- interrupt-parent	phandle to the interrupt parent device node.
- interrupts:		The interrupt signal from the DSI block.

Bus Scaling Data:
- qcom,msm-bus,name:		String property describing MDSS client.
- qcom,msm-bus,num-cases:	This is the number of bus scaling use cases
				defined in the vectors property. This must be
				set to <2> for MDSS DSI driver where use-case 0
				is used to remove BW votes from the system. Use
				case 1 is used to generate bandwidth requestes
				when sending command packets.
- qcom,msm-bus,num-paths:	This represents number of paths in each bus
				scaling usecase. This value depends on number of
				AXI master ports dedicated to MDSS for
				particular chipset.
- qcom,msm-bus,vectors-KBps:	A series of 4 cell properties, with a format
				of (src, dst, ab, ib) which is defined at
				Documentation/devicetree/bindings/arm/msm/msm_bus.txt.
				DSI driver should always set average bandwidth
				(ab) to 0 and always use instantaneous
				bandwidth(ib) values.

Optional properties:
- label:                  String to describe controller.
- qcom,platform-te-gpio:  Specifies the gpio used for TE.
- qcom,dsi-display-active: Current active display
- qcom,dsi-ctrl: handle to dsi controller device
- qcom,dsi-phy: handle to dsi phy device
- qcom,dsi-manager:       Specifies dsi manager is present
- qcom,display-manager:   Specifies display manager is present
- qcom,<type>-supply-entries:		A node that lists the elements of the supply used by the
					a particular "type" of DSI module. The module "types"
					can be "core", "ctrl", and "phy". Within the same type,
					there can be more than one instance of this binding,
					in which case the entry would be appended with the
					supply entry index.
					e.g. qcom,ctrl-supply-entry@0
					-- qcom,supply-name: name of the supply (vdd/vdda/vddio)
					-- qcom,supply-min-voltage: minimum voltage level (uV)
					-- qcom,supply-max-voltage: maximum voltage level (uV)
					-- qcom,supply-enable-load: load drawn (uA) from enabled supply
					-- qcom,supply-disable-load: load drawn (uA) from disabled supply
					-- qcom,supply-pre-on-sleep: time to sleep (ms) before turning on
					-- qcom,supply-post-on-sleep: time to sleep (ms) after turning on
					-- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off
					-- qcom,supply-post-off-sleep: time to sleep (ms) after turning off
Loading