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

Commit e3d1bc6c authored by Namratha Siddappa's avatar Namratha Siddappa
Browse files

Merge remote-tracking branch 'quic/dev/msm-4.14-display' into msm-4.14



* quic/dev/msm-4.14-display:
  ARM: dts: msm:  Add FHD panel support for QRD SM8150
  ARM: dts: msm: Add sw43404 panel video mode support for QRD SM8150
  ARM: dts: msm: Enable DFPS support for SM8150 2K panel
  drm/msm/dp: validate audio ops in cable disconnect path
  drm/msm/sde: Set the rotator dev state to active on resume

Change-Id: I7ea4732ab7ff47b4814884437d28c5e9719028db
Signed-off-by: default avatarNamratha Siddappa <namratha@codeaurora.org>
parents 13feb4f7 3737f09a
Loading
Loading
Loading
Loading
+106 −0
Original line number Diff line number Diff line
/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

&mdss_mdp {
	dsi_sw43404_amoled_fhd_plus_cmd: qcom,mdss_dsi_sw43404_fhd_plus_cmd {
		qcom,mdss-dsi-panel-name =
		  "sw43404 amoled boe fhd+ panel with DSC";
		qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
		qcom,mdss-dsi-virtual-channel-id = <0>;
		qcom,mdss-dsi-stream = <0>;
		qcom,mdss-dsi-bpp = <24>;
		qcom,mdss-dsi-color-order = "rgb_swap_rgb";
		qcom,mdss-dsi-underflow-color = <0xff>;
		qcom,mdss-dsi-border-color = <0>;

		qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
		qcom,mdss-dsi-lane-map = "lane_map_0123";
		qcom,mdss-dsi-bllp-eof-power-mode;
		qcom,mdss-dsi-bllp-power-mode;
		qcom,mdss-dsi-lane-0-state;
		qcom,mdss-dsi-lane-1-state;
		qcom,mdss-dsi-lane-2-state;
		qcom,mdss-dsi-lane-3-state;
		qcom,mdss-dsi-dma-trigger = "trigger_sw";
		qcom,mdss-dsi-mdp-trigger = "none";
		qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
		qcom,mdss-dsi-bl-max-level = <1023>;
		qcom,mdss-dsi-te-pin-select = <1>;
		qcom,mdss-dsi-wr-mem-start = <0x2c>;
		qcom,mdss-dsi-wr-mem-continue = <0x3c>;
		qcom,mdss-dsi-te-dcs-command = <1>;
		qcom,mdss-dsi-te-check-enable;
		qcom,mdss-dsi-te-using-te-pin;
		qcom,mdss-pan-physical-width-dimension = <68>;
		qcom,mdss-pan-physical-height-dimension = <138>;

		qcom,mdss-dsi-display-timings {
			timing@0{
				qcom,mdss-dsi-panel-framerate = <60>;
				qcom,mdss-dsi-panel-width = <1080>;
				qcom,mdss-dsi-panel-height = <2160>;
				qcom,mdss-dsi-h-front-porch = <160>;
				qcom,mdss-dsi-h-back-porch = <72>;
				qcom,mdss-dsi-h-pulse-width = <16>;
				qcom,mdss-dsi-h-sync-skew = <0>;
				qcom,mdss-dsi-h-sync-pulse = <0>;
				qcom,mdss-dsi-v-back-porch = <8>;
				qcom,mdss-dsi-v-front-porch = <8>;
				qcom,mdss-dsi-v-pulse-width = <1>;
				qcom,mdss-dsi-h-left-border = <0>;
				qcom,mdss-dsi-h-right-border = <0>;
				qcom,mdss-dsi-v-top-border = <0>;
				qcom,mdss-dsi-v-bottom-border = <0>;
				qcom,mdss-dsi-panel-jitter = <0x1 0x1>;
				qcom,mdss-dsi-on-command = [
				  39 01 00 00 00 00 03 b0 a5 00
				  07 01 00 00 00 00 02 01 00
				  0a 01 00 00 00 00 80 11 00 00 89 30 80
				     08 70 04 38 02 1c 02 1c 02 1c 02 00
				     02 0e 00 20 34 29 00 07 00 0C 00 2e
				     00 31 18 00 10 F0 03 0C 20 00 06 0B
				     0B 33 0E 1C 2A 38 46 54 62 69 70 77
				     79 7B 7D 7E 01 02 01 00 09 40 09 BE
				     19 FC 19 FA 19 F8 1A 38 1A 78 1A B6
				     2A F6 2B 34 2B 74 3B 74 6B F4 00 00
				     00 00 00 00 00 00 00 00 00 00 00 00
				     00 00 00 00 00 00 00 00 00 00 00 00
				     00 00 00 00 00 00 00 00 00 00 00 00
				     00 00
				  39 01 00 00 00 00 03 b0 a5 00
				  15 01 00 00 00 00 02 5e 10
				  39 01 00 00 00 00 06 b9 bf 11 40 00 30
				  39 01 00 00 00 00 09 F8 00 08 10 08 2D
					   00 00 2D
				  15 01 00 00 00 00 02 55 0c
				  05 01 00 00 1e 00 02 11 00
				  15 01 00 00 78 00 02 3d 01
				  39 01 00 00 00 00 03 b0 a5 00
				  05 01 00 00 78 00 02 35 00
				  05 01 00 00 3c 00 02 29 00
				];
				qcom,mdss-dsi-off-command = [
					05 01 00 00 14 00 02 28 00
					05 01 00 00 78 00 02 10 00];
				qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
				qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
				qcom,compression-mode = "dsc";
				qcom,mdss-dsc-slice-height = <540>;
				qcom,mdss-dsc-slice-width = <540>;
				qcom,mdss-dsc-slice-per-pkt = <1>;
				qcom,mdss-dsc-bit-per-component = <8>;
				qcom,mdss-dsc-bit-per-pixel = <8>;
				qcom,mdss-dsc-block-prediction-enable;
			};
		};
	};
};
+87 −0
Original line number Diff line number Diff line
/* Copyright (c) 2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

&mdss_mdp {
	dsi_sw43404_amoled_video: qcom,mdss_dsi_sw43404_amoled_wqhd_video {
	qcom,mdss-dsi-panel-name =
		"sw43404 amoled video mode dsi boe panel with DSC";
	qcom,mdss-dsi-panel-type = "dsi_video_mode";
	qcom,mdss-dsi-virtual-channel-id = <0>;
	qcom,mdss-dsi-stream = <0>;
	qcom,mdss-dsi-bpp = <24>;
	qcom,mdss-dsi-border-color = <0>;
	qcom,mdss-dsi-traffic-mode = "non_burst_sync_event";
	qcom,mdss-dsi-bllp-eof-power-mode;
	qcom,mdss-dsi-bllp-power-mode;
	qcom,mdss-dsi-lane-0-state;
	qcom,mdss-dsi-lane-1-state;
	qcom,mdss-dsi-lane-2-state;
	qcom,mdss-dsi-lane-3-state;
	qcom,mdss-dsi-dma-trigger = "trigger_sw";
	qcom,mdss-dsi-mdp-trigger = "none";
	qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 10>;
	qcom,adjust-timer-wakeup-ms = <1>;
	qcom,mdss-dsi-display-timings {
		timing@0{
			qcom,mdss-dsi-panel-width = <1440>;
			qcom,mdss-dsi-panel-height = <2880>;
			qcom,mdss-dsi-h-front-porch = <10>;
			qcom,mdss-dsi-h-back-porch = <10>;
			qcom,mdss-dsi-h-pulse-width = <12>;
			qcom,mdss-dsi-h-sync-skew = <0>;
			qcom,mdss-dsi-v-back-porch = <10>;
			qcom,mdss-dsi-v-front-porch = <10>;
			qcom,mdss-dsi-v-pulse-width = <1>;
			qcom,mdss-dsi-h-left-border = <0>;
			qcom,mdss-dsi-panel-framerate = <60>;
			qcom,mdss-dsi-on-command = [
			  07 01 00 00 00 00 02 01 00
			  39 01 00 00 00 00 03 b0 a5 00
			  39 01 00 00 00 00 06 b2 00 5d 04 80 49
			  15 01 00 00 00 00 02 3d 10
			  15 01 00 00 00 00 02 36 00
			  15 01 00 00 00 00 02 55 0c
			  39 01 00 00 00 00 09 f8 00 08 10 08 2d
			     00 00 2d
			  39 01 00 00 3c 00 03 51 00 00
			  05 01 00 00 50 00 02 11 00
			  39 01 00 00 00 00 03 b0 34 04
			  39 01 00 00 00 00 05 c1 00 00 00 46
			  0a 01 00 00 00 00 80 11 00 00 89 30 80
			     0B 40 05 A0 02 d0 02 D0 02 D0 02 00
			     02 68 00 20 4e a8 00 0A 00 0C 00 23
			     00 1c 18 00 10 F0 03 0C 20 00 06 0B
			     0B 33 0E 1C 2A 38 46 54 62 69 70 77
			     79 7B 7D 7E 01 02 01 00 09 40 09 BE
			     19 FC 19 FA 19 F8 1A 38 1A 78 1A B6
			     2A F6 2B 34 2B 74 3B 74 6B F4 00 00
			     00 00 00 00 00 00 00 00 00 00 00 00
			     00 00 00 00 00 00 00 00 00 00 00 00
			     00 00 00 00 00 00 00 00 00 00 00 00
			     00 00
			  05 01 00 00 78 00 02 29 00
			];
			qcom,mdss-dsi-off-command = [05 01 00 00 78 00
			   02 28 00 05 01 00 00 78 00 02 10 00];
			qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
			qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
			qcom,compression-mode = "dsc";
			qcom,mdss-dsc-slice-height = <720>;
			qcom,mdss-dsc-slice-width = <720>;
			qcom,mdss-dsc-slice-per-pkt = <2>;
			qcom,mdss-dsc-bit-per-component = <8>;
			qcom,mdss-dsc-bit-per-pixel = <8>;
			qcom,mdss-dsc-block-prediction-enable;
			};
		};
	};
};
+26 −1
Original line number Diff line number Diff line
@@ -171,7 +171,32 @@
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <1023>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-brightness-max-level = <1023>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
	qcom,panel-mode-gpio = <&tlmm 7 0>;
	qcom,platform-te-gpio = <&tlmm 8 0>;
	qcom,platform-reset-gpio = <&tlmm 6 0>;
};

&dsi_sw43404_amoled_video {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-brightness-max-level = <1023>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
	qcom,panel-mode-gpio = <&tlmm 7 0>;
	qcom,platform-te-gpio = <&tlmm 8 0>;
	qcom,platform-reset-gpio = <&tlmm 6 0>;
};

&dsi_sw43404_amoled_fhd_plus_cmd {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-brightness-max-level = <1023>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
	qcom,panel-mode-gpio = <&tlmm 7 0>;
	qcom,platform-te-gpio = <&tlmm 8 0>;
+54 −1
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@
#include "dsi-panel-sharp-dualmipi-1080p-120hz.dtsi"
#include "dsi-panel-s6e3ha3-amoled-dualmipi-wqhd-cmd.dtsi"
#include "dsi-panel-sw43404-amoled-dsc-wqhd-cmd.dtsi"
#include "dsi-panel-sw43404-amoled-dsc-wqhd-video.dtsi"
#include "dsi-panel-sw43404-amoled-dsc-fhd-plus-cmd.dtsi"
#include <dt-bindings/clock/mdss-10nm-pll-clk.h>

&tlmm {
@@ -321,6 +323,28 @@
		qcom,dsi-panel = <&dsi_nt35695b_truly_fhd_video>;
	};

	dsi_sw43404_amoled_video_display: qcom,dsi-display@17 {
		label = "dsi_sw43404_amoled_video_display";
		qcom,display-type = "primary";

		qcom,dsi-ctrl-num = <0>;
		qcom,dsi-phy-num = <0>;
		qcom,dsi-select-clocks = "src_byte_clk0", "src_pixel_clk0";

		qcom,dsi-panel = <&dsi_sw43404_amoled_video>;
	};

	dsi_sw43404_amoled_fhd_plus_cmd_display: qcom,dsi-display@18 {
		label = "dsi_sw43404_amoled_fhd_plus_cmd_display";
		qcom,display-type = "primary";

		qcom,dsi-ctrl-num = <0>;
		qcom,dsi-phy-num = <0>;
		qcom,dsi-select-clocks = "src_byte_clk0", "src_pixel_clk0";

		qcom,dsi-panel = <&dsi_sw43404_amoled_fhd_plus_cmd>;
	};

	sde_dsi: qcom,dsi-display {
		compatible = "qcom,dsi-display";

@@ -362,7 +386,9 @@
			&dsi_dual_sim_dsc_375_cmd_display
			&dsi_sw43404_amoled_cmd_display
			&dsi_nt35695b_truly_fhd_cmd_display
			&dsi_nt35695b_truly_fhd_video_display>;
			&dsi_nt35695b_truly_fhd_video_display
			&dsi_sw43404_amoled_video_display
			&dsi_sw43404_amoled_fhd_plus_cmd_display>;
	};

	sde_wb: qcom,wb-display@0 {
@@ -400,6 +426,10 @@

/* PHY TIMINGS REVISION P */
&dsi_dual_nt35597_truly_video {
	qcom,mdss-dsi-min-refresh-rate = <53>;
	qcom,mdss-dsi-max-refresh-rate = <60>;
	qcom,mdss-dsi-pan-enable-dynamic-fps;
	qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp";
	qcom,mdss-dsi-display-timings {
		timing@0{
			qcom,mdss-dsi-panel-phy-timings = [00 1c 08 07 23 22 07
@@ -658,3 +688,26 @@
		};
	};
};

&dsi_sw43404_amoled_fhd_plus_cmd {
	qcom,mdss-dsi-display-timings {
		timing@0 {
			qcom,mdss-dsi-panel-phy-timings = [00 12 04 04 1e 1e 04
				05 02 03 04 00 11 14];
			qcom,display-topology = <2 2 1>;
			qcom,default-topology-index = <0>;
		};
	};
};

&dsi_sw43404_amoled_video {
	qcom,mdss-dsi-display-timings {
		timing@0 {
			qcom,mdss-dsi-panel-phy-timings = [00 1a 07 06 22 21 07
				07 04 03 04 00 16 16];
			/*qcom,mdss-dsi-panel-clockrate = <700000000>;*/
			qcom,display-topology = <2 2 1>;
			qcom,default-topology-index = <0>;
		};
	};
};
+18 −11
Original line number Diff line number Diff line
@@ -669,6 +669,9 @@ static int dp_audio_notify(struct dp_audio_private *audio, u32 state)
	int rc = 0;
	struct msm_ext_disp_init_data *ext = &audio->ext_audio_data;

	if (!ext->intf_ops.audio_notify)
		goto end;

	rc = ext->intf_ops.audio_notify(audio->ext_pdev,
			&ext->codec, state);
	if (rc) {
@@ -710,6 +713,7 @@ static int dp_audio_on(struct dp_audio *dp_audio)

	audio->session_on = true;

	if (ext->intf_ops.audio_config) {
		rc = ext->intf_ops.audio_config(audio->ext_pdev,
				&ext->codec,
				EXT_DISPLAY_CABLE_CONNECT);
@@ -717,6 +721,7 @@ static int dp_audio_on(struct dp_audio *dp_audio)
			pr_err("failed to config audio, err=%d\n", rc);
			goto end;
		}
	}

	rc = dp_audio_notify(audio, EXT_DISPLAY_CABLE_CONNECT);
	if (rc)
@@ -752,11 +757,13 @@ static int dp_audio_off(struct dp_audio *dp_audio)

	pr_debug("success\n");
end:
	if (ext->intf_ops.audio_config) {
		rc = ext->intf_ops.audio_config(audio->ext_pdev,
				&ext->codec,
				EXT_DISPLAY_CABLE_DISCONNECT);
		if (rc)
			pr_err("failed to config audio, err=%d\n", rc);
	}

	audio->session_on = false;
	audio->engine_on  = false;
Loading