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

Commit b1e26154 authored by Narendra Muppalla's avatar Narendra Muppalla
Browse files

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



* quic/dev/msm-4.14-display:
  drm/msm/dp: retry usb lane release if busy
  drm/msm/sde: Update DMA 1D LUT IGC and GC programming
  drm/msm/sde: Expand sspp lut_dma buf for multi-rect use cases
  drm/msm/sde: add software te support for phy cmd mode panels
  ARM: dts: msm: Add HDR support for dsi 4K panels
  drm/msm/sde: remove SSPP feature bits from SDE_PLANE_DIRTY_ALL
  drm/msm/sde: Update CSC matrix coefficient programming
  drm/msm/sde: fix to disable autorefresh from cont splash
  drm/msm/sde: fix pp-split boot up with continuous splash enabled
  drm/msm/sde: avoid intf regs access in cont. splash
  drm/msm/sde: fix to update controller in all phys encoders
  drm/msm/sde: fix to set the interfaces for cont splash

Change-Id: I0b25d0f641d855b21cb892b147a32d641d8e5c5b
Signed-off-by: default avatarNarendra Muppalla <NarendraM@codeaurora.org>
parents dd5080ee df165e3d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -39,6 +39,11 @@
		qcom,dcs-cmd-by-left;
		qcom,mdss-dsi-tx-eot-append;
		qcom,adjust-timer-wakeup-ms = <1>;
		qcom,mdss-dsi-panel-hdr-enabled;
		qcom,mdss-dsi-panel-hdr-color-primaries = <14500 15500 32000
			17000 15500 30000 8000 3000>;
		qcom,mdss-dsi-panel-peak-brightness = <4200000>;
		qcom,mdss-dsi-panel-blackness-level = <3230>;

		qcom,mdss-dsi-display-timings {
			timing@0{
+5 −0
Original line number Diff line number Diff line
@@ -33,6 +33,11 @@
		qcom,mdss-dsi-tx-eot-append;

		qcom,adjust-timer-wakeup-ms = <1>;
		qcom,mdss-dsi-panel-hdr-enabled;
		qcom,mdss-dsi-panel-hdr-color-primaries = <14500 15500 32000
			17000 15500 30000 8000 3000>;
		qcom,mdss-dsi-panel-peak-brightness = <4200000>;
		qcom,mdss-dsi-panel-blackness-level = <3230>;

		qcom,mdss-dsi-display-timings {
			timing@0{
+39 −11
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#include <linux/slab.h>
#include <linux/device.h>
#include <linux/delay.h>

#include "dp_usbpd.h"

@@ -314,11 +315,44 @@ static int dp_usbpd_validate_callback(u8 cmd,
	return ret;
}


static int dp_usbpd_get_ss_lanes(struct dp_usbpd_private *pd)
{
	int rc = 0;
	int timeout = 250;

	/*
	 * By default, USB reserves two lanes for Super Speed.
	 * Which means DP has remaining two lanes to operate on.
	 * If multi-function is not supported, request USB to
	 * release the Super Speed lanes so that DP can use
	 * all four lanes in case DPCD indicates support for
	 * four lanes.
	 */
	if (!pd->dp_usbpd.multi_func) {
		while (timeout) {
			rc = pd->svid_handler.request_usb_ss_lane(
					pd->pd, &pd->svid_handler);
			if (rc != -EBUSY)
				break;

			pr_warn("USB busy, retry\n");

			/* wait for hw recommended delay for usb */
			msleep(20);
			timeout--;
		}
	}

	return rc;
}

static void dp_usbpd_response_cb(struct usbpd_svid_handler *hdlr, u8 cmd,
				enum usbpd_svdm_cmd_type cmd_type,
				const u32 *vdos, int num_vdos)
{
	struct dp_usbpd_private *pd;
	int rc = 0;

	pd = container_of(hdlr, struct dp_usbpd_private, svid_handler);

@@ -380,17 +414,11 @@ static void dp_usbpd_response_cb(struct usbpd_svid_handler *hdlr, u8 cmd,

		pd->dp_usbpd.orientation = usbpd_get_plug_orientation(pd->pd);

		/*
		 * By default, USB reserves two lanes for Super Speed.
		 * Which means DP has remaining two lanes to operate on.
		 * If multi-function is not supported, request USB to
		 * release the Super Speed lanes so that DP can use
		 * all four lanes in case DPCD indicates support for
		 * four lanes.
		 */
		if (!pd->dp_usbpd.multi_func)
			pd->svid_handler.request_usb_ss_lane(pd->pd,
				&pd->svid_handler);
		rc = dp_usbpd_get_ss_lanes(pd);
		if (rc) {
			pr_err("failed to get SuperSpeed lanes\n");
			break;
		}

		if (pd->dp_cb && pd->dp_cb->configure)
			pd->dp_cb->configure(pd->dev);
+7 −1
Original line number Diff line number Diff line
@@ -1595,6 +1595,7 @@ static void dsi_display_parse_cmdline_topology(struct dsi_display *display,
{
	char *boot_str = NULL;
	char *str = NULL;
	char *sw_te = NULL;
	unsigned long value;

	if (display_type >= MAX_DSI_ACTIVE_DISPLAY) {
@@ -1607,6 +1608,10 @@ static void dsi_display_parse_cmdline_topology(struct dsi_display *display,
	else
		boot_str = dsi_display_secondary;

	sw_te = strnstr(boot_str, ":swte", strlen(boot_str));
	if (sw_te)
		display->sw_te_using_wd = true;

	str = strnstr(boot_str, ":config", strlen(boot_str));
	if (!str)
		return;
@@ -4202,7 +4207,8 @@ int dsi_display_get_info(struct drm_connector *connector,
	case DSI_OP_CMD_MODE:
		info->capabilities |= MSM_DISPLAY_CAP_CMD_MODE;
		info->is_te_using_watchdog_timer =
			display->panel->te_using_watchdog_timer;
			display->panel->te_using_watchdog_timer |
			display->sw_te_using_wd;
		break;
	default:
		pr_err("unknwown dsi panel mode %d\n",
+2 −0
Original line number Diff line number Diff line
@@ -132,6 +132,7 @@ struct dsi_display_clk_info {
 * @list:             List pointer.
 * @is_active:        Is display active.
 * @is_cont_splash_enabled:  Is continuous splash enabled
 * @sw_te_using_wd:   Is software te enabled
 * @display_lock:     Mutex for dsi_display interface.
 * @ctrl_count:       Number of DSI interfaces required by panel.
 * @ctrl:             Controller information for DSI display.
@@ -172,6 +173,7 @@ struct dsi_display {
	const char *display_type;
	struct list_head list;
	bool is_cont_splash_enabled;
	bool sw_te_using_wd;
	struct mutex display_lock;

	u32 ctrl_count;
Loading