All of lore.kernel.org
 help / color / mirror / Atom feed
* drm/i915: vbt data housecleaning
@ 2016-03-24 15:50 Jani Nikula
  2016-03-24 15:50 ` [PATCH 1/4] drm/i915: use a substruct in vbt data for edp Jani Nikula
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Jani Nikula @ 2016-03-24 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

After this series, afaict, intel_bios.c only updates fields under
dev_priv->vbt with the data from VBT.

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

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

* [PATCH 1/4] drm/i915: use a substruct in vbt data for edp
  2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
@ 2016-03-24 15:50 ` Jani Nikula
  2016-03-29 11:43   ` Daniel Vetter
  2016-03-24 15:50 ` [PATCH 2/4] drm/i915: move edp low vswing config to vbt data Jani Nikula
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Jani Nikula @ 2016-03-24 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Housekeeping, similar to psr, backlight, and dsi. No functional changes.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h   | 19 ++++++++++---------
 drivers/gpu/drm/i915/intel_bios.c | 38 +++++++++++++++++++-------------------
 drivers/gpu/drm/i915/intel_ddi.c  |  8 ++++----
 drivers/gpu/drm/i915/intel_dp.c   | 16 ++++++++--------
 drivers/gpu/drm/i915/intel_lvds.c |  2 +-
 5 files changed, 42 insertions(+), 41 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b93ef7017c93..fe8021ecb254 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1446,15 +1446,16 @@ struct intel_vbt_data {
 
 	enum drrs_support_type drrs_type;
 
-	/* eDP */
-	int edp_rate;
-	int edp_lanes;
-	int edp_preemphasis;
-	int edp_vswing;
-	bool edp_initialized;
-	bool edp_support;
-	int edp_bpp;
-	struct edp_power_seq edp_pps;
+	struct {
+		int rate;
+		int lanes;
+		int preemphasis;
+		int vswing;
+		bool initialized;
+		bool support;
+		int bpp;
+		struct edp_power_seq pps;
+	} edp;
 
 	struct {
 		bool full_link;
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 083003b015f5..61eb7a6bb8f0 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -527,7 +527,7 @@ parse_driver_features(struct drm_i915_private *dev_priv,
 		return;
 
 	if (driver->lvds_config == BDB_DRIVER_FEATURE_EDP)
-		dev_priv->vbt.edp_support = 1;
+		dev_priv->vbt.edp.support = 1;
 
 	if (driver->dual_frequency)
 		dev_priv->render_reclock_avail = true;
@@ -552,20 +552,20 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 
 	edp = find_section(bdb, BDB_EDP);
 	if (!edp) {
-		if (dev_priv->vbt.edp_support)
+		if (dev_priv->vbt.edp.support)
 			DRM_DEBUG_KMS("No eDP BDB found but eDP panel supported.\n");
 		return;
 	}
 
 	switch ((edp->color_depth >> (panel_type * 2)) & 3) {
 	case EDP_18BPP:
-		dev_priv->vbt.edp_bpp = 18;
+		dev_priv->vbt.edp.bpp = 18;
 		break;
 	case EDP_24BPP:
-		dev_priv->vbt.edp_bpp = 24;
+		dev_priv->vbt.edp.bpp = 24;
 		break;
 	case EDP_30BPP:
-		dev_priv->vbt.edp_bpp = 30;
+		dev_priv->vbt.edp.bpp = 30;
 		break;
 	}
 
@@ -573,14 +573,14 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 	edp_pps = &edp->power_seqs[panel_type];
 	edp_link_params = &edp->link_params[panel_type];
 
-	dev_priv->vbt.edp_pps = *edp_pps;
+	dev_priv->vbt.edp.pps = *edp_pps;
 
 	switch (edp_link_params->rate) {
 	case EDP_RATE_1_62:
-		dev_priv->vbt.edp_rate = DP_LINK_BW_1_62;
+		dev_priv->vbt.edp.rate = DP_LINK_BW_1_62;
 		break;
 	case EDP_RATE_2_7:
-		dev_priv->vbt.edp_rate = DP_LINK_BW_2_7;
+		dev_priv->vbt.edp.rate = DP_LINK_BW_2_7;
 		break;
 	default:
 		DRM_DEBUG_KMS("VBT has unknown eDP link rate value %u\n",
@@ -590,13 +590,13 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 
 	switch (edp_link_params->lanes) {
 	case EDP_LANE_1:
-		dev_priv->vbt.edp_lanes = 1;
+		dev_priv->vbt.edp.lanes = 1;
 		break;
 	case EDP_LANE_2:
-		dev_priv->vbt.edp_lanes = 2;
+		dev_priv->vbt.edp.lanes = 2;
 		break;
 	case EDP_LANE_4:
-		dev_priv->vbt.edp_lanes = 4;
+		dev_priv->vbt.edp.lanes = 4;
 		break;
 	default:
 		DRM_DEBUG_KMS("VBT has unknown eDP lane count value %u\n",
@@ -606,16 +606,16 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 
 	switch (edp_link_params->preemphasis) {
 	case EDP_PREEMPHASIS_NONE:
-		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0;
+		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0;
 		break;
 	case EDP_PREEMPHASIS_3_5dB:
-		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1;
+		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1;
 		break;
 	case EDP_PREEMPHASIS_6dB:
-		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2;
+		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2;
 		break;
 	case EDP_PREEMPHASIS_9_5dB:
-		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3;
+		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3;
 		break;
 	default:
 		DRM_DEBUG_KMS("VBT has unknown eDP pre-emphasis value %u\n",
@@ -625,16 +625,16 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 
 	switch (edp_link_params->vswing) {
 	case EDP_VSWING_0_4V:
-		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0;
+		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0;
 		break;
 	case EDP_VSWING_0_6V:
-		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1;
+		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1;
 		break;
 	case EDP_VSWING_0_8V:
-		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
+		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
 		break;
 	case EDP_VSWING_1_2V:
-		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
+		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
 		break;
 	default:
 		DRM_DEBUG_KMS("VBT has unknown eDP voltage swing value %u\n",
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index e6c3a80e1360..50e4978359a4 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2002,8 +2002,8 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
 	pipe_config->has_audio =
 		intel_ddi_is_audio_enabled(dev_priv, intel_crtc);
 
-	if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp_bpp &&
-	    pipe_config->pipe_bpp > dev_priv->vbt.edp_bpp) {
+	if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp.bpp &&
+	    pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
 		/*
 		 * This is a big fat ugly hack.
 		 *
@@ -2018,8 +2018,8 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
 		 * load.
 		 */
 		DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n",
-			      pipe_config->pipe_bpp, dev_priv->vbt.edp_bpp);
-		dev_priv->vbt.edp_bpp = pipe_config->pipe_bpp;
+			      pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp);
+		dev_priv->vbt.edp.bpp = pipe_config->pipe_bpp;
 	}
 
 	intel_ddi_clock_get(encoder, pipe_config);
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 3ff8f1d67594..55faad13174d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1500,10 +1500,10 @@ intel_dp_compute_config(struct intel_encoder *encoder,
 
 		/* Get bpp from vbt only for panels that dont have bpp in edid */
 		if (intel_connector->base.display_info.bpc == 0 &&
-			(dev_priv->vbt.edp_bpp && dev_priv->vbt.edp_bpp < bpp)) {
+			(dev_priv->vbt.edp.bpp && dev_priv->vbt.edp.bpp < bpp)) {
 			DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n",
-				      dev_priv->vbt.edp_bpp);
-			bpp = dev_priv->vbt.edp_bpp;
+				      dev_priv->vbt.edp.bpp);
+			bpp = dev_priv->vbt.edp.bpp;
 		}
 
 		/*
@@ -2386,8 +2386,8 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
 		intel_dotclock_calculate(pipe_config->port_clock,
 					 &pipe_config->dp_m_n);
 
-	if (is_edp(intel_dp) && dev_priv->vbt.edp_bpp &&
-	    pipe_config->pipe_bpp > dev_priv->vbt.edp_bpp) {
+	if (is_edp(intel_dp) && dev_priv->vbt.edp.bpp &&
+	    pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
 		/*
 		 * This is a big fat ugly hack.
 		 *
@@ -2402,8 +2402,8 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
 		 * load.
 		 */
 		DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n",
-			      pipe_config->pipe_bpp, dev_priv->vbt.edp_bpp);
-		dev_priv->vbt.edp_bpp = pipe_config->pipe_bpp;
+			      pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp);
+		dev_priv->vbt.edp.bpp = pipe_config->pipe_bpp;
 	}
 }
 
@@ -5111,7 +5111,7 @@ intel_dp_init_panel_power_sequencer(struct drm_device *dev,
 	DRM_DEBUG_KMS("cur t1_t3 %d t8 %d t9 %d t10 %d t11_t12 %d\n",
 		      cur.t1_t3, cur.t8, cur.t9, cur.t10, cur.t11_t12);
 
-	vbt = dev_priv->vbt.edp_pps;
+	vbt = dev_priv->vbt.edp.pps;
 
 	/* Upper limits from eDP 1.3 spec. Note that we use the clunky units of
 	 * our hw here, which are all in 100usec. */
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 766ba566fef1..5d2b2575de33 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -924,7 +924,7 @@ void intel_lvds_init(struct drm_device *dev)
 	if (HAS_PCH_SPLIT(dev)) {
 		if ((lvds & LVDS_DETECTED) == 0)
 			return;
-		if (dev_priv->vbt.edp_support) {
+		if (dev_priv->vbt.edp.support) {
 			DRM_DEBUG_KMS("disable LVDS for eDP support\n");
 			return;
 		}
-- 
2.1.4

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

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

* [PATCH 2/4] drm/i915: move edp low vswing config to vbt data
  2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
  2016-03-24 15:50 ` [PATCH 1/4] drm/i915: use a substruct in vbt data for edp Jani Nikula
@ 2016-03-24 15:50 ` Jani Nikula
  2016-03-24 15:50 ` [PATCH 3/4] drm/i915: move sdvo mappings " Jani Nikula
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2016-03-24 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Move all data initialized from VBT under dev_priv->vbt. No functional
changes.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h   | 3 +--
 drivers/gpu/drm/i915/intel_bios.c | 4 ++--
 drivers/gpu/drm/i915/intel_ddi.c  | 4 ++--
 drivers/gpu/drm/i915/intel_dp.c   | 2 +-
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index fe8021ecb254..ad6f69ef95d5 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1451,6 +1451,7 @@ struct intel_vbt_data {
 		int lanes;
 		int preemphasis;
 		int vswing;
+		bool low_vswing;
 		bool initialized;
 		bool support;
 		int bpp;
@@ -1963,8 +1964,6 @@ struct drm_i915_private {
 
 	struct intel_context *kernel_context;
 
-	bool edp_low_vswing;
-
 	/* perform PHY state sanity checks? */
 	bool chv_phy_assert[2];
 
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 61eb7a6bb8f0..3af8a4a2e145 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -647,10 +647,10 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
 
 		/* Don't read from VBT if module parameter has valid value*/
 		if (i915.edp_vswing) {
-			dev_priv->edp_low_vswing = i915.edp_vswing == 1;
+			dev_priv->vbt.edp.low_vswing = i915.edp_vswing == 1;
 		} else {
 			vswing = (edp->edp_vswing_preemph >> (panel_type * 4)) & 0xF;
-			dev_priv->edp_low_vswing = vswing == 0;
+			dev_priv->vbt.edp.low_vswing = vswing == 0;
 		}
 	}
 }
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 50e4978359a4..1e083853c70d 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -360,7 +360,7 @@ skl_get_buf_trans_dp(struct drm_i915_private *dev_priv, int *n_entries)
 static const struct ddi_buf_trans *
 skl_get_buf_trans_edp(struct drm_i915_private *dev_priv, int *n_entries)
 {
-	if (dev_priv->edp_low_vswing) {
+	if (dev_priv->vbt.edp.low_vswing) {
 		if (IS_SKL_ULX(dev_priv) || IS_KBL_ULX(dev_priv)) {
 			*n_entries = ARRAY_SIZE(skl_y_ddi_translations_edp);
 			return skl_y_ddi_translations_edp;
@@ -1431,7 +1431,7 @@ static void bxt_ddi_vswing_sequence(struct drm_i915_private *dev_priv,
 	u32 n_entries, i;
 	uint32_t val;
 
-	if (type == INTEL_OUTPUT_EDP && dev_priv->edp_low_vswing) {
+	if (type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp.low_vswing) {
 		n_entries = ARRAY_SIZE(bxt_ddi_translations_edp);
 		ddi_translations = bxt_ddi_translations_edp;
 	} else if (type == INTEL_OUTPUT_DISPLAYPORT
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 55faad13174d..3bdd8ba59b8c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -3157,7 +3157,7 @@ intel_dp_voltage_max(struct intel_dp *intel_dp)
 	if (IS_BROXTON(dev))
 		return DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
 	else if (INTEL_INFO(dev)->gen >= 9) {
-		if (dev_priv->edp_low_vswing && port == PORT_A)
+		if (dev_priv->vbt.edp.low_vswing && port == PORT_A)
 			return DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
 		return DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
 	} else if (IS_VALLEYVIEW(dev) || IS_CHERRYVIEW(dev))
-- 
2.1.4

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

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

* [PATCH 3/4] drm/i915: move sdvo mappings to vbt data
  2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
  2016-03-24 15:50 ` [PATCH 1/4] drm/i915: use a substruct in vbt data for edp Jani Nikula
  2016-03-24 15:50 ` [PATCH 2/4] drm/i915: move edp low vswing config to vbt data Jani Nikula
@ 2016-03-24 15:50 ` Jani Nikula
  2016-03-29 11:45   ` Daniel Vetter
  2016-03-24 15:50 ` [PATCH 4/4] drm/i915: remove unused dev_priv->render_reclock_avail Jani Nikula
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Jani Nikula @ 2016-03-24 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Move all data initialized from VBT under dev_priv->vbt. No functional
changes.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h   |  3 +--
 drivers/gpu/drm/i915/intel_bios.c |  2 +-
 drivers/gpu/drm/i915/intel_sdvo.c | 16 ++++++++--------
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ad6f69ef95d5..bf867e28731d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1491,6 +1491,7 @@ struct intel_vbt_data {
 	union child_device_config *child_dev;
 
 	struct ddi_vbt_port_info ddi_port_info[I915_MAX_PORTS];
+	struct sdvo_device_mapping sdvo_mappings[2];
 };
 
 enum intel_ddb_partitioning {
@@ -1823,8 +1824,6 @@ struct drm_i915_private {
 
 	/* Kernel Modesetting */
 
-	struct sdvo_device_mapping sdvo_mappings[2];
-
 	struct drm_crtc *plane_to_crtc_mapping[I915_MAX_PIPES];
 	struct drm_crtc *pipe_to_crtc_mapping[I915_MAX_PIPES];
 	wait_queue_head_t pending_flip_queue;
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 3af8a4a2e145..407fb7a12a49 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -482,7 +482,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
 			      child->slave_addr,
 			      (child->dvo_port == DEVICE_PORT_DVOB) ?
 			      "SDVOB" : "SDVOC");
-		p_mapping = &(dev_priv->sdvo_mappings[child->dvo_port - 1]);
+		p_mapping = &dev_priv->vbt.sdvo_mappings[child->dvo_port - 1];
 		if (!p_mapping->initialized) {
 			p_mapping->dvo_port = child->dvo_port;
 			p_mapping->slave_addr = child->slave_addr;
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index fae64bc93c1b..2128fae5687d 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2260,9 +2260,9 @@ intel_sdvo_select_ddc_bus(struct drm_i915_private *dev_priv,
 	struct sdvo_device_mapping *mapping;
 
 	if (sdvo->port == PORT_B)
-		mapping = &(dev_priv->sdvo_mappings[0]);
+		mapping = &dev_priv->vbt.sdvo_mappings[0];
 	else
-		mapping = &(dev_priv->sdvo_mappings[1]);
+		mapping = &dev_priv->vbt.sdvo_mappings[1];
 
 	if (mapping->initialized)
 		sdvo->ddc_bus = 1 << ((mapping->ddc_pin & 0xf0) >> 4);
@@ -2278,9 +2278,9 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv,
 	u8 pin;
 
 	if (sdvo->port == PORT_B)
-		mapping = &dev_priv->sdvo_mappings[0];
+		mapping = &dev_priv->vbt.sdvo_mappings[0];
 	else
-		mapping = &dev_priv->sdvo_mappings[1];
+		mapping = &dev_priv->vbt.sdvo_mappings[1];
 
 	if (mapping->initialized &&
 	    intel_gmbus_is_valid_pin(dev_priv, mapping->i2c_pin))
@@ -2316,11 +2316,11 @@ intel_sdvo_get_slave_addr(struct drm_device *dev, struct intel_sdvo *sdvo)
 	struct sdvo_device_mapping *my_mapping, *other_mapping;
 
 	if (sdvo->port == PORT_B) {
-		my_mapping = &dev_priv->sdvo_mappings[0];
-		other_mapping = &dev_priv->sdvo_mappings[1];
+		my_mapping = &dev_priv->vbt.sdvo_mappings[0];
+		other_mapping = &dev_priv->vbt.sdvo_mappings[1];
 	} else {
-		my_mapping = &dev_priv->sdvo_mappings[1];
-		other_mapping = &dev_priv->sdvo_mappings[0];
+		my_mapping = &dev_priv->vbt.sdvo_mappings[1];
+		other_mapping = &dev_priv->vbt.sdvo_mappings[0];
 	}
 
 	/* If the BIOS described our SDVO device, take advantage of it. */
-- 
2.1.4

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

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

* [PATCH 4/4] drm/i915: remove unused dev_priv->render_reclock_avail
  2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
                   ` (2 preceding siblings ...)
  2016-03-24 15:50 ` [PATCH 3/4] drm/i915: move sdvo mappings " Jani Nikula
@ 2016-03-24 15:50 ` Jani Nikula
  2016-03-24 17:31 ` ✗ Fi.CI.BAT: failure for series starting with [1/4] drm/i915: use a substruct in vbt data for edp Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2016-03-24 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Set from VBT, but never used. Good riddance.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.h   | 3 ---
 drivers/gpu/drm/i915/intel_bios.c | 3 ---
 2 files changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index bf867e28731d..0906dfd7b1a9 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1844,9 +1844,6 @@ struct drm_i915_private {
 
 	struct i915_workarounds workarounds;
 
-	/* Reclocking support */
-	bool render_reclock_avail;
-
 	struct i915_frontbuffer_tracking fb_tracking;
 
 	u16 orig_clock;
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index 407fb7a12a49..9c406b0f4173 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -529,9 +529,6 @@ parse_driver_features(struct drm_i915_private *dev_priv,
 	if (driver->lvds_config == BDB_DRIVER_FEATURE_EDP)
 		dev_priv->vbt.edp.support = 1;
 
-	if (driver->dual_frequency)
-		dev_priv->render_reclock_avail = true;
-
 	DRM_DEBUG_KMS("DRRS State Enabled:%d\n", driver->drrs_enabled);
 	/*
 	 * If DRRS is not supported, drrs_type has to be set to 0.
-- 
2.1.4

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

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

* ✗ Fi.CI.BAT: failure for series starting with [1/4] drm/i915: use a substruct in vbt data for edp
  2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
                   ` (3 preceding siblings ...)
  2016-03-24 15:50 ` [PATCH 4/4] drm/i915: remove unused dev_priv->render_reclock_avail Jani Nikula
@ 2016-03-24 17:31 ` Patchwork
  2016-03-29 13:44 ` Patchwork
  2016-03-29 14:13 ` Patchwork
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2016-03-24 17:31 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/4] drm/i915: use a substruct in vbt data for edp
URL   : https://patchwork.freedesktop.org/series/4868/
State : failure

== Summary ==

Series 4868v1 Series without cover letter
http://patchwork.freedesktop.org/api/1.0/series/4868/revisions/1/mbox/

Test kms_flip:
        Subgroup basic-flip-vs-wf_vblank:
                pass       -> FAIL       (snb-x220t)
Test pm_rpm:
        Subgroup basic-rte:
                dmesg-warn -> PASS       (byt-nuc) UNSTABLE

bdw-nuci7        total:192  pass:179  dwarn:0   dfail:0   fail:1   skip:12 
bdw-ultra        total:192  pass:170  dwarn:0   dfail:0   fail:1   skip:21 
bsw-nuc-2        total:192  pass:155  dwarn:0   dfail:0   fail:0   skip:37 
byt-nuc          total:192  pass:157  dwarn:0   dfail:0   fail:0   skip:35 
hsw-brixbox      total:192  pass:170  dwarn:0   dfail:0   fail:0   skip:22 
hsw-gt2          total:192  pass:175  dwarn:0   dfail:0   fail:0   skip:17 
ivb-t430s        total:192  pass:167  dwarn:0   dfail:0   fail:0   skip:25 
skl-i7k-2        total:192  pass:169  dwarn:0   dfail:0   fail:0   skip:23 
skl-nuci5        total:192  pass:181  dwarn:0   dfail:0   fail:0   skip:11 
snb-dellxps      total:192  pass:158  dwarn:0   dfail:0   fail:0   skip:34 
snb-x220t        total:192  pass:157  dwarn:0   dfail:0   fail:2   skip:33 

Results at /archive/results/CI_IGT_test/Patchwork_1713/

f5d413cccefa1f93d64c34f357151d42add63a84 drm-intel-nightly: 2016y-03m-24d-14h-34m-29s UTC integration manifest
1a39afcdd378040f1e49f3958f7b4d1fb5816ebb drm/i915: remove unused dev_priv->render_reclock_avail
1d4564efdf67819ed1eaabd04282c0530fb1317b drm/i915: move sdvo mappings to vbt data
86cd1204bb7bfe27dcb2d8e7a400e4566a5547d6 drm/i915: move edp low vswing config to vbt data
4acc3eb5e89dcb05e9f7af7bc1ae490bcfcf2156 drm/i915: use a substruct in vbt data for edp

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

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

* Re: [PATCH 1/4] drm/i915: use a substruct in vbt data for edp
  2016-03-24 15:50 ` [PATCH 1/4] drm/i915: use a substruct in vbt data for edp Jani Nikula
@ 2016-03-29 11:43   ` Daniel Vetter
  0 siblings, 0 replies; 11+ messages in thread
From: Daniel Vetter @ 2016-03-29 11:43 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Mar 24, 2016 at 05:50:20PM +0200, Jani Nikula wrote:
> Housekeeping, similar to psr, backlight, and dsi. No functional changes.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Assuming gcc is still happy: Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/i915/i915_drv.h   | 19 ++++++++++---------
>  drivers/gpu/drm/i915/intel_bios.c | 38 +++++++++++++++++++-------------------
>  drivers/gpu/drm/i915/intel_ddi.c  |  8 ++++----
>  drivers/gpu/drm/i915/intel_dp.c   | 16 ++++++++--------
>  drivers/gpu/drm/i915/intel_lvds.c |  2 +-
>  5 files changed, 42 insertions(+), 41 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b93ef7017c93..fe8021ecb254 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1446,15 +1446,16 @@ struct intel_vbt_data {
>  
>  	enum drrs_support_type drrs_type;
>  
> -	/* eDP */
> -	int edp_rate;
> -	int edp_lanes;
> -	int edp_preemphasis;
> -	int edp_vswing;
> -	bool edp_initialized;
> -	bool edp_support;
> -	int edp_bpp;
> -	struct edp_power_seq edp_pps;
> +	struct {
> +		int rate;
> +		int lanes;
> +		int preemphasis;
> +		int vswing;
> +		bool initialized;
> +		bool support;
> +		int bpp;
> +		struct edp_power_seq pps;
> +	} edp;
>  
>  	struct {
>  		bool full_link;
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 083003b015f5..61eb7a6bb8f0 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -527,7 +527,7 @@ parse_driver_features(struct drm_i915_private *dev_priv,
>  		return;
>  
>  	if (driver->lvds_config == BDB_DRIVER_FEATURE_EDP)
> -		dev_priv->vbt.edp_support = 1;
> +		dev_priv->vbt.edp.support = 1;
>  
>  	if (driver->dual_frequency)
>  		dev_priv->render_reclock_avail = true;
> @@ -552,20 +552,20 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
>  
>  	edp = find_section(bdb, BDB_EDP);
>  	if (!edp) {
> -		if (dev_priv->vbt.edp_support)
> +		if (dev_priv->vbt.edp.support)
>  			DRM_DEBUG_KMS("No eDP BDB found but eDP panel supported.\n");
>  		return;
>  	}
>  
>  	switch ((edp->color_depth >> (panel_type * 2)) & 3) {
>  	case EDP_18BPP:
> -		dev_priv->vbt.edp_bpp = 18;
> +		dev_priv->vbt.edp.bpp = 18;
>  		break;
>  	case EDP_24BPP:
> -		dev_priv->vbt.edp_bpp = 24;
> +		dev_priv->vbt.edp.bpp = 24;
>  		break;
>  	case EDP_30BPP:
> -		dev_priv->vbt.edp_bpp = 30;
> +		dev_priv->vbt.edp.bpp = 30;
>  		break;
>  	}
>  
> @@ -573,14 +573,14 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
>  	edp_pps = &edp->power_seqs[panel_type];
>  	edp_link_params = &edp->link_params[panel_type];
>  
> -	dev_priv->vbt.edp_pps = *edp_pps;
> +	dev_priv->vbt.edp.pps = *edp_pps;
>  
>  	switch (edp_link_params->rate) {
>  	case EDP_RATE_1_62:
> -		dev_priv->vbt.edp_rate = DP_LINK_BW_1_62;
> +		dev_priv->vbt.edp.rate = DP_LINK_BW_1_62;
>  		break;
>  	case EDP_RATE_2_7:
> -		dev_priv->vbt.edp_rate = DP_LINK_BW_2_7;
> +		dev_priv->vbt.edp.rate = DP_LINK_BW_2_7;
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("VBT has unknown eDP link rate value %u\n",
> @@ -590,13 +590,13 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
>  
>  	switch (edp_link_params->lanes) {
>  	case EDP_LANE_1:
> -		dev_priv->vbt.edp_lanes = 1;
> +		dev_priv->vbt.edp.lanes = 1;
>  		break;
>  	case EDP_LANE_2:
> -		dev_priv->vbt.edp_lanes = 2;
> +		dev_priv->vbt.edp.lanes = 2;
>  		break;
>  	case EDP_LANE_4:
> -		dev_priv->vbt.edp_lanes = 4;
> +		dev_priv->vbt.edp.lanes = 4;
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("VBT has unknown eDP lane count value %u\n",
> @@ -606,16 +606,16 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
>  
>  	switch (edp_link_params->preemphasis) {
>  	case EDP_PREEMPHASIS_NONE:
> -		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0;
> +		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_0;
>  		break;
>  	case EDP_PREEMPHASIS_3_5dB:
> -		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1;
> +		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_1;
>  		break;
>  	case EDP_PREEMPHASIS_6dB:
> -		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2;
> +		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_2;
>  		break;
>  	case EDP_PREEMPHASIS_9_5dB:
> -		dev_priv->vbt.edp_preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3;
> +		dev_priv->vbt.edp.preemphasis = DP_TRAIN_PRE_EMPH_LEVEL_3;
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("VBT has unknown eDP pre-emphasis value %u\n",
> @@ -625,16 +625,16 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
>  
>  	switch (edp_link_params->vswing) {
>  	case EDP_VSWING_0_4V:
> -		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0;
> +		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_0;
>  		break;
>  	case EDP_VSWING_0_6V:
> -		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1;
> +		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_1;
>  		break;
>  	case EDP_VSWING_0_8V:
> -		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
> +		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
>  		break;
>  	case EDP_VSWING_1_2V:
> -		dev_priv->vbt.edp_vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
> +		dev_priv->vbt.edp.vswing = DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("VBT has unknown eDP voltage swing value %u\n",
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index e6c3a80e1360..50e4978359a4 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -2002,8 +2002,8 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
>  	pipe_config->has_audio =
>  		intel_ddi_is_audio_enabled(dev_priv, intel_crtc);
>  
> -	if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp_bpp &&
> -	    pipe_config->pipe_bpp > dev_priv->vbt.edp_bpp) {
> +	if (encoder->type == INTEL_OUTPUT_EDP && dev_priv->vbt.edp.bpp &&
> +	    pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
>  		/*
>  		 * This is a big fat ugly hack.
>  		 *
> @@ -2018,8 +2018,8 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
>  		 * load.
>  		 */
>  		DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n",
> -			      pipe_config->pipe_bpp, dev_priv->vbt.edp_bpp);
> -		dev_priv->vbt.edp_bpp = pipe_config->pipe_bpp;
> +			      pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp);
> +		dev_priv->vbt.edp.bpp = pipe_config->pipe_bpp;
>  	}
>  
>  	intel_ddi_clock_get(encoder, pipe_config);
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 3ff8f1d67594..55faad13174d 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1500,10 +1500,10 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  
>  		/* Get bpp from vbt only for panels that dont have bpp in edid */
>  		if (intel_connector->base.display_info.bpc == 0 &&
> -			(dev_priv->vbt.edp_bpp && dev_priv->vbt.edp_bpp < bpp)) {
> +			(dev_priv->vbt.edp.bpp && dev_priv->vbt.edp.bpp < bpp)) {
>  			DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n",
> -				      dev_priv->vbt.edp_bpp);
> -			bpp = dev_priv->vbt.edp_bpp;
> +				      dev_priv->vbt.edp.bpp);
> +			bpp = dev_priv->vbt.edp.bpp;
>  		}
>  
>  		/*
> @@ -2386,8 +2386,8 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
>  		intel_dotclock_calculate(pipe_config->port_clock,
>  					 &pipe_config->dp_m_n);
>  
> -	if (is_edp(intel_dp) && dev_priv->vbt.edp_bpp &&
> -	    pipe_config->pipe_bpp > dev_priv->vbt.edp_bpp) {
> +	if (is_edp(intel_dp) && dev_priv->vbt.edp.bpp &&
> +	    pipe_config->pipe_bpp > dev_priv->vbt.edp.bpp) {
>  		/*
>  		 * This is a big fat ugly hack.
>  		 *
> @@ -2402,8 +2402,8 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
>  		 * load.
>  		 */
>  		DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n",
> -			      pipe_config->pipe_bpp, dev_priv->vbt.edp_bpp);
> -		dev_priv->vbt.edp_bpp = pipe_config->pipe_bpp;
> +			      pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp);
> +		dev_priv->vbt.edp.bpp = pipe_config->pipe_bpp;
>  	}
>  }
>  
> @@ -5111,7 +5111,7 @@ intel_dp_init_panel_power_sequencer(struct drm_device *dev,
>  	DRM_DEBUG_KMS("cur t1_t3 %d t8 %d t9 %d t10 %d t11_t12 %d\n",
>  		      cur.t1_t3, cur.t8, cur.t9, cur.t10, cur.t11_t12);
>  
> -	vbt = dev_priv->vbt.edp_pps;
> +	vbt = dev_priv->vbt.edp.pps;
>  
>  	/* Upper limits from eDP 1.3 spec. Note that we use the clunky units of
>  	 * our hw here, which are all in 100usec. */
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 766ba566fef1..5d2b2575de33 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -924,7 +924,7 @@ void intel_lvds_init(struct drm_device *dev)
>  	if (HAS_PCH_SPLIT(dev)) {
>  		if ((lvds & LVDS_DETECTED) == 0)
>  			return;
> -		if (dev_priv->vbt.edp_support) {
> +		if (dev_priv->vbt.edp.support) {
>  			DRM_DEBUG_KMS("disable LVDS for eDP support\n");
>  			return;
>  		}
> -- 
> 2.1.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 3/4] drm/i915: move sdvo mappings to vbt data
  2016-03-24 15:50 ` [PATCH 3/4] drm/i915: move sdvo mappings " Jani Nikula
@ 2016-03-29 11:45   ` Daniel Vetter
  2016-03-29 12:25     ` Jani Nikula
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel Vetter @ 2016-03-29 11:45 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

On Thu, Mar 24, 2016 at 05:50:22PM +0200, Jani Nikula wrote:
> Move all data initialized from VBT under dev_priv->vbt. No functional
> changes.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.h   |  3 +--
>  drivers/gpu/drm/i915/intel_bios.c |  2 +-
>  drivers/gpu/drm/i915/intel_sdvo.c | 16 ++++++++--------
>  3 files changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index ad6f69ef95d5..bf867e28731d 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1491,6 +1491,7 @@ struct intel_vbt_data {
>  	union child_device_config *child_dev;
>  
>  	struct ddi_vbt_port_info ddi_port_info[I915_MAX_PORTS];
> +	struct sdvo_device_mapping sdvo_mappings[2];
>  };
>  
>  enum intel_ddb_partitioning {
> @@ -1823,8 +1824,6 @@ struct drm_i915_private {
>  
>  	/* Kernel Modesetting */
>  
> -	struct sdvo_device_mapping sdvo_mappings[2];
> -
>  	struct drm_crtc *plane_to_crtc_mapping[I915_MAX_PIPES];
>  	struct drm_crtc *pipe_to_crtc_mapping[I915_MAX_PIPES];
>  	wait_queue_head_t pending_flip_queue;
> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
> index 3af8a4a2e145..407fb7a12a49 100644
> --- a/drivers/gpu/drm/i915/intel_bios.c
> +++ b/drivers/gpu/drm/i915/intel_bios.c
> @@ -482,7 +482,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
>  			      child->slave_addr,
>  			      (child->dvo_port == DEVICE_PORT_DVOB) ?
>  			      "SDVOB" : "SDVOC");
> -		p_mapping = &(dev_priv->sdvo_mappings[child->dvo_port - 1]);
> +		p_mapping = &dev_priv->vbt.sdvo_mappings[child->dvo_port - 1];

Is the long-term plan that you pass around a point to dev_priv->vbt into
all the parsing functions? Could be nice step to reinforce all your work
to have vbt parsing consolidated into one place.

Anyway, on patches 2-4: Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>  		if (!p_mapping->initialized) {
>  			p_mapping->dvo_port = child->dvo_port;
>  			p_mapping->slave_addr = child->slave_addr;
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index fae64bc93c1b..2128fae5687d 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -2260,9 +2260,9 @@ intel_sdvo_select_ddc_bus(struct drm_i915_private *dev_priv,
>  	struct sdvo_device_mapping *mapping;
>  
>  	if (sdvo->port == PORT_B)
> -		mapping = &(dev_priv->sdvo_mappings[0]);
> +		mapping = &dev_priv->vbt.sdvo_mappings[0];
>  	else
> -		mapping = &(dev_priv->sdvo_mappings[1]);
> +		mapping = &dev_priv->vbt.sdvo_mappings[1];
>  
>  	if (mapping->initialized)
>  		sdvo->ddc_bus = 1 << ((mapping->ddc_pin & 0xf0) >> 4);
> @@ -2278,9 +2278,9 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv,
>  	u8 pin;
>  
>  	if (sdvo->port == PORT_B)
> -		mapping = &dev_priv->sdvo_mappings[0];
> +		mapping = &dev_priv->vbt.sdvo_mappings[0];
>  	else
> -		mapping = &dev_priv->sdvo_mappings[1];
> +		mapping = &dev_priv->vbt.sdvo_mappings[1];
>  
>  	if (mapping->initialized &&
>  	    intel_gmbus_is_valid_pin(dev_priv, mapping->i2c_pin))
> @@ -2316,11 +2316,11 @@ intel_sdvo_get_slave_addr(struct drm_device *dev, struct intel_sdvo *sdvo)
>  	struct sdvo_device_mapping *my_mapping, *other_mapping;
>  
>  	if (sdvo->port == PORT_B) {
> -		my_mapping = &dev_priv->sdvo_mappings[0];
> -		other_mapping = &dev_priv->sdvo_mappings[1];
> +		my_mapping = &dev_priv->vbt.sdvo_mappings[0];
> +		other_mapping = &dev_priv->vbt.sdvo_mappings[1];
>  	} else {
> -		my_mapping = &dev_priv->sdvo_mappings[1];
> -		other_mapping = &dev_priv->sdvo_mappings[0];
> +		my_mapping = &dev_priv->vbt.sdvo_mappings[1];
> +		other_mapping = &dev_priv->vbt.sdvo_mappings[0];
>  	}
>  
>  	/* If the BIOS described our SDVO device, take advantage of it. */
> -- 
> 2.1.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 3/4] drm/i915: move sdvo mappings to vbt data
  2016-03-29 11:45   ` Daniel Vetter
@ 2016-03-29 12:25     ` Jani Nikula
  0 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2016-03-29 12:25 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

On Tue, 29 Mar 2016, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Thu, Mar 24, 2016 at 05:50:22PM +0200, Jani Nikula wrote:
>> Move all data initialized from VBT under dev_priv->vbt. No functional
>> changes.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_drv.h   |  3 +--
>>  drivers/gpu/drm/i915/intel_bios.c |  2 +-
>>  drivers/gpu/drm/i915/intel_sdvo.c | 16 ++++++++--------
>>  3 files changed, 10 insertions(+), 11 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index ad6f69ef95d5..bf867e28731d 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -1491,6 +1491,7 @@ struct intel_vbt_data {
>>  	union child_device_config *child_dev;
>>  
>>  	struct ddi_vbt_port_info ddi_port_info[I915_MAX_PORTS];
>> +	struct sdvo_device_mapping sdvo_mappings[2];
>>  };
>>  
>>  enum intel_ddb_partitioning {
>> @@ -1823,8 +1824,6 @@ struct drm_i915_private {
>>  
>>  	/* Kernel Modesetting */
>>  
>> -	struct sdvo_device_mapping sdvo_mappings[2];
>> -
>>  	struct drm_crtc *plane_to_crtc_mapping[I915_MAX_PIPES];
>>  	struct drm_crtc *pipe_to_crtc_mapping[I915_MAX_PIPES];
>>  	wait_queue_head_t pending_flip_queue;
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> index 3af8a4a2e145..407fb7a12a49 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -482,7 +482,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
>>  			      child->slave_addr,
>>  			      (child->dvo_port == DEVICE_PORT_DVOB) ?
>>  			      "SDVOB" : "SDVOC");
>> -		p_mapping = &(dev_priv->sdvo_mappings[child->dvo_port - 1]);
>> +		p_mapping = &dev_priv->vbt.sdvo_mappings[child->dvo_port - 1];
>
> Is the long-term plan that you pass around a point to dev_priv->vbt into
> all the parsing functions? Could be nice step to reinforce all your work
> to have vbt parsing consolidated into one place.

Yes, eventually I'd like (most of) dev_priv->vbt be private to
intel_bios.c and abstracted away from the rest of the driver.

> Anyway, on patches 2-4: Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Thanks, pushed to drm-intel-next-queued.

BR,
Jani.

>
>>  		if (!p_mapping->initialized) {
>>  			p_mapping->dvo_port = child->dvo_port;
>>  			p_mapping->slave_addr = child->slave_addr;
>> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
>> index fae64bc93c1b..2128fae5687d 100644
>> --- a/drivers/gpu/drm/i915/intel_sdvo.c
>> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
>> @@ -2260,9 +2260,9 @@ intel_sdvo_select_ddc_bus(struct drm_i915_private *dev_priv,
>>  	struct sdvo_device_mapping *mapping;
>>  
>>  	if (sdvo->port == PORT_B)
>> -		mapping = &(dev_priv->sdvo_mappings[0]);
>> +		mapping = &dev_priv->vbt.sdvo_mappings[0];
>>  	else
>> -		mapping = &(dev_priv->sdvo_mappings[1]);
>> +		mapping = &dev_priv->vbt.sdvo_mappings[1];
>>  
>>  	if (mapping->initialized)
>>  		sdvo->ddc_bus = 1 << ((mapping->ddc_pin & 0xf0) >> 4);
>> @@ -2278,9 +2278,9 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv,
>>  	u8 pin;
>>  
>>  	if (sdvo->port == PORT_B)
>> -		mapping = &dev_priv->sdvo_mappings[0];
>> +		mapping = &dev_priv->vbt.sdvo_mappings[0];
>>  	else
>> -		mapping = &dev_priv->sdvo_mappings[1];
>> +		mapping = &dev_priv->vbt.sdvo_mappings[1];
>>  
>>  	if (mapping->initialized &&
>>  	    intel_gmbus_is_valid_pin(dev_priv, mapping->i2c_pin))
>> @@ -2316,11 +2316,11 @@ intel_sdvo_get_slave_addr(struct drm_device *dev, struct intel_sdvo *sdvo)
>>  	struct sdvo_device_mapping *my_mapping, *other_mapping;
>>  
>>  	if (sdvo->port == PORT_B) {
>> -		my_mapping = &dev_priv->sdvo_mappings[0];
>> -		other_mapping = &dev_priv->sdvo_mappings[1];
>> +		my_mapping = &dev_priv->vbt.sdvo_mappings[0];
>> +		other_mapping = &dev_priv->vbt.sdvo_mappings[1];
>>  	} else {
>> -		my_mapping = &dev_priv->sdvo_mappings[1];
>> -		other_mapping = &dev_priv->sdvo_mappings[0];
>> +		my_mapping = &dev_priv->vbt.sdvo_mappings[1];
>> +		other_mapping = &dev_priv->vbt.sdvo_mappings[0];
>>  	}
>>  
>>  	/* If the BIOS described our SDVO device, take advantage of it. */
>> -- 
>> 2.1.4
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.BAT: failure for series starting with [1/4] drm/i915: use a substruct in vbt data for edp
  2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
                   ` (4 preceding siblings ...)
  2016-03-24 17:31 ` ✗ Fi.CI.BAT: failure for series starting with [1/4] drm/i915: use a substruct in vbt data for edp Patchwork
@ 2016-03-29 13:44 ` Patchwork
  2016-03-29 14:13 ` Patchwork
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2016-03-29 13:44 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/4] drm/i915: use a substruct in vbt data for edp
URL   : https://patchwork.freedesktop.org/series/4868/
State : failure

== Summary ==

Series 4868v1 Series without cover letter
2016-03-29T11:58:48.239234 http://patchwork.freedesktop.org/api/1.0/series/4868/revisions/1/mbox/
Applying: drm/i915: use a substruct in vbt data for edp
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/i915_drv.h
M	drivers/gpu/drm/i915/intel_bios.c
M	drivers/gpu/drm/i915/intel_ddi.c
M	drivers/gpu/drm/i915/intel_dp.c
M	drivers/gpu/drm/i915/intel_lvds.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_bios.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.c
Auto-merging drivers/gpu/drm/i915/i915_drv.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/i915_drv.h
Patch failed at 0001 drm/i915: use a substruct in vbt data for edp

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

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

* ✗ Fi.CI.BAT: failure for series starting with [1/4] drm/i915: use a substruct in vbt data for edp
  2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
                   ` (5 preceding siblings ...)
  2016-03-29 13:44 ` Patchwork
@ 2016-03-29 14:13 ` Patchwork
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2016-03-29 14:13 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/4] drm/i915: use a substruct in vbt data for edp
URL   : https://patchwork.freedesktop.org/series/4868/
State : failure

== Summary ==

Series 4868v1 Series without cover letter
2016-03-29T11:58:48.726972 http://patchwork.freedesktop.org/api/1.0/series/4868/revisions/1/mbox/
Applying: drm/i915: use a substruct in vbt data for edp
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/i915_drv.h
M	drivers/gpu/drm/i915/intel_bios.c
M	drivers/gpu/drm/i915/intel_ddi.c
M	drivers/gpu/drm/i915/intel_dp.c
M	drivers/gpu/drm/i915/intel_lvds.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/intel_bios.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_bios.c
Auto-merging drivers/gpu/drm/i915/i915_drv.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/i915_drv.h
Patch failed at 0001 drm/i915: use a substruct in vbt data for edp

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

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

end of thread, other threads:[~2016-03-29 14:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-24 15:50 drm/i915: vbt data housecleaning Jani Nikula
2016-03-24 15:50 ` [PATCH 1/4] drm/i915: use a substruct in vbt data for edp Jani Nikula
2016-03-29 11:43   ` Daniel Vetter
2016-03-24 15:50 ` [PATCH 2/4] drm/i915: move edp low vswing config to vbt data Jani Nikula
2016-03-24 15:50 ` [PATCH 3/4] drm/i915: move sdvo mappings " Jani Nikula
2016-03-29 11:45   ` Daniel Vetter
2016-03-29 12:25     ` Jani Nikula
2016-03-24 15:50 ` [PATCH 4/4] drm/i915: remove unused dev_priv->render_reclock_avail Jani Nikula
2016-03-24 17:31 ` ✗ Fi.CI.BAT: failure for series starting with [1/4] drm/i915: use a substruct in vbt data for edp Patchwork
2016-03-29 13:44 ` Patchwork
2016-03-29 14:13 ` Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.