Просмотр исходного кода

Merge "disp: msm: dp: add debug logs to ipc logging"

qctecmdr 3 лет назад
Родитель
Сommit
3f859c78b5
8 измененных файлов с 173 добавлено и 101 удалено
  1. 68 24
      msm/dp/dp_aux.c
  2. 1 0
      msm/dp/dp_aux.h
  3. 38 7
      msm/dp/dp_debug.h
  4. 25 6
      msm/dp/dp_display.c
  5. 4 0
      msm/dp/dp_display.h
  6. 33 31
      msm/dp/dp_mst_drm.c
  7. 0 31
      msm/dp/dp_mst_sim.c
  8. 4 2
      msm/dp/dp_mst_sim_helper.c

+ 68 - 24
msm/dp/dp_aux.c

@@ -12,6 +12,31 @@
 #include "dp_debug.h"
 
 #define DP_AUX_ENUM_STR(x)		#x
+#define DP_AUX_IPC_NUM_PAGES 10
+
+#define DP_AUX_DEBUG(dp_aux, fmt, ...) \
+	do { \
+		if (dp_aux) \
+			ipc_log_string(dp_aux->ipc_log_context, "[d][%-4d]"fmt,\
+					current->pid, ##__VA_ARGS__); \
+		DP_DEBUG_V(fmt, ##__VA_ARGS__); \
+	} while (0)
+
+#define DP_AUX_WARN(dp_aux, fmt, ...) \
+	do { \
+		if (dp_aux) \
+			ipc_log_string(dp_aux->ipc_log_context, "[w][%-4d]"fmt,\
+					current->pid, ##__VA_ARGS__); \
+		DP_WARN_V(fmt, ##__VA_ARGS__); \
+	} while (0)
+
+#define DP_AUX_ERR(dp_aux, fmt, ...) \
+	do { \
+		if (dp_aux) \
+			ipc_log_string(dp_aux->ipc_log_context, "[e][%-4d]"fmt,\
+					current->pid, ##__VA_ARGS__); \
+		DP_ERR_V(fmt, ##__VA_ARGS__); \
+	} while (0)
 
 enum {
 	DP_AUX_DATA_INDEX_WRITE = BIT(31),
@@ -57,10 +82,11 @@ static void dp_aux_hex_dump(struct drm_dp_aux *drm_aux,
 	u8 linebuf[64];
 	struct dp_aux_private *aux = container_of(drm_aux,
 		struct dp_aux_private, drm_aux);
+	struct dp_aux *dp_aux = &aux->dp_aux;
 
 	snprintf(prefix, sizeof(prefix), "%s %s %4xh(%2zu): ",
-		aux->native ? "NAT" : "I2C",
-		aux->read ? "RD" : "WR",
+		(msg->request & DP_AUX_I2C_MOT) ? "I2C" : "NAT",
+		(msg->request & DP_AUX_I2C_READ) ? "RD" : "WR",
 		msg->address, msg->size);
 
 	for (i = 0; i < msg->size; i += rowsize) {
@@ -70,7 +96,10 @@ static void dp_aux_hex_dump(struct drm_dp_aux *drm_aux,
 		hex_dump_to_buffer(msg->buffer + i, linelen, rowsize, 1,
 			linebuf, sizeof(linebuf), false);
 
-		DP_DEBUG("%s%s\n", prefix, linebuf);
+		if (msg->size == 1 && msg->address == 0)
+			DP_DEBUG_V("%s%s\n", prefix, linebuf);
+		else
+			DP_AUX_DEBUG(dp_aux, "%s%s\n", prefix, linebuf);
 	}
 }
 #else
@@ -107,6 +136,7 @@ static u32 dp_aux_write(struct dp_aux_private *aux,
 	u8 *msgdata = msg->buffer;
 	int const aux_cmd_fifo_len = 128;
 	int i = 0;
+	struct dp_aux *dp_aux = &aux->dp_aux;
 
 	if (aux->read)
 		len = 4;
@@ -118,7 +148,7 @@ static u32 dp_aux_write(struct dp_aux_private *aux,
 	 * limit buf length to 128 bytes here
 	 */
 	if (len > aux_cmd_fifo_len) {
-		DP_ERR("buf len error\n");
+		DP_AUX_ERR(dp_aux, "buf len error\n");
 		return 0;
 	}
 
@@ -166,18 +196,19 @@ static int dp_aux_cmd_fifo_tx(struct dp_aux_private *aux,
 {
 	u32 ret = 0, len = 0, timeout;
 	int const aux_timeout_ms = HZ/4;
+	struct dp_aux *dp_aux = &aux->dp_aux;
 
 	reinit_completion(&aux->comp);
 
 	len = dp_aux_write(aux, msg);
 	if (len == 0) {
-		DP_ERR("DP AUX write failed\n");
+		DP_AUX_ERR(dp_aux, "DP AUX write failed\n");
 		return -EINVAL;
 	}
 
 	timeout = wait_for_completion_timeout(&aux->comp, aux_timeout_ms);
 	if (!timeout) {
-		DP_ERR("aux %s timeout\n", (aux->read ? "read" : "write"));
+		DP_AUX_ERR(dp_aux, "aux %s timeout\n", (aux->read ? "read" : "write"));
 		return -ETIMEDOUT;
 	}
 
@@ -200,6 +231,7 @@ static void dp_aux_cmd_fifo_rx(struct dp_aux_private *aux,
 	u8 *dp;
 	u32 i, actual_i;
 	u32 len = msg->size;
+	struct dp_aux *dp_aux = &aux->dp_aux;
 
 	aux->catalog->clear_trans(aux->catalog, true);
 
@@ -221,7 +253,7 @@ static void dp_aux_cmd_fifo_rx(struct dp_aux_private *aux,
 
 		actual_i = (data >> 16) & 0xFF;
 		if (i != actual_i)
-			DP_WARN("Index mismatch: expected %d, found %d\n",
+			DP_AUX_WARN(dp_aux, "Index mismatch: expected %d, found %d\n",
 				i, actual_i);
 	}
 }
@@ -280,7 +312,7 @@ static void dp_aux_isr(struct dp_aux *dp_aux)
 	struct dp_aux_private *aux;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		return;
 	}
 
@@ -302,7 +334,7 @@ static void dp_aux_reconfig(struct dp_aux *dp_aux)
 	struct dp_aux_private *aux;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		return;
 	}
 
@@ -318,7 +350,7 @@ static void dp_aux_abort_transaction(struct dp_aux *dp_aux, bool abort)
 	struct dp_aux_private *aux;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		return;
 	}
 
@@ -427,6 +459,7 @@ static int dp_aux_transfer_ready(struct dp_aux_private *aux,
 	int ret = 0;
 	int const aux_cmd_native_max = 16;
 	int const aux_cmd_i2c_max = 128;
+	struct dp_aux *dp_aux = &aux->dp_aux;
 
 	if (atomic_read(&aux->aborted)) {
 		ret = -ETIMEDOUT;
@@ -445,7 +478,7 @@ static int dp_aux_transfer_ready(struct dp_aux_private *aux,
 	/* msg sanity check */
 	if ((aux->native && (msg->size > aux_cmd_native_max)) ||
 		(msg->size > aux_cmd_i2c_max)) {
-		DP_ERR("%s: invalid msg: size(%zu), request(%x)\n",
+		DP_AUX_ERR(dp_aux, "%s: invalid msg: size(%zu), request(%x)\n",
 			__func__, msg->size, msg->request);
 		ret = -EINVAL;
 		goto error;
@@ -550,6 +583,7 @@ static ssize_t dp_aux_bridge_transfer(struct drm_dp_aux *drm_aux,
 		size = aux->aux_bridge->transfer(aux->aux_bridge,
 				drm_aux, msg);
 		aux->bridge_in_transfer = false;
+		dp_aux_hex_dump(drm_aux, msg);
 	}
 
 	return size;
@@ -581,6 +615,7 @@ static ssize_t dp_aux_transfer_debug(struct drm_dp_aux *drm_aux,
 		size = aux->sim_bridge->transfer(aux->sim_bridge,
 				drm_aux, msg);
 		aux->sim_in_transfer = false;
+		dp_aux_hex_dump(drm_aux, msg);
 	}
 end:
 	return size;
@@ -599,7 +634,7 @@ static void dp_aux_init(struct dp_aux *dp_aux, struct dp_aux_cfg *aux_cfg)
 	struct dp_aux_private *aux;
 
 	if (!dp_aux || !aux_cfg) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		return;
 	}
 
@@ -608,6 +643,10 @@ static void dp_aux_init(struct dp_aux *dp_aux, struct dp_aux_cfg *aux_cfg)
 	if (aux->enabled)
 		return;
 
+	dp_aux->ipc_log_context = ipc_log_context_create(DP_AUX_IPC_NUM_PAGES, "drm_dp_aux", 0);
+	if (!dp_aux->ipc_log_context)
+		DP_AUX_WARN(dp_aux, "Error in creating dp_aux_ipc_log context\n");
+
 	dp_aux_reset_phy_config_indices(aux_cfg);
 	aux->catalog->setup(aux->catalog, aux_cfg);
 	aux->catalog->reset(aux->catalog);
@@ -622,7 +661,7 @@ static void dp_aux_deinit(struct dp_aux *dp_aux)
 	struct dp_aux_private *aux;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		return;
 	}
 
@@ -631,6 +670,11 @@ static void dp_aux_deinit(struct dp_aux *dp_aux)
 	if (!aux->enabled)
 		return;
 
+	if (dp_aux->ipc_log_context) {
+		ipc_log_context_destroy(dp_aux->ipc_log_context);
+		dp_aux->ipc_log_context = NULL;
+	}
+
 	atomic_set(&aux->aborted, 1);
 	aux->catalog->enable(aux->catalog, false);
 	aux->enabled = false;
@@ -642,7 +686,7 @@ static int dp_aux_register(struct dp_aux *dp_aux, struct drm_device *drm_dev)
 	int ret = 0;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		ret = -EINVAL;
 		goto exit;
 	}
@@ -658,7 +702,7 @@ static int dp_aux_register(struct dp_aux *dp_aux, struct drm_device *drm_dev)
 	atomic_set(&aux->aborted, 1);
 	ret = drm_dp_aux_register(&aux->drm_aux);
 	if (ret) {
-		DP_ERR("%s: failed to register drm aux: %d\n", __func__, ret);
+		DP_AUX_ERR(dp_aux, "%s: failed to register drm aux: %d\n", __func__, ret);
 		goto exit;
 	}
 	dp_aux->drm_aux = &aux->drm_aux;
@@ -675,7 +719,7 @@ static void dp_aux_deregister(struct dp_aux *dp_aux)
 	struct dp_aux_private *aux;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		return;
 	}
 
@@ -689,7 +733,7 @@ static void dp_aux_set_sim_mode(struct dp_aux *dp_aux,
 	struct dp_aux_private *aux;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		return;
 	}
 
@@ -719,7 +763,7 @@ static int dp_aux_configure_aux_switch(struct dp_aux *dp_aux,
 	enum fsa_function event = FSA_USBC_DISPLAYPORT_DISCONNECTED;
 
 	if (!dp_aux) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		rc = -EINVAL;
 		goto end;
 	}
@@ -727,7 +771,7 @@ static int dp_aux_configure_aux_switch(struct dp_aux *dp_aux,
 	aux = container_of(dp_aux, struct dp_aux_private, dp_aux);
 
 	if (!aux->aux_switch_node) {
-		DP_DEBUG("undefined fsa4480 handle\n");
+		DP_AUX_DEBUG(dp_aux, "undefined fsa4480 handle\n");
 		rc = -EINVAL;
 		goto end;
 	}
@@ -741,18 +785,18 @@ static int dp_aux_configure_aux_switch(struct dp_aux *dp_aux,
 			event = FSA_USBC_ORIENTATION_CC2;
 			break;
 		default:
-			DP_ERR("invalid orientation\n");
+			DP_AUX_ERR(dp_aux, "invalid orientation\n");
 			rc = -EINVAL;
 			goto end;
 		}
 	}
 
-	DP_DEBUG("enable=%d, orientation=%d, event=%d\n",
+	DP_AUX_DEBUG(dp_aux, "enable=%d, orientation=%d, event=%d\n",
 			enable, orientation, event);
 
 	rc = fsa4480_switch_event(aux->aux_switch_node, event);
 	if (rc)
-		DP_ERR("failed to configure fsa4480 i2c device (%d)\n", rc);
+		DP_AUX_ERR(dp_aux, "failed to configure fsa4480 i2c device (%d)\n", rc);
 end:
 	return rc;
 }
@@ -763,10 +807,10 @@ struct dp_aux *dp_aux_get(struct device *dev, struct dp_catalog_aux *catalog,
 {
 	int rc = 0;
 	struct dp_aux_private *aux;
-	struct dp_aux *dp_aux;
+	struct dp_aux *dp_aux = NULL;
 
 	if (!catalog || !parser) {
-		DP_ERR("invalid input\n");
+		DP_AUX_ERR(dp_aux, "invalid input\n");
 		rc = -ENODEV;
 		goto error;
 	}

+ 1 - 0
msm/dp/dp_aux.h

@@ -42,6 +42,7 @@ struct dp_aux {
 	bool read;
 
 	struct mutex *access_lock;
+	void *ipc_log_context;
 
 	struct drm_dp_aux *drm_aux;
 	int (*drm_aux_register)(struct dp_aux *aux, struct drm_device *drm_dev);

+ 38 - 7
msm/dp/dp_debug.h

@@ -13,9 +13,40 @@
 #include "dp_aux.h"
 #include "dp_display.h"
 #include "dp_pll.h"
+#include <linux/ipc_logging.h>
+
+#define DP_IPC_LOG(fmt, ...) \
+	do {  \
+		void *ipc_logging_context = get_ipc_log_context(); \
+		ipc_log_string(ipc_logging_context, fmt, ##__VA_ARGS__); \
+	} while (0)
 
 #define DP_DEBUG(fmt, ...)                                                   \
 	do {                                                                 \
+		DP_IPC_LOG("[d][%-4d]"fmt, current->pid, ##__VA_ARGS__); \
+		DP_DEBUG_V(fmt, ##__VA_ARGS__); \
+	} while (0)
+
+#define DP_INFO(fmt, ...)                                                   \
+	do {                                                                 \
+		DP_IPC_LOG("[i][%-4d]"fmt, current->pid, ##__VA_ARGS__); \
+		DP_INFO_V(fmt, ##__VA_ARGS__); \
+	} while (0)
+
+#define DP_WARN(fmt, ...)                                                   \
+	do {                                                                 \
+		DP_IPC_LOG("[w][%-4d]"fmt, current->pid, ##__VA_ARGS__); \
+		DP_WARN_V(fmt, ##__VA_ARGS__); \
+	} while (0)
+
+#define DP_ERR(fmt, ...)                                                   \
+	do {                                                                 \
+		DP_IPC_LOG("[e][%-4d]"fmt, current->pid, ##__VA_ARGS__); \
+		DP_ERR_V(fmt, ##__VA_ARGS__); \
+	} while (0)
+
+#define DP_DEBUG_V(fmt, ...) \
+	do { \
 		if (drm_debug_enabled(DRM_UT_KMS))                        \
 			DRM_DEBUG("[msm-dp-debug][%-4d]"fmt, current->pid,   \
 					##__VA_ARGS__);                      \
@@ -24,7 +55,7 @@
 				       current->pid, ##__VA_ARGS__);         \
 	} while (0)
 
-#define DP_INFO(fmt, ...)                                                    \
+#define DP_INFO_V(fmt, ...)                                                    \
 	do {                                                                 \
 		if (drm_debug_enabled(DRM_UT_KMS))                        \
 			DRM_INFO("[msm-dp-info][%-4d]"fmt, current->pid,    \
@@ -34,13 +65,13 @@
 				       current->pid, ##__VA_ARGS__);         \
 	} while (0)
 
-#define DP_WARN(fmt, ...)                                    \
-	pr_warn("[drm:%s][msm-dp-warn][%-4d]"fmt, __func__,  \
-			current->pid, ##__VA_ARGS__)
+#define DP_WARN_V(fmt, ...)                                    \
+		pr_warn("[drm:%s][msm-dp-warn][%-4d]"fmt, __func__,  \
+				current->pid, ##__VA_ARGS__)
 
-#define DP_ERR(fmt, ...)                                    \
-	pr_err("[drm:%s][msm-dp-err][%-4d]"fmt, __func__,   \
-		       current->pid, ##__VA_ARGS__)
+#define DP_ERR_V(fmt, ...)                                    \
+		pr_err("[drm:%s][msm-dp-err][%-4d]"fmt, __func__,   \
+				current->pid, ##__VA_ARGS__)
 
 #define DEFAULT_DISCONNECT_DELAY_MS 0
 #define MAX_DISCONNECT_DELAY_MS 10000

+ 25 - 6
msm/dp/dp_display.c

@@ -15,6 +15,7 @@
 #include <linux/usb/phy.h>
 #include <linux/jiffies.h>
 #include <linux/pm_qos.h>
+#include <linux/ipc_logging.h>
 
 #include "sde_connector.h"
 
@@ -34,6 +35,7 @@
 #include "dp_pll.h"
 #include "sde_dbg.h"
 
+#define DRM_DP_IPC_NUM_PAGES 10
 #define DP_MST_DEBUG(fmt, ...) DP_DEBUG(fmt, ##__VA_ARGS__)
 
 #define dp_display_state_show(x) { \
@@ -2908,7 +2910,7 @@ static int dp_display_validate_topology(struct dp_display_private *dp,
 		return -EPERM;
 	}
 
-	DP_DEBUG("mode %sx%d is valid, supported DP topology lm:%d dsc:%d 3dmux:%d\n",
+	DP_DEBUG_V("mode %sx%d is valid, supported DP topology lm:%d dsc:%d 3dmux:%d\n",
 				mode->name, fps, num_lm, num_dsc, num_3dmux);
 
 	return 0;
@@ -2968,7 +2970,8 @@ static enum drm_mode_status dp_display_validate_mode(
 	mode_status = MODE_OK;
 end:
 	mutex_unlock(&dp->session_lock);
-	DP_DEBUG("[%s] mode is %s\n", mode->name,
+
+	DP_DEBUG_V("[%s] mode is %s\n", mode->name,
 			(mode_status == MODE_OK) ? "valid" : "invalid");
 
 	return mode_status;
@@ -2991,11 +2994,11 @@ static int dp_display_get_available_dp_resources(struct dp_display *dp_display,
 	max_dp_avail_res->num_dsc = min(avail_res->num_dsc,
 			dp_display->max_dsc_count);
 
-	DP_DEBUG("max_lm:%d, avail_lm:%d, dp_avail_lm:%d\n",
+	DP_DEBUG_V("max_lm:%d, avail_lm:%d, dp_avail_lm:%d\n",
 			dp_display->max_mixer_count, avail_res->num_lm,
 			max_dp_avail_res->num_lm);
 
-	DP_DEBUG("max_dsc:%d, avail_dsc:%d, dp_avail_dsc:%d\n",
+	DP_DEBUG_V("max_dsc:%d, avail_dsc:%d, dp_avail_dsc:%d\n",
 			dp_display->max_dsc_count, avail_res->num_dsc,
 			max_dp_avail_res->num_dsc);
 
@@ -3051,7 +3054,7 @@ static void dp_display_convert_to_dp_mode(struct dp_display *dp_display,
 	free_dsc_blks = dp_display->max_dsc_count -
 				dp->tot_dsc_blks_in_use +
 				dp_panel->dsc_blks_in_use;
-	DP_DEBUG("Before: in_use:%d, max:%d, free:%d\n",
+	DP_DEBUG_V("Before: in_use:%d, max:%d, free:%d\n",
 				dp->tot_dsc_blks_in_use,
 				dp_display->max_dsc_count, free_dsc_blks);
 
@@ -3074,7 +3077,7 @@ static void dp_display_convert_to_dp_mode(struct dp_display *dp_display,
 	}
 
 	if (dp_mode->capabilities & DP_PANEL_CAPS_DSC)
-		DP_DEBUG("After: in_use:%d, max:%d, free:%d, req:%d, caps:0x%x\n",
+		DP_DEBUG_V("After: in_use:%d, max:%d, free:%d, req:%d, caps:0x%x\n",
 				dp->tot_dsc_blks_in_use,
 				dp_display->max_dsc_count,
 				free_dsc_blks, required_dsc_blks,
@@ -3594,6 +3597,10 @@ static int dp_display_probe(struct platform_device *pdev)
 
 	g_dp_display = &dp->dp_display;
 
+	g_dp_display->dp_ipc_log = ipc_log_context_create(DRM_DP_IPC_NUM_PAGES, "drm_dp", 0);
+	if (!g_dp_display->dp_ipc_log)
+		DP_WARN("Error in creating ipc_log_context\n");
+
 	g_dp_display->enable        = dp_display_enable;
 	g_dp_display->post_enable   = dp_display_post_enable;
 	g_dp_display->pre_disable   = dp_display_pre_disable;
@@ -3705,6 +3712,11 @@ static int dp_display_remove(struct platform_device *pdev)
 	platform_set_drvdata(pdev, NULL);
 	devm_kfree(&pdev->dev, dp);
 
+	if (g_dp_display->dp_ipc_log) {
+		ipc_log_context_destroy(g_dp_display->dp_ipc_log);
+		g_dp_display->dp_ipc_log = NULL;
+	}
+
 	return 0;
 }
 
@@ -3766,6 +3778,13 @@ static void dp_pm_complete(struct device *dev)
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
 }
 
+void *get_ipc_log_context(void)
+{
+	if (g_dp_display && g_dp_display->dp_ipc_log)
+		return g_dp_display->dp_ipc_log;
+	return NULL;
+}
+
 static const struct dev_pm_ops dp_pm_ops = {
 	.prepare = dp_pm_prepare,
 	.complete = dp_pm_complete,

+ 4 - 0
msm/dp/dp_display.h

@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
+ * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
  * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
  */
 
@@ -49,6 +50,7 @@ struct dp_display {
 	void *dp_mst_prv_info;
 	u32 max_mixer_count;
 	u32 max_dsc_count;
+	void *dp_ipc_log;
 
 	int (*enable)(struct dp_display *dp_display, void *panel);
 	int (*post_enable)(struct dp_display *dp_display, void *panel);
@@ -105,6 +107,8 @@ struct dp_display {
 			struct msm_resource_caps_info *max_dp_avail_res);
 };
 
+void *get_ipc_log_context(void);
+
 #if IS_ENABLED(CONFIG_DRM_MSM_DP)
 int dp_display_get_num_of_displays(void);
 int dp_display_get_displays(void **displays, int count);

+ 33 - 31
msm/dp/dp_mst_drm.c

@@ -47,7 +47,9 @@
 #include "dp_parser.h"
 
 #define DP_MST_DEBUG(fmt, ...) DP_DEBUG(fmt, ##__VA_ARGS__)
-#define DP_MST_INFO(fmt, ...) DP_DEBUG(fmt, ##__VA_ARGS__)
+#define DP_MST_INFO(fmt, ...) DP_INFO(fmt, ##__VA_ARGS__)
+#define DP_MST_DEBUG_V(fmt, ...) DP_DEBUG_V(fmt, ##__VA_ARGS__)
+#define DP_MST_INFO_V(fmt, ...) DP_INFO_V(fmt, ##__VA_ARGS__)
 
 #define MAX_DP_MST_DRM_ENCODERS		2
 #define MAX_DP_MST_DRM_BRIDGES		2
@@ -250,7 +252,7 @@ static int dp_mst_calc_pbn_mode(struct dp_display_mode *dp_mode)
 	pbn = drm_dp_calc_pbn_mode(dp_mode->timing.pixel_clk_khz, bpp, false);
 	pbn_fp = drm_fixp_from_fraction(pbn, 1);
 
-	DP_DEBUG("before overhead pbn:%d, bpp:%d\n", pbn, bpp);
+	DP_DEBUG_V("before overhead pbn:%d, bpp:%d\n", pbn, bpp);
 
 	if (dsc_en)
 		pbn_fp = drm_fixp_mul(pbn_fp, dp_mode->dsc_overhead_fp);
@@ -260,7 +262,7 @@ static int dp_mst_calc_pbn_mode(struct dp_display_mode *dp_mode)
 
 	pbn = drm_fixp2int(pbn_fp);
 
-	DP_DEBUG("after overhead pbn:%d, bpp:%d\n", pbn, bpp);
+	DP_DEBUG_V("after overhead pbn:%d, bpp:%d\n", pbn, bpp);
 	return pbn;
 }
 
@@ -288,7 +290,7 @@ static int dp_mst_bridge_attach(struct drm_bridge *dp_bridge,
 {
 	struct dp_mst_bridge *bridge;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
 
 	if (!dp_bridge) {
@@ -314,7 +316,7 @@ static bool dp_mst_bridge_mode_fixup(struct drm_bridge *drm_bridge,
 	struct drm_crtc_state *crtc_state;
 	struct dp_mst_bridge_state *bridge_state;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 
 	if (!drm_bridge || !mode || !adjusted_mode) {
 		DP_ERR("Invalid params\n");
@@ -357,7 +359,7 @@ static int _dp_mst_compute_config(struct drm_atomic_state *state,
 	int slots = 0, pbn;
 	struct sde_connector *c_conn = to_sde_connector(connector);
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, connector->base.id);
 
 	pbn = mst->mst_fw_cbs->calc_pbn_mode(mode);
@@ -445,7 +447,7 @@ static void _dp_mst_bridge_pre_enable_part1(struct dp_mst_bridge *dp_bridge)
 	bool ret;
 	int pbn, slots;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, DP_MST_CONN_ID(dp_bridge));
 
 	/* skip mst specific disable operations during suspend */
@@ -485,7 +487,7 @@ static void _dp_mst_bridge_pre_enable_part2(struct dp_mst_bridge *dp_bridge)
 	struct dp_display *dp_display = dp_bridge->display;
 	struct dp_mst_private *mst = dp_display->dp_mst_prv_info;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, DP_MST_CONN_ID(dp_bridge));
 
 	/* skip mst specific disable operations during suspend */
@@ -508,7 +510,7 @@ static void _dp_mst_bridge_pre_disable_part1(struct dp_mst_bridge *dp_bridge)
 	struct dp_mst_private *mst = dp_display->dp_mst_prv_info;
 	struct drm_dp_mst_port *port = c_conn->mst_port;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, DP_MST_CONN_ID(dp_bridge));
 
 	/* skip mst specific disable operations during suspend */
@@ -535,7 +537,7 @@ static void _dp_mst_bridge_pre_disable_part2(struct dp_mst_bridge *dp_bridge)
 		to_sde_connector(dp_bridge->connector);
 	struct drm_dp_mst_port *port = c_conn->mst_port;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY,  DP_MST_CONN_ID(dp_bridge));
 
 	/* skip mst specific disable operations during suspend */
@@ -572,7 +574,7 @@ static void dp_mst_bridge_pre_enable(struct drm_bridge *drm_bridge)
 		return;
 	}
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 
 	bridge = to_dp_mst_bridge(drm_bridge);
 	dp = bridge->display;
@@ -642,7 +644,7 @@ static void dp_mst_bridge_enable(struct drm_bridge *drm_bridge)
 		return;
 	}
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, DP_MST_CONN_ID(bridge));
 
 	dp = bridge->display;
@@ -671,7 +673,7 @@ static void dp_mst_bridge_disable(struct drm_bridge *drm_bridge)
 		return;
 	}
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 
 	bridge = to_dp_mst_bridge(drm_bridge);
 	if (!bridge->connector) {
@@ -721,7 +723,7 @@ static void dp_mst_bridge_post_disable(struct drm_bridge *drm_bridge)
 		return;
 	}
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, DP_MST_CONN_ID(bridge));
 
 	dp = bridge->display;
@@ -753,7 +755,7 @@ static void dp_mst_bridge_mode_set(struct drm_bridge *drm_bridge,
 	struct dp_mst_bridge_state *dp_bridge_state;
 	struct dp_display *dp;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 
 	if (!drm_bridge || !mode || !adjusted_mode) {
 		DP_ERR("Invalid params\n");
@@ -904,7 +906,7 @@ dp_mst_connector_detect(struct drm_connector *connector,
 	struct dp_panel *dp_panel;
 	enum drm_connector_status status;
 
-	DP_MST_DEBUG("enter:\n");
+	DP_MST_DEBUG_V("enter:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
 
 	dp_panel = c_conn->drv_panel;
@@ -927,7 +929,7 @@ void dp_mst_clear_edid_cache(void *dp_display) {
 	struct drm_connector *conn;
 	struct sde_connector *c_conn;
 
-	DP_MST_DEBUG("enter:\n");
+	DP_MST_DEBUG_V("enter:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
 
 	if (!dp) {
@@ -949,7 +951,7 @@ void dp_mst_clear_edid_cache(void *dp_display) {
 
 	drm_connector_list_iter_end(&conn_iter);
 
-	DP_MST_DEBUG("exit:\n");
+	DP_MST_DEBUG_V("exit:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT);
 }
 
@@ -962,7 +964,7 @@ static int dp_mst_connector_get_modes(struct drm_connector *connector,
 	int rc = 0;
 	struct edid *edid = NULL;
 
-	DP_MST_DEBUG("enter:\n");
+	DP_MST_DEBUG_V("enter:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, connector->base.id);
 
 	mutex_lock(&mst->edid_lock);
@@ -1001,7 +1003,7 @@ duplicate_edid:
 			connector, edid);
 
 end:
-	DP_MST_DEBUG("exit: id: %d rc: %d\n", connector->base.id, rc);
+	DP_MST_DEBUG_V("exit: id: %d rc: %d\n", connector->base.id, rc);
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, connector->base.id, rc);
 
 	return rc;
@@ -1089,16 +1091,16 @@ int dp_mst_connector_get_mode_info(struct drm_connector *connector,
 {
 	int rc;
 
-	DP_MST_DEBUG("enter:\n");
+	DP_MST_DEBUG_V("enter:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, connector->base.id);
 
 	rc = dp_connector_get_mode_info(connector, drm_mode, NULL, mode_info,
 			display, avail_res);
 
-	DP_MST_DEBUG("mst connector:%d get mode info. rc:%d\n",
+	DP_MST_DEBUG_V("mst connector:%d get mode info. rc:%d\n",
 			connector->base.id, rc);
 
-	DP_MST_DEBUG("exit:\n");
+	DP_MST_DEBUG_V("exit:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, connector->base.id);
 
 	return rc;
@@ -1173,7 +1175,7 @@ static int dp_mst_connector_atomic_check(struct drm_connector *connector,
 	struct sde_connector *c_conn = to_sde_connector(connector);
 	struct dp_display_mode dp_mode;
 
-	DP_MST_DEBUG("enter:\n");
+	DP_MST_DEBUG_V("enter:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, connector->base.id);
 
 	if (!state)
@@ -1308,7 +1310,7 @@ static int dp_mst_connector_config_hdr(struct drm_connector *connector,
 {
 	int rc;
 
-	DP_MST_DEBUG("enter:\n");
+	DP_MST_DEBUG_V("enter:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, connector->base.id);
 
 	rc = dp_connector_config_hdr(connector, display, c_state);
@@ -1316,7 +1318,7 @@ static int dp_mst_connector_config_hdr(struct drm_connector *connector,
 	DP_MST_DEBUG("mst connector:%d cfg hdr. rc:%d\n",
 			connector->base.id, rc);
 
-	DP_MST_DEBUG("exit:\n");
+	DP_MST_DEBUG_V("exit:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, connector->base.id, rc);
 
 	return rc;
@@ -1329,7 +1331,7 @@ static void dp_mst_connector_pre_destroy(struct drm_connector *connector,
 	struct sde_connector *c_conn = to_sde_connector(connector);
 	u32 conn_id = connector->base.id;
 
-	DP_MST_DEBUG("enter:\n");
+	DP_MST_DEBUG_V("enter:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, conn_id);
 
 	kfree(c_conn->cached_edid);
@@ -1338,7 +1340,7 @@ static void dp_mst_connector_pre_destroy(struct drm_connector *connector,
 	drm_dp_mst_put_port_malloc(c_conn->mst_port);
 
 	dp_display->mst_connector_uninstall(dp_display, connector);
-	DP_MST_DEBUG("exit:\n");
+	DP_MST_DEBUG_V("exit:\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, conn_id);
 }
 
@@ -1384,7 +1386,7 @@ dp_mst_add_connector(struct drm_dp_mst_topology_mgr *mgr,
 	struct sde_connector *c_conn;
 	int rc, i;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
 
 	dp_mst = container_of(mgr, struct dp_mst_private, mst_mgr);
@@ -1589,7 +1591,7 @@ dp_mst_add_fixed_connector(struct drm_dp_mst_topology_mgr *mgr,
 	struct drm_connector *connector;
 	int i, enc_idx;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
 
 	dp_mst = container_of(mgr, struct dp_mst_private, mst_mgr);
@@ -1654,7 +1656,7 @@ dp_mst_drm_fixed_connector_init(struct dp_display *dp_display,
 	struct drm_connector *connector;
 	int rc;
 
-	DP_MST_DEBUG("enter\n");
+	DP_MST_DEBUG_V("enter\n");
 	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
 
 	dev = dp_display->drm_dev;

+ 0 - 31
msm/dp/dp_mst_sim.c

@@ -87,35 +87,6 @@ static const struct dp_mst_sim_port output_port = {
 	0, 0, 2520, 2520, NULL, 0
 };
 
-#if IS_ENABLED(CONFIG_DYNAMIC_DEBUG)
-static void dp_sim_aux_hex_dump(struct drm_dp_aux_msg *msg)
-{
-	char prefix[64];
-	int i, linelen, remaining = msg->size;
-	const int rowsize = 16;
-	u8 linebuf[64];
-
-	snprintf(prefix, sizeof(prefix), "%s %s %4xh(%2zu): ",
-		(msg->request & DP_AUX_I2C_MOT) ? "I2C" : "NAT",
-		(msg->request & DP_AUX_I2C_READ) ? "RD" : "WR",
-		msg->address, msg->size);
-
-	for (i = 0; i < msg->size; i += rowsize) {
-		linelen = min(remaining, rowsize);
-		remaining -= rowsize;
-
-		hex_dump_to_buffer(msg->buffer + i, linelen, rowsize, 1,
-			linebuf, sizeof(linebuf), false);
-
-		DP_DEBUG("%s%s\n", prefix, linebuf);
-	}
-}
-#else
-static void dp_sim_aux_hex_dump(struct drm_dp_aux_msg *msg)
-{
-}
-#endif /* CONFIG_DYNAMIC_DEBUG */
-
 static int dp_sim_register_hpd(struct dp_aux_bridge *bridge,
 	int (*hpd_cb)(void *, bool, bool), void *dev)
 {
@@ -334,8 +305,6 @@ static ssize_t dp_sim_transfer(struct dp_aux_bridge *bridge,
 		ret = drm_aux->transfer(drm_aux, msg);
 
 end:
-	dp_sim_aux_hex_dump(msg);
-
 	mutex_unlock(&sim_dev->lock);
 
 	return ret;

+ 4 - 2
msm/dp/dp_mst_sim_helper.c

@@ -45,7 +45,9 @@
 #include "dp_debug.h"
 
 #define DP_MST_DEBUG(fmt, ...) DP_DEBUG(fmt, ##__VA_ARGS__)
-#define DP_MST_INFO(fmt, ...) DP_DEBUG(fmt, ##__VA_ARGS__)
+#define DP_MST_INFO(fmt, ...) DP_INFO(fmt, ##__VA_ARGS__)
+#define DP_MST_DEBUG_V(fmt, ...) DP_DEBUG_V(fmt, ##__VA_ARGS__)
+#define DP_MST_INFO_V(fmt, ...) DP_INFO_V(fmt, ##__VA_ARGS__)
 
 #define DDC_SEGMENT_ADDR 0x30
 
@@ -104,7 +106,7 @@ static void dp_sideband_hex_dump(const char *name,
 		hex_dump_to_buffer(buffer + i, linelen, rowsize, 1,
 			linebuf, sizeof(linebuf), false);
 
-		DP_MST_DEBUG("%s%s\n", prefix, linebuf);
+		DP_MST_DEBUG_V("%s%s\n", prefix, linebuf);
 	}
 }
 #else