From: "Vivi, Rodrigo" <rodrigo.vivi@intel.com>
To: "Deak, Imre" <imre.deak@intel.com>
Cc: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"Zanoni, Paulo R" <paulo.r.zanoni@intel.com>
Subject: Re: [PATCH] drm/i915/cnl: Implement CNL display init/unit sequence
Date: Mon, 5 Jun 2017 16:38:45 +0000 [thread overview]
Message-ID: <1496680715.20038.5.camel@rdvivi-vienna> (raw)
In-Reply-To: <20170605150704.GB28137@ideak-desk.fi.intel.com>
On Mon, 2017-06-05 at 18:07 +0300, Imre Deak wrote:
> On Thu, Apr 13, 2017 at 09:13:02AM -0700, Rodrigo Vivi wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Implement the CNL display init/uninit sequence as outlined in Bspec.
> >
> > Quite similar to SKL/BXT. The main complicaiton is probably the extra
> > procmon setup we must do based on the process/voltage information we
> > can read out from some register.
> >
> > For now we assume DMC will handle the AUX wells, and we'll just enable
> > all of them during the init sequence. Even if DMC will handle them, we
> > should perhaps trim the set of enabled wells based on which DDI ports
> > are actually present.
>
> The above needs to be aligned with the current version of the code.
>
> Yes, looks like DMC saves/restores the state of both AUX and DDI power
> wells. The spec says to enable the AUX wells during init, but I think
> it's ok to do this on-demand.
Indeed. I updated the code during some rebase but forgot to update the
commit message. I will remove this chuck on next rebase.
>
> >
> > v2: s/skl_dbuf/gen9_dbuf/ to follow upstream
> > bxt needed a cdclk sanitize step, so let's add it for cnl too
> > v3: s/CHICKEN_MISC_1/CHICKEN_MISC_2/ (Ander)
> > v4: Rebased by Rodrigo after Ville's cdclk rework
> > v5: Removed unecessary Aux IO forced enable/disable, Fix DW10 setup
> > Fix procpon Mask. (Credits-to Paulo and Clint)
> > Remove A0 workaround.
> > v6: Rebased on top of recent code (Rodrigo).
> > v7: Respect the order of sanitize_ after set_
> > (Done by Rodrigo, Requested by Ville)
> > v8: (Rodrigo) Remove CHICKEN_MISC_2 double definition.
> >
> > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Cc: Clint Taylor <clinton.a.taylor@intel.com>
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > ---
> > drivers/gpu/drm/i915/i915_reg.h | 23 +++++++
> > drivers/gpu/drm/i915/intel_cdclk.c | 108 ++++++++++++++++++++++++++++++
> > drivers/gpu/drm/i915/intel_drv.h | 2 +
> > drivers/gpu/drm/i915/intel_runtime_pm.c | 113 +++++++++++++++++++++++++++++++-
> > 4 files changed, 244 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index 8353892..9b2d8c0 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -1655,6 +1655,9 @@ enum skl_disp_power_wells {
> > #define PHY_RESERVED (1 << 7)
> > #define BXT_PORT_CL1CM_DW0(phy) _BXT_PHY((phy), _PORT_CL1CM_DW0_BC)
> >
> > +#define CNL_PORT_CL1CM_DW5 _MMIO(0x162014)
> > +#define CL_POWER_DOWN_ENABLE (1 << 4)
> > +
> > #define _PORT_CL1CM_DW9_A 0x162024
> > #define _PORT_CL1CM_DW9_BC 0x6C024
> > #define IREF0RC_OFFSET_SHIFT 8
> > @@ -1687,6 +1690,25 @@ enum skl_disp_power_wells {
> > #define BXT_PORT_CL2CM_DW6(phy) _BXT_PHY((phy), _PORT_CL2CM_DW6_BC)
> > #define DW6_OLDO_DYN_PWR_DOWN_EN (1 << 28)
> >
> > +#define CNL_PORT_COMP_DW0 _MMIO(0x162100)
> > +#define COMP_INIT (1 << 31)
> > +#define CNL_PORT_COMP_DW1 _MMIO(0x162104)
> > +#define CNL_PORT_COMP_DW3 _MMIO(0x16210c)
> > +#define PROCESS_INFO_DOT_0 (0 << 26)
> > +#define PROCESS_INFO_DOT_1 (1 << 26)
> > +#define PROCESS_INFO_DOT_4 (2 << 26)
> > +#define PROCESS_INFO_MASK (7 << 26)
> > +#define PROCESS_INFO_SHIFT 26
> > +#define VOLTAGE_INFO_0_85V (0 << 24)
> > +#define VOLTAGE_INFO_0_95V (1 << 24)
> > +#define VOLTAGE_INFO_1_05V (2 << 24)
> > +#define VOLTAGE_INFO_MASK (3 << 24)
> > +#define VOLTAGE_INFO_SHIFT 24
> > +#define CNL_PORT_COMP_DW8 _MMIO(0x162120)
> > +#define PRDIC_ICOMP_DIS (1 << 14)
>
> DW8 looks to be unused.
I believe an early w/a for A0 was using that, but that got remove.
I will also remove this.
>
> > +#define CNL_PORT_COMP_DW9 _MMIO(0x162124)
> > +#define CNL_PORT_COMP_DW10 _MMIO(0x162128)
> > +
> > /* BXT PHY Ref registers */
> > #define _PORT_REF_DW3_A 0x16218C
> > #define _PORT_REF_DW3_BC 0x6C18C
> > @@ -6513,6 +6535,7 @@ enum {
> > #define KVM_CONFIG_CHANGE_NOTIFICATION_SELECT (1 << 14)
> >
> > #define CHICKEN_MISC_2 _MMIO(0x42084)
> > +#define COMP_PWR_DOWN (1 << 23)
> > #define GLK_CL0_PWR_DOWN (1 << 10)
> > #define GLK_CL1_PWR_DOWN (1 << 11)
> > #define GLK_CL2_PWR_DOWN (1 << 12)
> > diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c
> > index bee4394..f9ba1e7 100644
> > --- a/drivers/gpu/drm/i915/intel_cdclk.c
> > +++ b/drivers/gpu/drm/i915/intel_cdclk.c
> > @@ -1555,6 +1555,114 @@ static void cnl_set_cdclk(struct drm_i915_private *dev_priv,
> > intel_update_cdclk(dev_priv);
> > }
> >
> > +static int cnl_cdclk_pll_vco(struct drm_i915_private *dev_priv, int cdclk)
> > +{
> > + int ratio;
> > +
> > + if (cdclk == dev_priv->cdclk.hw.ref)
> > + return 0;
> > +
> > + switch (cdclk) {
> > + default:
> > + MISSING_CASE(cdclk);
> > + case 168000:
> > + case 336000:
> > + ratio = dev_priv->cdclk.hw.ref == 19200 ? 35 : 28;
> > + break;
> > + case 528000:
> > + ratio = dev_priv->cdclk.hw.ref == 19200 ? 55 : 44;
> > + break;
> > + }
> > +
> > + return dev_priv->cdclk.hw.ref * ratio;
> > +}
> > +
> > +static void cnl_sanitize_cdclk(struct drm_i915_private *dev_priv)
> > +{
> > + u32 cdctl, expected;
> > +
> > + intel_update_cdclk(dev_priv);
> > +
> > + if (dev_priv->cdclk.hw.vco == 0 ||
> > + dev_priv->cdclk.hw.cdclk == dev_priv->cdclk.hw.ref)
> > + goto sanitize;
> > +
> > + /* DPLL okay; verify the cdclock
> > + *
> > + * Some BIOS versions leave an incorrect decimal frequency value and
> > + * set reserved MBZ bits in CDCLK_CTL at least during exiting from S4,
> > + * so sanitize this register.
> > + */
> > + cdctl = I915_READ(CDCLK_CTL);
> > + /*
> > + * Let's ignore the pipe field, since BIOS could have configured the
> > + * dividers both synching to an active pipe, or asynchronously
> > + * (PIPE_NONE).
> > + */
> > + cdctl &= ~BXT_CDCLK_CD2X_PIPE_NONE;
> > +
> > + expected = (cdctl & BXT_CDCLK_CD2X_DIV_SEL_MASK) |
> > + skl_cdclk_decimal(dev_priv->cdclk.hw.cdclk);
> > +
> > + if (cdctl == expected)
> > + /* All well; nothing to sanitize */
> > + return;
> > +
> > +sanitize:
> > + DRM_DEBUG_KMS("Sanitizing cdclk programmed by pre-os\n");
> > +
> > + /* force cdclk programming */
> > + dev_priv->cdclk.hw.cdclk = 0;
> > +
> > + /* force full PLL disable + enable */
> > + dev_priv->cdclk.hw.vco = -1;
> > +}
> > +
> > +/**
> > + * cnl_init_cdclk - Initialize CDCLK on CNL
> > + * @dev_priv: i915 device
> > + *
> > + * Initialize CDCLK for CNL. This is generally
> > + * done only during the display core initialization sequence,
> > + * after which the DMC will take care of turning CDCLK off/on
> > + * as needed.
> > + */
> > +
>
> Extra w/s.
what do you mean here?
>
> Looks ok:
> Reviewed-by: Imre Deak <imre.deak@intel.com>
thanks
>
> > +void cnl_init_cdclk(struct drm_i915_private *dev_priv)
> > +{
> > + struct intel_cdclk_state cdclk_state;
> > +
> > + cnl_sanitize_cdclk(dev_priv);
> > +
> > + if (dev_priv->cdclk.hw.cdclk != 0 &&
> > + dev_priv->cdclk.hw.vco != 0)
> > + return;
> > +
> > + cdclk_state = dev_priv->cdclk.hw;
> > +
> > + cdclk_state.cdclk = 168000;
> > + cdclk_state.vco = cnl_cdclk_pll_vco(dev_priv, cdclk_state.cdclk);
> > +
> > + cnl_set_cdclk(dev_priv, &cdclk_state);
> > +}
> > +
> > +/**
> > + * cnl_uninit_cdclk - Uninitialize CDCLK on CNL
> > + * @dev_priv: i915 device
> > + *
> > + * Uninitialize CDCLK for CNL. This is done only
> > + * during the display core uninitialization sequence.
> > + */
> > +void cnl_uninit_cdclk(struct drm_i915_private *dev_priv)
> > +{
> > + struct intel_cdclk_state cdclk_state = dev_priv->cdclk.hw;
> > +
> > + cdclk_state.cdclk = cdclk_state.ref;
> > + cdclk_state.vco = 0;
> > +
> > + cnl_set_cdclk(dev_priv, &cdclk_state);
> > +}
> > +
> > /**
> > * intel_cdclk_state_compare - Determine if two CDCLK states differ
> > * @a: first CDCLK state
> > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> > index 7bc0c25..a526e6e 100644
> > --- a/drivers/gpu/drm/i915/intel_drv.h
> > +++ b/drivers/gpu/drm/i915/intel_drv.h
> > @@ -1280,6 +1280,8 @@ void intel_audio_codec_enable(struct intel_encoder *encoder,
> > /* intel_cdclk.c */
> > void skl_init_cdclk(struct drm_i915_private *dev_priv);
> > void skl_uninit_cdclk(struct drm_i915_private *dev_priv);
> > +void cnl_init_cdclk(struct drm_i915_private *dev_priv);
> > +void cnl_uninit_cdclk(struct drm_i915_private *dev_priv);
> > void bxt_init_cdclk(struct drm_i915_private *dev_priv);
> > void bxt_uninit_cdclk(struct drm_i915_private *dev_priv);
> > void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv);
> > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > index 1797c91..5c3c6ec 100644
> > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > @@ -2698,6 +2698,111 @@ void bxt_display_core_uninit(struct drm_i915_private *dev_priv)
> > mutex_unlock(&power_domains->lock);
> > }
> >
> > +#define CNL_PROCMON_IDX(val) \
> > + (((val) & (PROCESS_INFO_MASK | VOLTAGE_INFO_MASK)) >> VOLTAGE_INFO_SHIFT)
> > +#define NUM_CNL_PROCMON \
> > + (CNL_PROCMON_IDX(VOLTAGE_INFO_MASK | PROCESS_INFO_MASK) + 1)
> > +
> > +static const struct cnl_procmon {
> > + u32 dw1, dw9, dw10;
> > +} cnl_procmon_values[NUM_CNL_PROCMON] = {
> > + [CNL_PROCMON_IDX(VOLTAGE_INFO_0_85V | PROCESS_INFO_DOT_0)] =
> > + { .dw1 = 0x00 << 16, .dw9 = 0x62AB67BB, .dw10 = 0x51914F96, },
> > + [CNL_PROCMON_IDX(VOLTAGE_INFO_0_95V | PROCESS_INFO_DOT_0)] =
> > + { .dw1 = 0x00 << 16, .dw9 = 0x86E172C7, .dw10 = 0x77CA5EAB, },
> > + [CNL_PROCMON_IDX(VOLTAGE_INFO_0_95V | PROCESS_INFO_DOT_1)] =
> > + { .dw1 = 0x00 << 16, .dw9 = 0x93F87FE1, .dw10 = 0x8AE871C5, },
> > + [CNL_PROCMON_IDX(VOLTAGE_INFO_1_05V | PROCESS_INFO_DOT_0)] =
> > + { .dw1 = 0x00 << 16, .dw9 = 0x98FA82DD, .dw10 = 0x89E46DC1, },
> > + [CNL_PROCMON_IDX(VOLTAGE_INFO_1_05V | PROCESS_INFO_DOT_1)] =
> > + { .dw1 = 0x44 << 16, .dw9 = 0x9A00AB25, .dw10 = 0x8AE38FF1, },
> > +};
> > +
> > +static void cnl_display_core_init(struct drm_i915_private *dev_priv, bool resume)
> > +{
> > + struct i915_power_domains *power_domains = &dev_priv->power_domains;
> > + const struct cnl_procmon *procmon;
> > + struct i915_power_well *well;
> > + u32 val;
> > +
> > + gen9_set_dc_state(dev_priv, DC_STATE_DISABLE);
> > +
> > + /* 1. Enable PCH Reset Handshake */
> > + val = I915_READ(HSW_NDE_RSTWRN_OPT);
> > + val |= RESET_PCH_HANDSHAKE_ENABLE;
> > + I915_WRITE(HSW_NDE_RSTWRN_OPT, val);
> > +
> > + /* 2. Enable Comp */
> > + val = I915_READ(CHICKEN_MISC_2);
> > + val &= ~COMP_PWR_DOWN;
> > + I915_WRITE(CHICKEN_MISC_2, val);
> > +
> > + val = I915_READ(CNL_PORT_COMP_DW3);
> > + procmon = &cnl_procmon_values[CNL_PROCMON_IDX(val)];
> > +
> > + WARN_ON(procmon->dw10 == 0);
> > +
> > + val = I915_READ(CNL_PORT_COMP_DW1);
> > + val &= ~((0xff << 16) | 0xff);
> > + val |= procmon->dw1;
> > + I915_WRITE(CNL_PORT_COMP_DW1, val);
> > +
> > + I915_WRITE(CNL_PORT_COMP_DW9, procmon->dw9);
> > + I915_WRITE(CNL_PORT_COMP_DW10, procmon->dw10);
> > +
> > + val = I915_READ(CNL_PORT_COMP_DW0);
> > + val |= COMP_INIT;
> > + I915_WRITE(CNL_PORT_COMP_DW0, val);
> > +
> > + /* 3. */
> > + val = I915_READ(CNL_PORT_CL1CM_DW5);
> > + val |= CL_POWER_DOWN_ENABLE;
> > + I915_WRITE(CNL_PORT_CL1CM_DW5, val);
> > +
> > + /* 4. Enable Power Well 1 (PG1) and Aux IO Power */
> > + mutex_lock(&power_domains->lock);
> > + well = lookup_power_well(dev_priv, SKL_DISP_PW_1);
> > + intel_power_well_enable(dev_priv, well);
> > + mutex_unlock(&power_domains->lock);
> > +
> > + /* 5. Enable CD clock */
> > + cnl_init_cdclk(dev_priv);
> > +
> > + /* 6. Enable DBUF */
> > + gen9_dbuf_enable(dev_priv);
> > +}
> > +
> > +#undef CNL_PROCMON_IDX
> > +#undef NUM_CNL_PROCMON
> > +
> > +static void cnl_display_core_uninit(struct drm_i915_private *dev_priv)
> > +{
> > + struct i915_power_domains *power_domains = &dev_priv->power_domains;
> > + struct i915_power_well *well;
> > + u32 val;
> > +
> > + gen9_set_dc_state(dev_priv, DC_STATE_DISABLE);
> > +
> > + /* 1. Disable all display engine functions -> aready done */
> > +
> > + /* 2. Disable DBUF */
> > + gen9_dbuf_disable(dev_priv);
> > +
> > + /* 3. Disable CD clock */
> > + cnl_uninit_cdclk(dev_priv);
> > +
> > + /* 4. Disable Power Well 1 (PG1) and Aux IO Power */
> > + mutex_lock(&power_domains->lock);
> > + well = lookup_power_well(dev_priv, SKL_DISP_PW_1);
> > + intel_power_well_disable(dev_priv, well);
> > + mutex_unlock(&power_domains->lock);
> > +
> > + /* 5. Disable Comp */
> > + val = I915_READ(CHICKEN_MISC_2);
> > + val |= COMP_PWR_DOWN;
> > + I915_WRITE(CHICKEN_MISC_2, val);
> > +}
> > +
> > static void chv_phy_control_init(struct drm_i915_private *dev_priv)
> > {
> > struct i915_power_well *cmn_bc =
> > @@ -2830,7 +2935,9 @@ void intel_power_domains_init_hw(struct drm_i915_private *dev_priv, bool resume)
> >
> > power_domains->initializing = true;
> >
> > - if (IS_GEN9_BC(dev_priv)) {
> > + if (IS_CANNONLAKE(dev_priv)) {
> > + cnl_display_core_init(dev_priv, resume);
> > + } else if (IS_GEN9_BC(dev_priv)) {
> > skl_display_core_init(dev_priv, resume);
> > } else if (IS_GEN9_LP(dev_priv)) {
> > bxt_display_core_init(dev_priv, resume);
> > @@ -2869,7 +2976,9 @@ void intel_power_domains_suspend(struct drm_i915_private *dev_priv)
> > if (!i915.disable_power_well)
> > intel_display_power_put(dev_priv, POWER_DOMAIN_INIT);
> >
> > - if (IS_GEN9_BC(dev_priv))
> > + if (IS_CANNONLAKE(dev_priv))
> > + cnl_display_core_uninit(dev_priv);
> > + else if (IS_GEN9_BC(dev_priv))
> > skl_display_core_uninit(dev_priv);
> > else if (IS_GEN9_LP(dev_priv))
> > bxt_display_core_uninit(dev_priv);
> > --
> > 1.9.1
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2017-06-05 16:38 UTC|newest]
Thread overview: 182+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-06 19:14 [PATCH 01/67] drm/i915/cnp: Introduce Cannonpoint PCH Rodrigo Vivi
2017-04-06 19:14 ` [PATCH 02/67] drm/i915/cnp: Add PCI ID for Cannonpoint LP PCH Rodrigo Vivi
2017-04-12 17:41 ` Srivatsa, Anusha
2017-04-06 19:14 ` [PATCH 03/67] drm/i915/cnp: Get/set proper Raw clock frequency on CNP Rodrigo Vivi
2017-04-07 13:45 ` Ville Syrjälä
2017-04-06 19:15 ` [PATCH 04/67] drm/i915/cnp: Add Backlight support to CNP PCH Rodrigo Vivi
2017-04-07 14:16 ` Ville Syrjälä
2017-04-11 8:33 ` Jani Nikula
2017-04-06 19:15 ` [PATCH 05/67] drm/i915/cnp: add CNP gmbus support Rodrigo Vivi
2017-04-07 0:54 ` [PATCH] " Rodrigo Vivi
2017-04-07 18:46 ` kbuild test robot
2017-04-17 21:13 ` [PATCH 05/67] " Srivatsa, Anusha
2017-04-06 19:15 ` [PATCH 06/67] drm/i915/cnp: Panel Power sequence changes for CNP PCH Rodrigo Vivi
2017-04-07 14:48 ` Ville Syrjälä
2017-04-13 23:48 ` Vivi, Rodrigo
2017-05-23 22:16 ` Ville Syrjälä
2017-04-06 19:15 ` [PATCH 07/67] drm/i915/cnl: Introduce Cannonlake platform defition Rodrigo Vivi
2017-05-04 8:55 ` Ander Conselvan De Oliveira
2017-04-06 19:15 ` [PATCH 08/67] drm/i915/cnl: Cannonlake uses CNP PCH Rodrigo Vivi
2017-05-03 23:46 ` Srivatsa, Anusha
2017-04-06 19:15 ` [PATCH 09/67] drm/i915/cnl: Add Cannonlake PCI IDs for U-skus Rodrigo Vivi
2017-06-02 16:07 ` Clint Taylor
2017-04-06 19:15 ` [PATCH 10/67] drm/i915/cnl: Add Cannonlake PCI IDs for Y-skus Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 11/67] drm/i915/cnl: add IS_CNL_REVID macro Rodrigo Vivi
2017-05-11 15:37 ` Jim Bride
2017-04-06 19:15 ` [PATCH 12/67] drm/i915/cnl: Introduce initial Cannonlake Workarounds Rodrigo Vivi
2017-04-28 17:11 ` Oscar Mateo
2017-05-10 11:17 ` Ander Conselvan De Oliveira
2017-06-06 20:53 ` [PATCH] " Rodrigo Vivi
2017-06-07 20:47 ` kbuild test robot
2017-06-07 21:09 ` kbuild test robot
2017-04-06 19:15 ` [PATCH 13/67] drm/i915/cnl: Add WaDisableReplayBufferBankArbitrationOptimization Rodrigo Vivi
2017-06-08 16:54 ` Mika Kuoppala
2017-06-08 17:09 ` Vivi, Rodrigo
2017-04-06 19:15 ` [PATCH 14/67] drm/i915/cnl: WaDisableEnhancedSBEVertexCaching Rodrigo Vivi
2017-06-08 17:07 ` Mika Kuoppala
2017-04-06 19:15 ` [PATCH 15/67] drm/i915/cnl: Apply large line width optimization Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 16/67] drm/i915/cnl: Cannonlake has 4 planes (3 sprites) per pipe Rodrigo Vivi
2017-05-04 9:10 ` Ander Conselvan De Oliveira
2017-04-06 19:15 ` [PATCH 17/67] drm/i915/cnl: CNL has an increased DDB size Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 18/67] drm/i915/cnl: Add initial gen10 golden states Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 19/67] drm/i915/cnl: Configure EU slice power gating Rodrigo Vivi
2017-06-02 11:27 ` Joonas Lahtinen
2017-04-06 19:15 ` [PATCH 20/67] drm/i915/cnl: Cannonlake has same MOCS table than Skylake Rodrigo Vivi
2017-06-02 11:20 ` Joonas Lahtinen
2017-04-06 19:15 ` [PATCH 21/67] drm/i915/cnl: Update the context size Rodrigo Vivi
2017-04-06 19:46 ` Chris Wilson
2017-04-06 21:53 ` Daniele Ceraolo Spurio
2017-04-06 21:56 ` Ben Widawsky
2017-04-06 19:15 ` [PATCH 22/67] drm/i915/cnl: Add RT cache flush pipe control w/a Rodrigo Vivi
2017-06-02 10:01 ` Tvrtko Ursulin
2017-06-05 17:17 ` Vivi, Rodrigo
2017-04-06 19:15 ` [PATCH 23/67] drm/i915/gen10: Set value of Indirect Context Offset for gen10 Rodrigo Vivi
2017-06-02 9:50 ` Tvrtko Ursulin
2017-06-05 17:11 ` Vivi, Rodrigo
2017-06-06 6:48 ` Tvrtko Ursulin
2017-06-06 15:18 ` Vivi, Rodrigo
2017-04-06 19:15 ` [PATCH 24/67] drm/i915/cnl: Add force wake " Rodrigo Vivi
2017-06-08 14:58 ` Joonas Lahtinen
2017-04-06 19:15 ` [PATCH 25/67] drm/i915/cnl: Inherit RPS stuff from previous platforms Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 26/67] drm/i915/cnl: Add power wells for CNL Rodrigo Vivi
2017-06-05 15:55 ` Imre Deak
2017-06-05 16:42 ` Vivi, Rodrigo
2017-04-06 19:15 ` [PATCH 27/67] drm/i915/cnl: Also need power well sanitize Rodrigo Vivi
2017-04-13 14:44 ` Imre Deak
2017-04-13 16:03 ` Vivi, Rodrigo
2017-06-05 15:56 ` Imre Deak
2017-04-06 19:15 ` [PATCH 28/67] drm/i915/cnl: Implement .get_display_clock_speed() for CNL Rodrigo Vivi
2017-06-02 18:06 ` Imre Deak
2017-06-05 17:59 ` Vivi, Rodrigo
2017-06-05 18:04 ` Ville Syrjälä
2017-06-05 18:21 ` Imre Deak
2017-06-05 18:28 ` Vivi, Rodrigo
2017-06-05 20:07 ` Imre Deak
2017-06-06 21:56 ` Rodrigo Vivi
2017-06-07 10:59 ` Ville Syrjälä
2017-06-07 11:09 ` Ville Syrjälä
2017-06-07 14:22 ` Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 29/67] drm/i915/cnl: Implement .set_cdclk() " Rodrigo Vivi
2017-06-05 13:11 ` Imre Deak
2017-04-06 19:15 ` [PATCH 30/67] drm/i915/cnl: Implement CNL display init/unit sequence Rodrigo Vivi
2017-04-13 16:13 ` [PATCH] " Rodrigo Vivi
2017-06-05 15:07 ` Imre Deak
2017-06-05 16:38 ` Vivi, Rodrigo [this message]
2017-06-05 16:58 ` Imre Deak
2017-04-06 19:15 ` [PATCH 31/67] drm/i915/cnl: Allow dynamic cdclk changes on CNL Rodrigo Vivi
2017-06-05 15:22 ` Imre Deak
2017-06-05 16:41 ` Vivi, Rodrigo
2017-06-05 16:55 ` Ville Syrjälä
2017-06-05 17:04 ` Pandiyan, Dhinakaran
2017-06-06 15:24 ` Rodrigo Vivi
2017-06-06 17:39 ` Pandiyan, Dhinakaran
2017-06-06 18:09 ` Rodrigo Vivi
2017-06-06 18:12 ` Rodrigo Vivi
2017-06-06 21:48 ` Pandiyan, Dhinakaran
2017-06-06 21:57 ` Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 32/67] drm/i915/cnl: DDI - PLL mapping Rodrigo Vivi
2017-04-07 21:12 ` Paulo Zanoni
2017-05-04 12:35 ` Ander Conselvan De Oliveira
2017-05-04 12:44 ` Ville Syrjälä
2017-05-04 13:02 ` Maarten Lankhorst
2017-05-04 13:11 ` Ville Syrjälä
2017-05-23 19:42 ` Vivi, Rodrigo
2017-05-04 12:55 ` Ander Conselvan De Oliveira
2017-04-06 19:15 ` [PATCH 33/67] drm/i915: Configure DPLL's for Cannonlake Rodrigo Vivi
2017-05-04 13:16 ` Ander Conselvan De Oliveira
2017-04-06 19:15 ` [PATCH 34/67] drm/i915/cnl: Initialize PLLs Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 35/67] drm/i915/cnl: Enable wrpll computation for CNL Rodrigo Vivi
2017-06-08 23:03 ` [PATCH] " Rodrigo Vivi
2017-06-08 23:24 ` Clint Taylor
2017-04-06 19:15 ` [PATCH 36/67] drm/i915: Add MMIO helper for 6 ports with different offsets Rodrigo Vivi
2017-05-17 19:20 ` Manasi Navare
2017-05-23 19:16 ` Rodrigo Vivi
2017-06-05 18:45 ` Manasi Navare
2017-04-06 19:15 ` [PATCH 37/67] drm/i915/cnl: Add registers related to voltage swing sequences Rodrigo Vivi
2017-05-18 0:59 ` Manasi Navare
2017-05-23 19:18 ` Vivi, Rodrigo
2017-06-05 18:47 ` Manasi Navare
2017-06-05 20:45 ` [PATCH] " Rodrigo Vivi
2017-06-05 20:46 ` Rodrigo Vivi
2017-06-06 0:03 ` Manasi Navare
2017-06-05 20:51 ` [PATCH] drm/i915/cnl: Implement voltage swing sequence Rodrigo Vivi
2017-06-05 20:53 ` Rodrigo Vivi
2017-06-06 0:00 ` Manasi Navare
2017-04-06 19:15 ` [PATCH 38/67] drm/i915/cnl: Add DDI Buffer translation tables for Cannonlake Rodrigo Vivi
2017-05-18 1:01 ` Manasi Navare
2017-04-06 19:15 ` [PATCH 39/67] drm/i915/cnl: Implement voltage swing sequence Rodrigo Vivi
2017-05-18 1:13 ` Manasi Navare
2017-05-23 19:19 ` Vivi, Rodrigo
2017-04-06 19:15 ` [PATCH 40/67] drm/i915/cnl: Enable loadgen_select bit for vswing sequence Rodrigo Vivi
2017-04-24 18:53 ` Ville Syrjälä
2017-05-18 1:17 ` Manasi Navare
2017-04-06 19:15 ` [PATCH 41/67] drm/i915/cnl: Add slice and subslice information to debugfs Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 42/67] drm/i915/DMC/CNL: Load DMC on CNL Rodrigo Vivi
2017-05-22 10:43 ` Animesh Manna
2017-04-06 19:15 ` [PATCH 43/67] drm/i915: Use HAS_CSR instead of gen number on DMC load Rodrigo Vivi
2017-05-22 10:46 ` Animesh Manna
2017-04-06 19:15 ` [PATCH 44/67] drm/i915/cnl: DC3 to DC5 counters available on CNL Rodrigo Vivi
2017-05-22 12:55 ` Animesh Manna
2017-04-06 19:15 ` [PATCH 45/67] drm/i915/cnl: Add max allowed Cannonlake DC Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 46/67] drm/i915/cnl: Add allowed DP rates for Cannonlake Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 47/67] drm/i915/cnl: Dump the right pll registers when dumping pipe config Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 48/67] drm/i915/cnl: Get DDI clock based on PLLs Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 49/67] drm/i915/cnl: Avoid old DDI translation functions on Cannonlake Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 50/67] drm/i915/gen10+: use the SKL code for reading WM latencies Rodrigo Vivi
2017-04-24 18:22 ` Ville Syrjälä
2017-04-24 19:10 ` Paulo Zanoni
2017-04-24 20:04 ` Ville Syrjälä
2017-04-06 19:15 ` [PATCH 51/67] drm/i915/cnl: Enable SAGV for Cannonlake Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 52/67] drm/i915/gen10: fix the gen 10 SAGV block time Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 53/67] drm/i915/cnl: don't apply the GEN9/CNL:A WM WAs to CNL:B+ Rodrigo Vivi
2017-05-24 8:40 ` Mahesh Kumar
2017-04-06 19:15 ` [PATCH 54/67] drm/i915/gen10: fix WM latency printing Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 55/67] drm/i915/gen10: implement gen 10 watermarks calculations Rodrigo Vivi
2017-05-29 8:25 ` Ander Conselvan De Oliveira
2017-04-06 19:15 ` [PATCH 56/67] drm/i915/cnl: Reuse skl_wm_get_hw_state on Cannonlake Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 57/67] x86/gpu: CNL uses the same GMS values as SKL Rodrigo Vivi
2017-04-06 19:39 ` [PATCH] " Rodrigo Vivi
2017-04-07 19:21 ` kbuild test robot
2017-04-07 19:21 ` Paulo Zanoni
2017-04-13 1:33 ` [kbuild-all] " Ye Xiaolong
2017-04-07 22:07 ` Thomas Gleixner
2017-04-06 19:15 ` [PATCH 58/67] drm/i915/cnl: Cannonlake color init Rodrigo Vivi
2017-04-24 17:57 ` Ville Syrjälä
2017-04-25 5:29 ` Vivi, Rodrigo
2017-04-25 7:08 ` Ander Conselvan De Oliveira
2017-04-06 19:15 ` [PATCH 59/67] drm/i915/cnl: Fix Cannonlake scaler mode programing Rodrigo Vivi
2017-04-24 18:11 ` Ville Syrjälä
2017-04-06 19:15 ` [PATCH 60/67] drm/i915/cnl: Enable fifo underrun for Cannonlake Rodrigo Vivi
2017-04-07 8:16 ` Mika Kahola
2017-04-06 19:15 ` [PATCH 61/67] drm/i915/cnl: Setup PAT Index Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 62/67] drm/i915/cnl: Add support slice/subslice/eu configs Rodrigo Vivi
2017-04-06 19:15 ` [PATCH 63/67] drm/i915/cnl: Avoid ioremap_wc on Cannonlake as well Rodrigo Vivi
2017-04-06 19:16 ` [PATCH 64/67] drm/i915/cnl: WaThrottleEUPerfToAvoidTDBackPressure:cnl(pre-prod) Rodrigo Vivi
2017-09-06 21:55 ` Oscar Mateo
2017-04-06 19:16 ` [PATCH 65/67] drm/i915/cnl: Enable Audio Pin Buffer Rodrigo Vivi
2017-04-06 19:16 ` [PATCH 66/67] drm/i915/cnl: LSPCON support is gen9+ Rodrigo Vivi
2017-04-07 5:54 ` Sharma, Shashank
2017-04-06 19:16 ` [PATCH 67/67] drm/i915/cnl: Adjust min pixel rate Rodrigo Vivi
2017-04-06 20:12 ` ✗ Fi.CI.BAT: warning for series starting with [01/67] drm/i915/cnp: Introduce Cannonpoint PCH. (rev2) Patchwork
2017-04-07 1:13 ` ✗ Fi.CI.BAT: warning for series starting with [01/67] drm/i915/cnp: Introduce Cannonpoint PCH. (rev3) Patchwork
2017-04-13 17:53 ` [PATCH 01/67] drm/i915/cnp: Introduce Cannonpoint PCH Srivatsa, Anusha
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=1496680715.20038.5.camel@rdvivi-vienna \
--to=rodrigo.vivi@intel.com \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=paulo.r.zanoni@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox