public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/i915 DP MST audio support in i915
@ 2015-11-06  8:34 libin.yang
  2015-11-06  8:34 ` [PATCH 1/2] dp/mst: add SDP stream support libin.yang
  2015-11-06  8:34 ` [PATCH 2/2] drm/i915: start adding dp mst audio libin.yang
  0 siblings, 2 replies; 4+ messages in thread
From: libin.yang @ 2015-11-06  8:34 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, daniel.vetter, ville.syrjala; +Cc: Libin Yang

From: Libin Yang <libin.yang@linux.intel.com>

These patches add support for DP MST audio in i915 driver.
Patches have been tested on BDW and the result show it won't
impact the DP SST and HDMI audio.

These patches are ported from Dave's patches.
Please check Dave's git tree for original patches:
git://people.freedesktop.org/~airlied/linux

Libin Yang (2):
  dp/mst: add SDP stream support
  drm/i915: start adding dp mst audio

 drivers/gpu/drm/drm_dp_mst_topology.c | 32 +++++++++++++++++++++++++++++---
 drivers/gpu/drm/i915/i915_debugfs.c   | 13 +++++++++++++
 drivers/gpu/drm/i915/intel_audio.c    |  9 ++++++---
 drivers/gpu/drm/i915/intel_dp_mst.c   | 25 +++++++++++++++++++++++++
 include/drm/drm_dp_mst_helper.h       |  6 ++++--
 5 files changed, 77 insertions(+), 8 deletions(-)

-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] dp/mst: add SDP stream support
  2015-11-06  8:34 [PATCH 0/2] drm/i915 DP MST audio support in i915 libin.yang
@ 2015-11-06  8:34 ` libin.yang
  2015-11-06  9:26   ` kbuild test robot
  2015-11-06  8:34 ` [PATCH 2/2] drm/i915: start adding dp mst audio libin.yang
  1 sibling, 1 reply; 4+ messages in thread
From: libin.yang @ 2015-11-06  8:34 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, daniel.vetter, ville.syrjala
  Cc: Dave Airlie, Libin Yang

From: Libin Yang <libin.yang@linux.intel.com>

This adds code to initialise the SDP streams
for a sink in the simplest ordering.

I've no idea how you'd want to control the
ordering at this level, so don't bother
until someone comes up with a use case.

Signed-off-by: Libin Yang <libin.yang@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 34 +++++++++++++++++++++++++++++++---
 include/drm/drm_dp_mst_helper.h       |  7 +++++--
 2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 809959d..20d4d2a 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -666,7 +666,9 @@ static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int por
 }
 
 static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num,
-				  u8 vcpi, uint16_t pbn)
+				  u8 vcpi, uint16_t pbn,
+				  u8 number_sdp_streams,
+				  u8 *sdp_stream_sink)
 {
 	struct drm_dp_sideband_msg_req_body req;
 	memset(&req, 0, sizeof(req));
@@ -674,6 +676,9 @@ static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_n
 	req.u.allocate_payload.port_number = port_num;
 	req.u.allocate_payload.vcpi = vcpi;
 	req.u.allocate_payload.pbn = pbn;
+	req.u.allocate_payload.number_sdp_streams = number_sdp_streams;
+	memcpy(req.u.allocate_payload.sdp_stream_sink, sdp_stream_sink,
+		   number_sdp_streams);
 	drm_dp_encode_sideband_req(&req, msg);
 	msg->path_msg = true;
 	return 0;
@@ -1562,6 +1567,8 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr,
 	struct drm_dp_sideband_msg_tx *txmsg;
 	struct drm_dp_mst_branch *mstb;
 	int len, ret;
+	u8 sinks[DRM_DP_MAX_SDP_STREAMS];
+	int i;
 
 	mstb = drm_dp_get_validated_mstb_ref(mgr, port->parent);
 	if (!mstb)
@@ -1573,10 +1580,13 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr,
 		goto fail_put;
 	}
 
+	for (i = 0; i < port->num_sdp_streams; i++)
+		sinks[i] = i;
+
 	txmsg->dst = mstb;
 	len = build_allocate_payload(txmsg, port->port_num,
 				     id,
-				     pbn);
+				     pbn, port->num_sdp_streams, sinks);
 
 	drm_dp_queue_down_tx(mgr, txmsg);
 
@@ -2259,6 +2269,23 @@ out:
 EXPORT_SYMBOL(drm_dp_mst_detect_port);
 
 /**
+ * drm_dp_mst_port_has_audio()
+ */
+bool drm_dp_mst_port_has_audio(struct drm_dp_mst_topology_mgr *mgr,
+					struct drm_dp_mst_port *port)
+{
+	bool ret = false;
+
+	port = drm_dp_get_validated_port_ref(mgr, port);
+	if (!port)
+		return ret;
+	ret = port->has_audio;
+	drm_dp_put_port(port);
+	return ret;
+}
+EXPORT_SYMBOL(drm_dp_mst_port_has_audio);
+
+/**
  * drm_dp_mst_get_edid() - get EDID for an MST port
  * @connector: toplevel connector to get EDID for
  * @mgr: manager for this port
@@ -2283,6 +2310,7 @@ struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_
 		edid = drm_get_edid(connector, &port->aux.ddc);
 		drm_mode_connector_set_tile_property(connector);
 	}
+	port->has_audio = drm_detect_monitor_audio(edid);
 	drm_dp_put_port(port);
 	return edid;
 }
@@ -2566,7 +2594,7 @@ static void drm_dp_mst_dump_mstb(struct seq_file *m,
 
 	seq_printf(m, "%smst: %p, %d\n", prefix, mstb, mstb->num_ports);
 	list_for_each_entry(port, &mstb->ports, next) {
-		seq_printf(m, "%sport: %d: ddps: %d ldps: %d, %p, conn: %p\n", prefix, port->port_num, port->ddps, port->ldps, port, port->connector);
+		seq_printf(m, "%sport: %d: ddps: %d ldps: %d, sdp: %d/%d, %p, conn: %p\n", prefix, port->port_num, port->ddps, port->ldps, port->num_sdp_streams, port->num_sdp_stream_sinks, port, port->connector);
 		if (port->mstb)
 			drm_dp_mst_dump_mstb(m, port->mstb);
 	}
diff --git a/include/drm/drm_dp_mst_helper.h b/include/drm/drm_dp_mst_helper.h
index 5340099..74b5888 100644
--- a/include/drm/drm_dp_mst_helper.h
+++ b/include/drm/drm_dp_mst_helper.h
@@ -94,6 +94,7 @@ struct drm_dp_mst_port {
 	struct drm_dp_mst_topology_mgr *mgr;
 
 	struct edid *cached_edid; /* for DP logical ports - make tiling work */
+	bool has_audio;
 };
 
 /**
@@ -215,13 +216,13 @@ struct drm_dp_sideband_msg_rx {
 	struct drm_dp_sideband_msg_hdr initial_hdr;
 };
 
-
+#define DRM_DP_MAX_SDP_STREAMS 16
 struct drm_dp_allocate_payload {
 	u8 port_number;
 	u8 number_sdp_streams;
 	u8 vcpi;
 	u16 pbn;
-	u8 sdp_stream_sink[8];
+	u8 sdp_stream_sink[DRM_DP_MAX_SDP_STREAMS];
 };
 
 struct drm_dp_allocate_payload_ack_reply {
@@ -484,6 +485,8 @@ int drm_dp_mst_hpd_irq(struct drm_dp_mst_topology_mgr *mgr, u8 *esi, bool *handl
 
 enum drm_connector_status drm_dp_mst_detect_port(struct drm_connector *connector, struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port);
 
+bool drm_dp_mst_port_has_audio(struct drm_dp_mst_topology_mgr *mgr,
+					struct drm_dp_mst_port *port);
 struct edid *drm_dp_mst_get_edid(struct drm_connector *connector, struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port);
 
 
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] drm/i915: start adding dp mst audio
  2015-11-06  8:34 [PATCH 0/2] drm/i915 DP MST audio support in i915 libin.yang
  2015-11-06  8:34 ` [PATCH 1/2] dp/mst: add SDP stream support libin.yang
@ 2015-11-06  8:34 ` libin.yang
  1 sibling, 0 replies; 4+ messages in thread
From: libin.yang @ 2015-11-06  8:34 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, daniel.vetter, ville.syrjala
  Cc: Dave Airlie, Libin Yang

From: Libin Yang <libin.yang@linux.intel.com>

This patch adds support for DP MST audio in i915.

Enable audio codec when DP MST is enabled if has_audio flag is set.
Disable audio codec when DP MST is disabled if has_audio flag is set.

Signed-off-by: Libin Yang <libin.yang@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 14 ++++++++++++++
 drivers/gpu/drm/i915/intel_audio.c  |  9 ++++++---
 drivers/gpu/drm/i915/intel_dp_mst.c | 25 +++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 5659d4c..38c7a5d 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2873,6 +2873,18 @@ static void intel_dp_info(struct seq_file *m,
 		intel_panel_info(m, &intel_connector->panel);
 }
 
+static void intel_dp_mst_info(struct seq_file *m,
+			  struct intel_connector *intel_connector)
+{
+	struct intel_encoder *intel_encoder = intel_connector->encoder;
+	struct intel_dp_mst_encoder *intel_mst =
+		enc_to_mst(&intel_encoder->base);
+	struct intel_digital_port *intel_dig_port = intel_mst->primary;
+	struct intel_dp *intel_dp = &intel_dig_port->dp;
+
+	seq_printf(m, "\taudio support: %s\n", drm_dp_mst_port_has_audio(&intel_dp->mst_mgr, intel_connector->port) ? "yes" : "no");
+}
+
 static void intel_hdmi_info(struct seq_file *m,
 			    struct intel_connector *intel_connector)
 {
@@ -2916,6 +2928,8 @@ static void intel_connector_info(struct seq_file *m,
 			intel_hdmi_info(m, intel_connector);
 		else if (intel_encoder->type == INTEL_OUTPUT_LVDS)
 			intel_lvds_info(m, intel_connector);
+		else if (intel_encoder->type == INTEL_OUTPUT_DP_MST)
+			intel_dp_mst_info(m, intel_connector);
 	}
 
 	seq_printf(m, "\tmodes:\n");
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c
index 63d4706..07b2aa6 100644
--- a/drivers/gpu/drm/i915/intel_audio.c
+++ b/drivers/gpu/drm/i915/intel_audio.c
@@ -262,7 +262,8 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder)
 	tmp |= AUD_CONFIG_N_PROG_ENABLE;
 	tmp &= ~AUD_CONFIG_UPPER_N_MASK;
 	tmp &= ~AUD_CONFIG_LOWER_N_MASK;
-	if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT))
+	if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) ||
+		intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST))
 		tmp |= AUD_CONFIG_N_VALUE_INDEX;
 	I915_WRITE(HSW_AUD_CFG(pipe), tmp);
 
@@ -478,7 +479,8 @@ static void ilk_audio_codec_enable(struct drm_connector *connector,
 	tmp &= ~AUD_CONFIG_N_VALUE_INDEX;
 	tmp &= ~AUD_CONFIG_N_PROG_ENABLE;
 	tmp &= ~AUD_CONFIG_PIXEL_CLOCK_HDMI_MASK;
-	if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT))
+	if (intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DISPLAYPORT) ||
+		intel_pipe_has_type(intel_crtc, INTEL_OUTPUT_DP_MST))
 		tmp |= AUD_CONFIG_N_VALUE_INDEX;
 	else
 		tmp |= audio_config_hdmi_pixel_clock(adjusted_mode);
@@ -516,7 +518,8 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder)
 
 	/* ELD Conn_Type */
 	connector->eld[5] &= ~(3 << 2);
-	if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT))
+	if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT) ||
+		intel_pipe_has_type(crtc, INTEL_OUTPUT_DP_MST))
 		connector->eld[5] |= (1 << 2);
 
 	connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 0639275..4ded0fb 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -78,6 +78,8 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
 		return false;
 	}
 
+	if (drm_dp_mst_port_has_audio(&intel_dp->mst_mgr, found->port))
+		pipe_config->has_audio = true;
 	mst_pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, bpp);
 
 	pipe_config->pbn = mst_pbn;
@@ -102,6 +104,11 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder)
 	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
+	struct drm_device *dev = encoder->base.dev;
+	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct drm_crtc *crtc = encoder->base.crtc;
+	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+
 	int ret;
 
 	DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
@@ -112,6 +119,10 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder)
 	if (ret) {
 		DRM_ERROR("failed to update payload %d\n", ret);
 	}
+	if (intel_crtc->config->has_audio) {
+		intel_audio_codec_disable(encoder);
+		intel_display_power_put(dev_priv, POWER_DOMAIN_AUDIO);
+	}
 }
 
 static void intel_mst_post_disable_dp(struct intel_encoder *encoder)
@@ -214,6 +225,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder)
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct drm_device *dev = intel_dig_port->base.base.dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
+	struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc);
 	enum port port = intel_dig_port->port;
 	int ret;
 
@@ -226,6 +238,13 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder)
 	ret = drm_dp_check_act_status(&intel_dp->mst_mgr);
 
 	ret = drm_dp_update_payload_part2(&intel_dp->mst_mgr);
+
+	if (crtc->config->has_audio) {
+		DRM_DEBUG_DRIVER("Enabling DP audio on pipe %c\n",
+				 pipe_name(crtc->pipe));
+		intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO);
+		intel_audio_codec_enable(encoder);
+	}
 }
 
 static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
@@ -251,6 +270,12 @@ static void intel_dp_mst_enc_get_config(struct intel_encoder *encoder,
 
 	pipe_config->has_dp_encoder = true;
 
+	if (intel_display_power_is_enabled(dev_priv, POWER_DOMAIN_AUDIO)) {
+		temp = I915_READ(HSW_AUD_PIN_ELD_CP_VLD);
+		if (temp & AUDIO_OUTPUT_ENABLE(crtc->pipe))
+			pipe_config->has_audio = true;
+	}
+
 	temp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));
 	if (temp & TRANS_DDI_PHSYNC)
 		flags |= DRM_MODE_FLAG_PHSYNC;
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] dp/mst: add SDP stream support
  2015-11-06  8:34 ` [PATCH 1/2] dp/mst: add SDP stream support libin.yang
@ 2015-11-06  9:26   ` kbuild test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2015-11-06  9:26 UTC (permalink / raw)
  Cc: intel-gfx, kbuild-all, Dave Airlie, daniel.vetter, Libin Yang

[-- Attachment #1: Type: text/plain, Size: 19832 bytes --]

Hi Libin,

[auto build test WARNING on drm/drm-next]
[also build test WARNING on v4.3 next-20151106]
[cannot apply to drm-intel/for-linux-next]

url:    https://github.com/0day-ci/linux/commits/libin-yang-linux-intel-com/drm-i915-DP-MST-audio-support-in-i915/20151106-163857
base:   git://people.freedesktop.org/~airlied/linux.git drm-next
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'wedged'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'fmt'
   include/drm/drm_crtc.h:310: warning: No description found for parameter 'mode_blob'
   include/drm/drm_crtc.h:737: warning: No description found for parameter 'tile_blob_ptr'
   include/drm/drm_crtc.h:776: warning: No description found for parameter 'rotation'
   include/drm/drm_crtc.h:872: warning: No description found for parameter 'mutex'
   include/drm/drm_crtc.h:872: warning: No description found for parameter 'helper_private'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tile_idr'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'delayed_event'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'edid_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'dpms_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'path_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tile_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'plane_type_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'rotation_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_src_x'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_src_y'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_src_w'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_src_h'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_crtc_x'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_crtc_y'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_crtc_w'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_crtc_h'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_fb_id'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_crtc_id'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_active'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'prop_mode_id'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'dvi_i_subconnector_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'dvi_i_select_subconnector_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_subconnector_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_select_subconnector_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_mode_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_left_margin_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_right_margin_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_top_margin_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_bottom_margin_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_brightness_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_contrast_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_flicker_reduction_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_overscan_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_saturation_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'tv_hue_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'scaling_mode_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'aspect_ratio_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'dirty_info_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'suggested_x_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'suggested_y_property'
   include/drm/drm_crtc.h:1157: warning: No description found for parameter 'allow_fb_modifiers'
   include/drm/drm_fb_helper.h:148: warning: No description found for parameter 'connector_info'
   include/drm/drm_dp_helper.h:713: warning: No description found for parameter 'i2c_nack_count'
   include/drm/drm_dp_helper.h:713: warning: No description found for parameter 'i2c_defer_count'
   drivers/gpu/drm/drm_dp_mst_topology.c:2237: warning: No description found for parameter 'connector'
>> drivers/gpu/drm/drm_dp_mst_topology.c:2276: warning: No description found for parameter 'mgr'
>> drivers/gpu/drm/drm_dp_mst_topology.c:2276: warning: No description found for parameter 'port'
   include/drm/drm_dp_mst_helper.h:98: warning: No description found for parameter 'cached_edid'
>> include/drm/drm_dp_mst_helper.h:98: warning: No description found for parameter 'has_audio'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'max_dpcd_transaction_bytes'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'sink_count'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'total_slots'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'avail_slots'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'total_pbn'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'qlock'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'tx_msg_downq'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'tx_msg_upq'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'tx_down_in_progress'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'tx_up_in_progress'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'payload_lock'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'proposed_vcpis'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'payloads'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'payload_mask'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'vcpi_mask'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'tx_waitq'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'work'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'tx_work'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'destroy_connector_list'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'destroy_connector_lock'
   include/drm/drm_dp_mst_helper.h:472: warning: No description found for parameter 'destroy_connector_work'
   drivers/gpu/drm/drm_dp_mst_topology.c:2237: warning: No description found for parameter 'connector'
>> drivers/gpu/drm/drm_dp_mst_topology.c:2276: warning: No description found for parameter 'mgr'
>> drivers/gpu/drm/drm_dp_mst_topology.c:2276: warning: No description found for parameter 'port'
   drivers/gpu/drm/drm_irq.c:173: warning: No description found for parameter 'flags'
   include/drm/drmP.h:168: warning: No description found for parameter 'fmt'
   include/drm/drmP.h:184: warning: No description found for parameter 'fmt'
   include/drm/drmP.h:202: warning: No description found for parameter 'fmt'
   include/drm/drmP.h:247: warning: No description found for parameter 'dev'
   include/drm/drmP.h:247: warning: No description found for parameter 'data'
   include/drm/drmP.h:247: warning: No description found for parameter 'file_priv'
   include/drm/drmP.h:280: warning: No description found for parameter 'ioctl'
   include/drm/drmP.h:280: warning: No description found for parameter '_func'
   include/drm/drmP.h:280: warning: No description found for parameter '_flags'
   include/drm/drmP.h:353: warning: cannot understand function prototype: 'struct drm_lock_data '
   include/drm/drmP.h:406: warning: cannot understand function prototype: 'struct drm_driver '
   include/drm/drmP.h:656: warning: cannot understand function prototype: 'struct drm_info_list '
   include/drm/drmP.h:666: warning: cannot understand function prototype: 'struct drm_info_node '
   include/drm/drmP.h:676: warning: cannot understand function prototype: 'struct drm_minor '
   include/drm/drmP.h:724: warning: cannot understand function prototype: 'struct drm_device '
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'wedged'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'fmt'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'wedged'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'fmt'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'wedged'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'fmt'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'wedged'
   drivers/gpu/drm/i915/i915_irq.c:2584: warning: No description found for parameter 'fmt'
   drivers/gpu/drm/i915/i915_gem.c:421: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:421: warning: No description found for parameter 'data'
   drivers/gpu/drm/i915/i915_gem.c:421: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:686: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:686: warning: No description found for parameter 'data'
   drivers/gpu/drm/i915/i915_gem.c:686: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:767: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:767: warning: No description found for parameter 'obj'
   drivers/gpu/drm/i915/i915_gem.c:767: warning: No description found for parameter 'args'
   drivers/gpu/drm/i915/i915_gem.c:767: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:1029: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:1029: warning: No description found for parameter 'data'
   drivers/gpu/drm/i915/i915_gem.c:1029: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:1194: warning: No description found for parameter 'rps'
   drivers/gpu/drm/i915/i915_gem.c:1400: warning: No description found for parameter 'req'
   drivers/gpu/drm/i915/i915_gem.c:1435: warning: No description found for parameter 'obj'
   drivers/gpu/drm/i915/i915_gem.c:1435: warning: No description found for parameter 'readonly'
   drivers/gpu/drm/i915/i915_gem.c:1558: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:1558: warning: No description found for parameter 'data'
   drivers/gpu/drm/i915/i915_gem.c:1558: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:1621: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:1621: warning: No description found for parameter 'data'
   drivers/gpu/drm/i915/i915_gem.c:1621: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:1666: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:1666: warning: No description found for parameter 'data'
   drivers/gpu/drm/i915/i915_gem.c:1666: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:1954: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:1954: warning: No description found for parameter 'size'
   drivers/gpu/drm/i915/i915_gem.c:1954: warning: No description found for parameter 'tiling_mode'
   drivers/gpu/drm/i915/i915_gem.c:1954: warning: No description found for parameter 'fenced'
   drivers/gpu/drm/i915/i915_gem.c:1954: warning: Excess function parameter 'obj' description in 'i915_gem_get_gtt_alignment'
   drivers/gpu/drm/i915/i915_gem.c:2817: warning: No description found for parameter 'ring'
   drivers/gpu/drm/i915/i915_gem.c:2946: warning: No description found for parameter 'obj'
   drivers/gpu/drm/i915/i915_gem.c:2996: warning: No description found for parameter 'dev'
   drivers/gpu/drm/i915/i915_gem.c:2996: warning: No description found for parameter 'data'
   drivers/gpu/drm/i915/i915_gem.c:2996: warning: No description found for parameter 'file'
   drivers/gpu/drm/i915/i915_gem.c:2996: warning: Excess function parameter 'DRM_IOCTL_ARGS' description in 'i915_gem_wait_ioctl'
   drivers/gpu/drm/i915/i915_gem.c:3365: warning: No description found for parameter 'obj'
   drivers/gpu/drm/i915/i915_gem.c:3365: warning: No description found for parameter 'vm'
   drivers/gpu/drm/i915/i915_gem.c:3365: warning: No description found for parameter 'ggtt_view'
   drivers/gpu/drm/i915/i915_gem.c:3365: warning: No description found for parameter 'alignment'
   drivers/gpu/drm/i915/i915_gem.c:3365: warning: No description found for parameter 'flags'
   drivers/gpu/drm/i915/i915_gem.c:3600: warning: No description found for parameter 'obj'
   drivers/gpu/drm/i915/i915_gem.c:3600: warning: No description found for parameter 'write'
   drivers/gpu/drm/i915/i915_gem.c:3675: warning: No description found for parameter 'obj'
   drivers/gpu/drm/i915/i915_gem.c:3675: warning: No description found for parameter 'cache_level'
   drivers/gpu/drm/i915/i915_gem.c:3949: warning: No description found for parameter 'obj'
   drivers/gpu/drm/i915/i915_gem.c:3949: warning: No description found for parameter 'write'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: No description found for parameter 'params'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'dev' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'file' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'ring' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'ctx' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'batch_obj' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'exec_start' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'dispatch_flags' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: No description found for parameter 'params'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'dev' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'file' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'ring' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'ctx' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'batch_obj' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'exec_start' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_lrc.c:871: warning: Excess function parameter 'dispatch_flags' description in 'intel_execlists_submission'
   drivers/gpu/drm/i915/intel_guc_loader.c:1: warning: no structured comments found
       Was looking for 'GuC-specific firmware loader'.
   drivers/gpu/drm/i915/i915_guc_submission.c:598: warning: No description found for parameter 'rq'
   drivers/gpu/drm/i915/i915_guc_submission.c:598: warning: Excess function parameter 'ctx' description in 'i915_guc_submit'
   drivers/gpu/drm/i915/i915_guc_submission.c:598: warning: Excess function parameter 'ring' description in 'i915_guc_submit'
   drivers/gpu/drm/i915/i915_guc_submission.c:741: warning: No description found for parameter 'ctx'
   drivers/gpu/drm/i915/i915_guc_submission.c:1: warning: no structured comments found
       Was looking for 'GuC-based command submissison'.
   drivers/gpu/drm/i915/i915_guc_submission.c:598: warning: No description found for parameter 'rq'
   drivers/gpu/drm/i915/i915_guc_submission.c:598: warning: Excess function parameter 'ctx' description in 'i915_guc_submit'
   drivers/gpu/drm/i915/i915_guc_submission.c:598: warning: Excess function parameter 'ring' description in 'i915_guc_submit'
   drivers/gpu/drm/i915/i915_guc_submission.c:741: warning: No description found for parameter 'ctx'

vim +/mgr +2276 drivers/gpu/drm/drm_dp_mst_topology.c

  2231	 *
  2232	 * This returns the current connection state for a port. It validates the
  2233	 * port pointer still exists so the caller doesn't require a reference
  2234	 */
  2235	enum drm_connector_status drm_dp_mst_detect_port(struct drm_connector *connector,
  2236							 struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
> 2237	{
  2238		enum drm_connector_status status = connector_status_disconnected;
  2239	
  2240		/* we need to search for the port in the mgr in case its gone */
  2241		port = drm_dp_get_validated_port_ref(mgr, port);
  2242		if (!port)
  2243			return connector_status_disconnected;
  2244	
  2245		if (!port->ddps)
  2246			goto out;
  2247	
  2248		switch (port->pdt) {
  2249		case DP_PEER_DEVICE_NONE:
  2250		case DP_PEER_DEVICE_MST_BRANCHING:
  2251			break;
  2252	
  2253		case DP_PEER_DEVICE_SST_SINK:
  2254			status = connector_status_connected;
  2255			/* for logical ports - cache the EDID */
  2256			if (port->port_num >= 8 && !port->cached_edid) {
  2257				port->cached_edid = drm_get_edid(connector, &port->aux.ddc);
  2258			}
  2259			break;
  2260		case DP_PEER_DEVICE_DP_LEGACY_CONV:
  2261			if (port->ldps)
  2262				status = connector_status_connected;
  2263			break;
  2264		}
  2265	out:
  2266		drm_dp_put_port(port);
  2267		return status;
  2268	}
  2269	EXPORT_SYMBOL(drm_dp_mst_detect_port);
  2270	
  2271	/**
  2272	 * drm_dp_mst_port_has_audio()
  2273	 */
  2274	bool drm_dp_mst_port_has_audio(struct drm_dp_mst_topology_mgr *mgr,
  2275						struct drm_dp_mst_port *port)
> 2276	{
  2277		bool ret = false;
  2278	
  2279		port = drm_dp_get_validated_port_ref(mgr, port);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 6062 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-11-06  9:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-06  8:34 [PATCH 0/2] drm/i915 DP MST audio support in i915 libin.yang
2015-11-06  8:34 ` [PATCH 1/2] dp/mst: add SDP stream support libin.yang
2015-11-06  9:26   ` kbuild test robot
2015-11-06  8:34 ` [PATCH 2/2] drm/i915: start adding dp mst audio libin.yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox