From: Imre Deak <imre.deak@intel.com>
To: ville.syrjala@linux.intel.com
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 22/71] drm/i915/chv: Add phy supports for Cherryview
Date: Wed, 30 Apr 2014 15:13:53 +0300 [thread overview]
Message-ID: <1398860033.6163.6.camel@intelbox> (raw)
In-Reply-To: <1397039349-10639-23-git-send-email-ville.syrjala@linux.intel.com>
[-- Attachment #1.1: Type: text/plain, Size: 13991 bytes --]
On Wed, 2014-04-09 at 13:28 +0300, ville.syrjala@linux.intel.com wrote:
> From: Chon Ming Lee <chon.ming.lee@intel.com>
>
> Added programming phy layer for CHV based on "Application note for 1273
> CHV Display phy".
>
> v2: Rebase the code and do some cleanup.
> v3: Rework based on Ville review.
> -Fix the macro where the ch info need to swap, and add parens to ?
> operator.
> -Fix wrong bit define for DPIO_PCS_SWING_CALC_0 and
> DPIO_PCS_SWING_CALC_1 and rename for meaningful.
> -Add some comments for CHV specific DPIO registers.
> -Change the dp margin registery value to decimal to align with the
> doc.
> -Fix the not clearing some value in vlv_dpio_read before write again.
> -Create new hdmi/dp encoder function for chv instead of share with
> valleyview.
> v4: Rebase the code after rename the DPIO registers define and upstream
> change.
> Based on Ville review.
> -For unique transition scale selection, after Ville point out, look
> like the doc might wrong for the bit 26. Use bit 27 for ch0 and
> ch1.
> -Break up some dpio write value into two/three steps for readability.
> -Remove unrelated change.
> -Add some shift define for some registers instead just give the hex
> value.
> -Fix a bug where write to wrong VLV_TX_DW3.
> v5: Based on Ville review.
> - Move tx lane latency optimal setting from chv_dp_pre_pll_enable to
> chv_pre_enable_dp, and chv_hdmi_pre_pll_enable to
> chv_hdmi_pre_enable respectively.
> - Fix typo in one margin_reg_value for DP_TRAIN_VOLTAGE_SWING_400.
> - Clear DPIO_TX_UNIQ_TRANS_SCALE_EN for DP and HDMI.
> - Mask the old deemph and swing bits for hdmi.
> v6: Remove stub for pre_pll_enable for dp and hdmi.
>
> Signed-off-by: Chon Ming Lee <chon.ming.lee@intel.com>
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> [vsyrjala: Don't touch panel power sequencing on DP]
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Looks ok, so:
Reviewed-by: Imre Deak <imre.deak@intel.com>
Some nitpicks follow, fixing them is optional.
> ---
> drivers/gpu/drm/i915/intel_dp.c | 188 +++++++++++++++++++++++++++++++++++++-
> drivers/gpu/drm/i915/intel_hdmi.c | 84 ++++++++++++++++-
> 2 files changed, 270 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 6be7b35..71a4fa2 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1932,6 +1932,50 @@ static void vlv_dp_pre_pll_enable(struct intel_encoder *encoder)
> mutex_unlock(&dev_priv->dpio_lock);
> }
>
> +static void chv_pre_enable_dp(struct intel_encoder *encoder)
> +{
> + struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> + struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
> + struct drm_device *dev = encoder->base.dev;
> + struct drm_i915_private *dev_priv = dev->dev_private;
> + struct edp_power_seq power_seq;
> + struct intel_crtc *intel_crtc =
> + to_intel_crtc(encoder->base.crtc);
> + enum dpio_channel ch = vlv_dport_to_channel(dport);
> + int pipe = intel_crtc->pipe;
> + int data, i;
> +
> + /* Program Tx lane latency optimal setting*/
> + mutex_lock(&dev_priv->dpio_lock);
> + for (i = 0; i < 4; i++) {
> + /* Set the latency optimal bit */
> + data = (i == 1) ? 0x0 : 0x6;
> + vlv_dpio_write(dev_priv, pipe, CHV_TX_DW11(ch, i),
> + data << DPIO_FRC_LATENCY_SHFIT);
> +
> + /* Set the upar bit */
> + data = (i == 1) ? 0x0 : 0x1;
> + vlv_dpio_write(dev_priv, pipe, CHV_TX_DW14(ch, i),
> + data << DPIO_UPAR_SHIFT);
> + }
> +
> + /* Data lane stagger programming */
> + /* FIXME: Fix up value only after power analysis */
> +
> + mutex_unlock(&dev_priv->dpio_lock);
> +
> + if (is_edp(intel_dp)) {
> + /* init power sequencer on this pipe and port */
> + intel_dp_init_panel_power_sequencer(dev, intel_dp, &power_seq);
> + intel_dp_init_panel_power_sequencer_registers(dev, intel_dp,
> + &power_seq);
> + }
> +
> + intel_enable_dp(encoder);
> +
> + vlv_wait_port_ready(dev_priv, dport);
> +}
> +
> /*
> * Native read with retry for link status and receiver capability reads for
> * cases where the sink may still be asleep.
> @@ -2156,6 +2200,142 @@ static uint32_t intel_vlv_signal_levels(struct intel_dp *intel_dp)
> return 0;
> }
>
> +static uint32_t intel_chv_signal_levels(struct intel_dp *intel_dp)
> +{
> + struct drm_device *dev = intel_dp_to_dev(intel_dp);
> + struct drm_i915_private *dev_priv = dev->dev_private;
> + struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
> + struct intel_crtc *intel_crtc = to_intel_crtc(dport->base.base.crtc);
> + u32 deemph_reg_value, margin_reg_value, val, tx_dw2;
> + uint8_t train_set = intel_dp->train_set[0];
> + enum dpio_channel ch = vlv_dport_to_channel(dport);
> + int pipe = intel_crtc->pipe;
> +
> + switch (train_set & DP_TRAIN_PRE_EMPHASIS_MASK) {
> + case DP_TRAIN_PRE_EMPHASIS_0:
> + switch (train_set & DP_TRAIN_VOLTAGE_SWING_MASK) {
> + case DP_TRAIN_VOLTAGE_SWING_400:
> + deemph_reg_value = 128;
> + margin_reg_value = 52;
> + break;
> + case DP_TRAIN_VOLTAGE_SWING_600:
> + deemph_reg_value = 128;
> + margin_reg_value = 77;
> + break;
> + case DP_TRAIN_VOLTAGE_SWING_800:
> + deemph_reg_value = 128;
> + margin_reg_value = 102;
> + break;
> + case DP_TRAIN_VOLTAGE_SWING_1200:
> + deemph_reg_value = 128;
> + margin_reg_value = 154;
> + /* FIXME extra to set for 1200 */
> + break;
> + default:
We could throw a WARN at these spots, as they would all point to a bug
in the driver.
> + return 0;
> + }
> + break;
> + case DP_TRAIN_PRE_EMPHASIS_3_5:
> + switch (train_set & DP_TRAIN_VOLTAGE_SWING_MASK) {
> + case DP_TRAIN_VOLTAGE_SWING_400:
> + deemph_reg_value = 85;
> + margin_reg_value = 78;
> + break;
> + case DP_TRAIN_VOLTAGE_SWING_600:
> + deemph_reg_value = 85;
> + margin_reg_value = 116;
> + break;
> + case DP_TRAIN_VOLTAGE_SWING_800:
> + deemph_reg_value = 85;
> + margin_reg_value = 154;
> + break;
> + default:
> + return 0;
> + }
> + break;
> + case DP_TRAIN_PRE_EMPHASIS_6:
> + switch (train_set & DP_TRAIN_VOLTAGE_SWING_MASK) {
> + case DP_TRAIN_VOLTAGE_SWING_400:
> + deemph_reg_value = 64;
> + margin_reg_value = 104;
> + break;
> + case DP_TRAIN_VOLTAGE_SWING_600:
> + deemph_reg_value = 64;
> + margin_reg_value = 154;
> + break;
> + default:
> + return 0;
> + }
> + break;
> + case DP_TRAIN_PRE_EMPHASIS_9_5:
> + switch (train_set & DP_TRAIN_VOLTAGE_SWING_MASK) {
> + case DP_TRAIN_VOLTAGE_SWING_400:
> + deemph_reg_value = 43;
> + margin_reg_value = 154;
> + break;
> + default:
> + return 0;
> + }
> + break;
> + default:
> + return 0;
> + }
> +
> + mutex_lock(&dev_priv->dpio_lock);
> +
> + /* Clear calc init */
> + vlv_dpio_write(dev_priv, pipe, CHV_PCS_DW10(ch), 0);
> +
> + /* Program swing deemph */
> + val = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW4(ch));
> + val &= ~DPIO_SWING_DEEMPH9P5_MASK;
> + val |= deemph_reg_value << DPIO_SWING_DEEMPH9P5_SHIFT;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW4(ch), val);
> +
> + /* Program swing margin */
> + tx_dw2 = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW2(ch));
> + tx_dw2 &= ~DPIO_SWING_MARGIN_MASK;
> + tx_dw2 |= margin_reg_value << DPIO_SWING_MARGIN_SHIFT;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW2(ch), tx_dw2);
> +
> + /* Disable unique transition scale */
> + val = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW3(ch));
> + val &= ~DPIO_TX_UNIQ_TRANS_SCALE_EN;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW3(ch), val);
> +
> + if (((train_set & DP_TRAIN_PRE_EMPHASIS_MASK)
> + == DP_TRAIN_PRE_EMPHASIS_0) &&
> + ((train_set & DP_TRAIN_VOLTAGE_SWING_MASK)
> + == DP_TRAIN_VOLTAGE_SWING_1200)) {
It works, but the check for pre-emphasis is redundant.
> +
> + /*
> + * The document said it needs to set bit 27 for ch0 and bit 26
> + * for ch1. Might be a typo in the doc.
> + * For now, for this unique transition scale selection, set bit
> + * 27 for ch0 and ch1.
> + */
> + val = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW3(ch));
> + val |= DPIO_TX_UNIQ_TRANS_SCALE_EN;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW3(ch), val);
> +
> + tx_dw2 |= (0x9a << DPIO_UNIQ_TRANS_SCALE_SHIFT);
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW2(ch), tx_dw2);
> + }
> +
> + /* Start swing calculation */
> + vlv_dpio_write(dev_priv, pipe, CHV_PCS_DW10(ch),
> + (DPIO_PCS_SWING_CALC_TX0_TX2 | DPIO_PCS_SWING_CALC_TX1_TX3));
> +
> + /* LRC Bypass */
> + val = vlv_dpio_read(dev_priv, pipe, CHV_CMN_DW30);
> + val |= DPIO_LRC_BYPASS;
> + vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW30, val);
> +
> + mutex_unlock(&dev_priv->dpio_lock);
> +
> + return 0;
> +}
> +
> static void
> intel_get_adjust_train(struct intel_dp *intel_dp,
> const uint8_t link_status[DP_LINK_STATUS_SIZE])
> @@ -2370,6 +2550,9 @@ intel_dp_set_signal_levels(struct intel_dp *intel_dp, uint32_t *DP)
> } else if (IS_HASWELL(dev)) {
> signal_levels = intel_hsw_signal_levels(train_set);
> mask = DDI_BUF_EMP_MASK;
> + } else if (IS_CHERRYVIEW(dev)) {
> + signal_levels = intel_chv_signal_levels(intel_dp);
> + mask = 0;
> } else if (IS_VALLEYVIEW(dev)) {
> signal_levels = intel_vlv_signal_levels(intel_dp);
> mask = 0;
> @@ -3865,7 +4048,10 @@ intel_dp_init(struct drm_device *dev, int output_reg, enum port port)
> intel_encoder->disable = intel_disable_dp;
> intel_encoder->get_hw_state = intel_dp_get_hw_state;
> intel_encoder->get_config = intel_dp_get_config;
> - if (IS_VALLEYVIEW(dev)) {
> + if (IS_CHERRYVIEW(dev)) {
> + intel_encoder->pre_enable = chv_pre_enable_dp;
> + intel_encoder->enable = vlv_enable_dp;
> + } else if (IS_VALLEYVIEW(dev)) {
> intel_encoder->pre_pll_enable = vlv_dp_pre_pll_enable;
> intel_encoder->pre_enable = vlv_pre_enable_dp;
> intel_encoder->enable = vlv_enable_dp;
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index b0413e1..bbda011 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1198,6 +1198,85 @@ static void vlv_hdmi_post_disable(struct intel_encoder *encoder)
> mutex_unlock(&dev_priv->dpio_lock);
> }
>
> +static void chv_hdmi_pre_enable(struct intel_encoder *encoder)
> +{
> + struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> + struct drm_device *dev = encoder->base.dev;
> + struct drm_i915_private *dev_priv = dev->dev_private;
> + struct intel_crtc *intel_crtc =
> + to_intel_crtc(encoder->base.crtc);
> + enum dpio_channel ch = vlv_dport_to_channel(dport);
> + int pipe = intel_crtc->pipe;
> + int data, i;
> + u32 val;
> +
> + /* Program Tx latency optimal setting */
> + mutex_lock(&dev_priv->dpio_lock);
> + for (i = 0; i < 4; i++) {
> + /* Set the latency optimal bit */
> + data = (i == 1) ? 0x0 : 0x6;
> + vlv_dpio_write(dev_priv, pipe, CHV_TX_DW11(ch, i),
> + data << DPIO_FRC_LATENCY_SHFIT);
> +
> + /* Set the upar bit */
> + data = (i == 1) ? 0x0 : 0x1;
> + vlv_dpio_write(dev_priv, pipe, CHV_TX_DW14(ch, i),
> + data << DPIO_UPAR_SHIFT);
> + }
> +
> + /* Data lane stagger programming */
> + /* FIXME: Fix up value only after power analysis */
> +
> + /* Clear calc init */
> + vlv_dpio_write(dev_priv, pipe, CHV_PCS_DW10(ch), 0);
> +
> + /* FIXME: Program the support xxx V-dB */
> + /* Use 800mV-0dB */
> + val = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW4(ch));
> + val &= ~DPIO_SWING_DEEMPH9P5_MASK;
> + val |= 128 << DPIO_SWING_DEEMPH9P5_SHIFT;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW4(ch), val);
> +
> + val = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW2(ch));
> + val &= ~DPIO_SWING_MARGIN_MASK;
> + val |= 102 << DPIO_SWING_MARGIN_SHIFT;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW2(ch), val);
> +
> + /* Disable unique transition scale */
> + val = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW3(ch));
> + val &= ~DPIO_TX_UNIQ_TRANS_SCALE_EN;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW3(ch), val);
> +
> + /* Additional steps for 1200mV-0dB */
> +#if 0
> + val = vlv_dpio_read(dev_priv, pipe, VLV_TX_DW3(ch));
> + if (ch)
> + val |= DPIO_TX_UNIQ_TRANS_SCALE_CH1;
> + else
> + val |= DPIO_TX_UNIQ_TRANS_SCALE_CH0;
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW3(ch), val);
> +
> + vlv_dpio_write(dev_priv, pipe, VLV_TX_DW2(ch),
> + vlv_dpio_read(dev_priv, pipe, VLV_TX_DW2(ch)) |
> + (0x9a << DPIO_UNIQ_TRANS_SCALE_SHIFT));
> +#endif
Could remove this chunk.
> + /* Start swing calculation */
> + vlv_dpio_write(dev_priv, pipe, CHV_PCS_DW10(ch),
> + DPIO_PCS_SWING_CALC_TX0_TX2 |
> + DPIO_PCS_SWING_CALC_TX1_TX3);
> +
> + /* LRC Bypass */
> + val = vlv_dpio_read(dev_priv, pipe, CHV_CMN_DW30);
> + val |= DPIO_LRC_BYPASS;
> + vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW30, val);
> +
> + mutex_unlock(&dev_priv->dpio_lock);
> +
> + intel_enable_hdmi(encoder);
> +
> + vlv_wait_port_ready(dev_priv, dport);
> +}
> +
> static void intel_hdmi_destroy(struct drm_connector *connector)
> {
> drm_connector_cleanup(connector);
> @@ -1332,7 +1411,10 @@ void intel_hdmi_init(struct drm_device *dev, int hdmi_reg, enum port port)
> intel_encoder->disable = intel_disable_hdmi;
> intel_encoder->get_hw_state = intel_hdmi_get_hw_state;
> intel_encoder->get_config = intel_hdmi_get_config;
> - if (IS_VALLEYVIEW(dev)) {
> + if (IS_CHERRYVIEW(dev)) {
> + intel_encoder->pre_enable = chv_hdmi_pre_enable;
> + intel_encoder->enable = vlv_enable_hdmi;
> + } else if (IS_VALLEYVIEW(dev)) {
> intel_encoder->pre_pll_enable = vlv_hdmi_pre_pll_enable;
> intel_encoder->pre_enable = vlv_hdmi_pre_enable;
> intel_encoder->enable = vlv_enable_hdmi;
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2014-04-30 12:14 UTC|newest]
Thread overview: 203+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-09 10:27 [PATCH 00/71] drm/i915/chv: Add Cherryview support ville.syrjala
2014-04-09 10:27 ` [PATCH 01/71] drm/i915/chv: IS_BROADWELL() should not be true for Cherryview ville.syrjala
2014-05-01 13:32 ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 02/71] drm/i915/chv: Add IS_CHERRYVIEW() macro ville.syrjala
2014-04-09 15:36 ` Daniel Vetter
2014-05-01 13:33 ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 03/71] drm/i915/chv: PPAT setup for Cherryview ville.syrjala
2014-05-01 13:34 ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 04/71] drm/i915/chv: Flush caches when programming page tables ville.syrjala
2014-05-06 19:16 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 05/71] drm/i915/chv: Enable aliasing PPGTT for CHV ville.syrjala
2014-05-01 13:46 ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 06/71] drm/i915/chv: Add PIPESTAT register bits for Cherryview ville.syrjala
2014-05-01 13:52 ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 07/71] drm/i915/chv: Add DPFLIPSTAT " ville.syrjala
2014-05-01 13:55 ` Barbalho, Rafael
2014-05-02 8:29 ` Ville Syrjälä
2014-05-05 14:10 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 08/71] drm/i915/chv: Add display interrupt registers " ville.syrjala
2014-05-01 14:07 ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 09/71] drm/i915/chv: Add DPINVGTT registers defines " ville.syrjala
2014-05-01 14:07 ` Barbalho, Rafael
2014-05-02 8:35 ` [PATCH v2 " ville.syrjala
2014-05-06 19:20 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 10/71] drm/i915/chv: Preliminary interrupt support " ville.syrjala
2014-04-09 15:45 ` Daniel Vetter
2014-04-09 17:40 ` [PATCH v9 " ville.syrjala
2014-05-08 18:24 ` Jani Nikula
2014-04-09 10:28 ` [PATCH 11/71] drm/i915/chv: Add Cherryview interrupt registers into debugfs ville.syrjala
2014-05-08 13:59 ` Jani Nikula
2014-04-09 10:28 ` [PATCH 12/71] drm/i915/chv: Initial clock gating support for Cherryview ville.syrjala
2014-05-08 14:33 ` Jani Nikula
2014-04-09 10:28 ` [PATCH 13/71] drm/i915/chv: Add Cherryview PCI IDs ville.syrjala
2014-04-09 13:33 ` Chris Wilson
2014-04-09 15:19 ` [PATCH v5 " ville.syrjala
2014-05-08 14:31 ` Jani Nikula
2014-04-09 10:28 ` [PATCH 14/71] drm/i915/chv: Add early quirk for stolen ville.syrjala
2014-05-08 14:32 ` Jani Nikula
2014-05-08 14:43 ` Ville Syrjälä
2014-05-08 15:10 ` Jani Nikula
2014-05-12 17:22 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 15/71] drm/i915/chv: Add DDL register defines for Cherryview ville.syrjala
2014-05-08 14:40 ` Jani Nikula
2014-04-09 10:28 ` [PATCH 16/71] drm/i915/chv: Add DPIO offset for Cherryview. v3 ville.syrjala
2014-05-12 11:27 ` Imre Deak
2014-04-09 10:28 ` [PATCH 17/71] drm/i915/chv: Update Cherryview DPLL changes to support Port D. v2 ville.syrjala
2014-05-12 11:29 ` Imre Deak
2014-04-09 10:28 ` [PATCH 18/71] drm/i915/chv: Add vlv_pipe_to_channel ville.syrjala
2014-04-28 14:33 ` Imre Deak
2014-05-12 11:26 ` Imre Deak
2014-04-09 10:28 ` [PATCH 19/71] drm/i915/chv: Trigger phy common lane reset ville.syrjala
2014-04-28 14:54 ` Imre Deak
2014-05-12 17:27 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 20/71] drm/i915/chv: find the best divisor for the target clock v4 ville.syrjala
2014-04-29 14:56 ` Imre Deak
2014-04-09 10:28 ` [PATCH 21/71] drm/i915/chv: Add update and enable pll for Cherryview ville.syrjala
2014-04-29 20:20 ` Imre Deak
2014-05-02 11:27 ` [PATCH v6 " ville.syrjala
2014-04-09 10:28 ` [PATCH 22/71] drm/i915/chv: Add phy supports " ville.syrjala
2014-04-30 12:13 ` Imre Deak [this message]
2014-05-12 17:31 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 23/71] drm/i915/chv: Pipe select change for DP and HDMI ville.syrjala
2014-04-30 12:49 ` Imre Deak
2014-04-09 10:28 ` [PATCH 24/71] drm/i915/chv: Add DPLL state readout support ville.syrjala
2014-04-30 13:11 ` Imre Deak
2014-05-12 17:39 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 25/71] drm/i915/chv: CHV doesn't have CRT output ville.syrjala
2014-04-09 15:55 ` Daniel Vetter
2014-04-10 17:56 ` Jani Nikula
2014-05-12 17:34 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 26/71] drm/i915: Enable PM Interrupts for CHV/BDW Platform ville.syrjala
2014-04-09 15:56 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 27/71] drm/i915/chv: Enable Render Standby (RC6) for Cheeryview ville.syrjala
2014-04-09 15:45 ` Imre Deak
2014-04-10 16:03 ` Chris Wilson
2014-04-10 16:51 ` Jani Nikula
2014-04-10 17:06 ` Ville Syrjälä
2014-04-13 15:31 ` Deepak S
2014-04-09 10:28 ` [PATCH 28/71] drm/i915/chv: Added CHV specific register read and write ville.syrjala
2014-04-09 13:16 ` Chris Wilson
2014-04-09 13:32 ` Ville Syrjälä
2014-04-18 0:28 ` Ben Widawsky
2014-04-18 8:12 ` Deepak S
2014-04-09 10:28 ` [PATCH 29/71] drm/i915/chv: Enable RPS (Turbo) for Cheeryview ville.syrjala
2014-04-10 17:01 ` Jani Nikula
2014-04-09 10:28 ` [PATCH 30/71] drm/i915/chv: Enable PM interrupts when we in CHV turbo initialize sequence ville.syrjala
2014-04-09 13:06 ` Chris Wilson
2014-04-09 13:15 ` Ville Syrjälä
2014-04-09 19:17 ` Deepak S
2014-04-09 22:33 ` Ben Widawsky
2014-04-10 7:00 ` Daniel Vetter
2014-04-13 15:33 ` Deepak S
2014-04-09 10:28 ` [PATCH 31/71] drm/i915/chv: Added CHV specific DDR fetch into init_clock_gating ville.syrjala
2014-04-09 10:28 ` [PATCH 32/71] drm/i915/bdw: Add BDW PM Interrupts support and BDW rps disable ville.syrjala
2014-04-09 10:28 ` [PATCH 33/71] drm/i915/chv: Fix for verifying PCBR address field ville.syrjala
2014-04-09 15:57 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 34/71] drm/i915/chv: Implement stolen memory size detection ville.syrjala
2014-05-08 18:19 ` Jani Nikula
2014-05-08 19:19 ` [PATCH v5 34.1/71] " ville.syrjala
2014-05-08 19:19 ` [PATCH v5 34.2/71] x86/gpu: Implement stolen memory size early quirk for CHV ville.syrjala
2014-05-08 19:19 ` [PATCH 34.3/71] x86/gpu: Sprinkle const, __init and __initconst to stolen memory quirks ville.syrjala
2014-05-12 17:42 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 35/71] drm/i915/chv: Implement WaDisablePartialInstShootdown:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 36/71] drm/i915/chv: Implement WaDisableThreadStallDopClockGating:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 37/71] drm/i915/chv: Implement WaVSRefCountFullforceMissDisable:chv and WaDSRefCountFullforceMissDisable:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 38/71] drm/i915/chv: Implement WaDisableSemaphoreAndSyncFlipWait:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 39/71] drm/i915/chv: Implement WaDisableCSUnitClockGating:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 40/71] drm/i915/chv: Implement WaDisableSDEUnitClockGating:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 41/71] drm/i915/chv: Add some workaround notes ville.syrjala
2014-04-25 20:43 ` Paulo Zanoni
2014-04-28 11:25 ` Ville Syrjälä
2014-04-28 11:31 ` [PATCH v2 " ville.syrjala
2014-04-28 22:05 ` Paulo Zanoni
2014-04-09 10:28 ` [PATCH 42/71] drm/i915/chv: Implement WaDisableSamplerPowerBypass for CHV ville.syrjala
2014-04-25 20:55 ` Paulo Zanoni
2014-04-28 8:23 ` Ville Syrjälä
2014-04-28 22:19 ` Paulo Zanoni
2014-05-20 13:21 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 43/71] drm/i915/chv: Add a bunch of pre production workarounds ville.syrjala
2014-05-20 13:22 ` Damien Lespiau
2014-05-20 13:41 ` Ville Syrjälä
2014-05-20 13:59 ` Damien Lespiau
2014-04-09 10:28 ` [PATCH 44/71] drm/i915/chv: Fix for decrementing fw count in chv read/write ville.syrjala
2014-04-09 15:59 ` Daniel Vetter
2014-04-09 17:49 ` Ville Syrjälä
2014-04-09 10:28 ` [PATCH 45/71] drm/i915/chv: Streamline CHV forcewake stuff ville.syrjala
2014-04-09 16:02 ` Daniel Vetter
2014-04-09 17:47 ` Ville Syrjälä
2014-04-09 18:38 ` Deepak S
2014-04-09 10:28 ` [PATCH 46/71] drm/i915/chv: CHV doesn't need WaRsForcewakeWaitTC0 ville.syrjala
2014-04-09 10:28 ` [PATCH 47/71] drm/i915/chv: Skip gen6_gt_check_fifodbg() on CHV ville.syrjala
2014-04-09 10:28 ` [PATCH 48/71] drm/i915/chv: Add plane C support ville.syrjala
2014-04-09 16:01 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 49/71] drm/i915/chv: Add CHV display support ville.syrjala
2014-04-10 16:52 ` Jani Nikula
2014-04-28 11:00 ` [PATCH v2 " ville.syrjala
2014-05-20 13:22 ` Daniel Vetter
2014-04-15 15:56 ` [PATCH " Imre Deak
2014-04-09 10:28 ` [PATCH 50/71] drm/i915/chv: Clarify VLV/CHV PIPESTAT bits a bit more ville.syrjala
2014-04-09 10:28 ` [PATCH 51/71] drm/i915/chv: Use valleyview_pipestat_irq_handler() for CHV ville.syrjala
2014-05-20 13:28 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 52/71] drm/i915/chv: Make CHV irq handler loop until all interrupts are consumed ville.syrjala
2014-04-09 16:05 ` Daniel Vetter
2014-04-09 16:51 ` Ville Syrjälä
2014-05-20 13:30 ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 53/71] drm/i915/chv: Configure crtc_mask correctly for CHV ville.syrjala
2014-04-09 16:06 ` Daniel Vetter
2014-04-10 16:54 ` Jani Nikula
2014-04-28 11:07 ` [PATCH v2 " ville.syrjala
2014-04-09 10:28 ` [PATCH 54/71] drm/i915/chv: Fix gmbus for port D ville.syrjala
2014-04-09 10:28 ` [PATCH 55/71] drm/i915/chv: Add cursor pipe offsets ville.syrjala
2014-04-09 10:28 ` [PATCH 56/71] drm/i915/chv: Bump num_pipes to 3 ville.syrjala
2014-04-09 10:28 ` [PATCH 57/71] drm/i915/chv: Fix PORT_TO_PIPE for CHV ville.syrjala
2014-04-09 10:28 ` [PATCH 58/71] drm/i915/chv: Register port D encoders and connectors ville.syrjala
2014-04-25 10:09 ` Antti Koskipää
2014-04-09 10:28 ` [PATCH 59/71] drm/i915/chv: Fix CHV PLL state tracking ville.syrjala
2014-04-25 12:01 ` Mika Kuoppala
2014-04-09 10:28 ` [PATCH 60/71] drm/i915/chv: Move data lane deassert to encoder pre_enable ville.syrjala
2014-04-09 10:28 ` [PATCH 61/71] drm/i915/chv: Turn off dclkp after the PLL has been disabled ville.syrjala
2014-04-09 10:29 ` [PATCH 62/71] drm/i915/chv: Reset data lanes in encoder .post_disable() hook ville.syrjala
2014-04-09 10:29 ` [PATCH 63/71] drm/i915/chv: Set soft reset override bit for data lane resets ville.syrjala
2014-04-28 11:15 ` [PATCH v2 " ville.syrjala
2014-04-09 10:29 ` [PATCH 64/71] drm/i915/chv: Don't use PCS group access reads ville.syrjala
2014-04-09 16:18 ` Daniel Vetter
2014-04-09 16:56 ` Ville Syrjälä
2014-05-20 13:50 ` Daniel Vetter
2014-05-20 14:11 ` Ville Syrjälä
2014-05-20 14:17 ` Daniel Vetter
2014-04-25 15:15 ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 65/71] drm/i915/chv: Don't do group access reads from TX lanes either ville.syrjala
2014-04-09 10:29 ` [PATCH 66/71] drm/i915/chv: Use RMW to toggle swing calc init ville.syrjala
2014-04-09 16:20 ` Daniel Vetter
2014-04-28 14:47 ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 67/71] drm/i915/chv: Try to program the PHY used clock channel overrides ville.syrjala
2014-05-27 12:46 ` Mika Kuoppala
2014-05-27 13:08 ` Mika Kuoppala
2014-05-27 13:41 ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 68/71] drm/i915/chv: Force clock buffer enables ville.syrjala
2014-05-27 13:30 ` [PATCH v2 " ville.syrjala
2014-05-27 13:41 ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 69/71] drm/i915/chv: Force PHY clock buffers off after PLL disable ville.syrjala
2014-05-27 13:32 ` [PATCH v2 " ville.syrjala
2014-05-27 13:42 ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 70/71] drm/i915: Don't use pipe_offset stuff for DPLL registers ville.syrjala
2014-04-09 19:18 ` Damien Lespiau
2014-05-27 17:02 ` Daniel Vetter
2014-04-09 10:29 ` [PATCH 71/71] drm/i915/chv: Handle video DIP registers on CHV ville.syrjala
2014-04-09 18:41 ` Damien Lespiau
2014-04-09 13:25 ` [PATCH 00/71] drm/i915/chv: Add Cherryview support Ville Syrjälä
2014-04-09 14:30 ` S, Deepak
2014-04-09 15:05 ` Ville Syrjälä
2014-04-09 16:27 ` S, Deepak
2014-04-09 16:53 ` Daniel Vetter
2014-04-09 19:12 ` S, Deepak
2014-04-09 20:00 ` Daniel Vetter
2014-04-10 4:01 ` S, Deepak
2014-04-10 12:59 ` Ville Syrjälä
2014-04-10 13:41 ` Jani Nikula
2014-04-10 14:04 ` Ville Syrjälä
2014-04-15 15:49 ` S, Deepak
2014-04-15 16:16 ` Ville Syrjälä
2014-04-15 17:10 ` S, Deepak
2014-04-10 11:08 ` Ville Syrjälä
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1398860033.6163.6.camel@intelbox \
--to=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.