This reverts
>
> commit 2514bc510d0c3aadcc5204056bb440fa36845147
> Author: Jesse Barnes
> Date: Thu Jun 21 15:13:50 2012 -0700
>
> drm/i915: prefer wide & slow to fast & narrow in DP configs
>
> I'm pretty sure I'll regret this patch, but otoh I expect
On Fri, 28 Feb 2014 19:38:17 +0200
Imre Deak wrote:
> On Fri, 2014-02-28 at 09:13 -0800, Jesse Barnes wrote:
> > On Thu, 27 Feb 2014 19:26:43 -0300
> > Paulo Zanoni wrote:
> >
> > > From: Paulo Zanoni
> > >
> > > We had these intel_aux_display
K(&dev_priv->rps.delayed_resume_work,
> intel_gen6_powersave_work);
>
> + dev_priv->pm.suspended = false;
> dev_priv->pm.irqs_disabled = false;
> }
Reviewed-by: Jesse Barnes
Though my earlier comments about getting rid of the init special case
sti
ut(struct drm_device *dev,
> struct i915_power_well *power_well)
> {
> - struct drm_i915_private *dev_priv = dev->dev_private;
> -
> WARN_ON(!power_well->count);
>
> if (!--power_well->count && power_well->set &&
> -
l_init_runtime_pm),
> but
> + * it can be changed with the standard runtime PM files frmo sysfs.
typo "from"
Otherwise, Reviewed-by: Jesse Barnes
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
gt; - hsw_enable_package_c8(dev_priv);
> -
> mutex_lock(&dev_priv->modeset_restore_lock);
> dev_priv->modeset_restore = MODESET_DONE;
> mutex_unlock(&dev_priv->modeset_restore_lock);
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source
iv);
> +void hsw_enable_pc8(struct drm_i915_private *dev_priv);
> +void hsw_disable_pc8(struct drm_i915_private *dev_priv);
> void intel_dp_get_m_n(struct intel_crtc *crtc,
> struct intel_crtc_config *pipe_config);
> int intel_dotclock_calculate(int link_freq, con
_gt_irq(struct drm_i915_private *dev_priv, uint32_t mask);
> void snb_enable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask);
> void snb_disable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask);
> -void hsw_pc8_disable_interrupts(struct drm_device *dev);
> -void hsw_pc8_restore_interrupts(struct drm_device *dev);
> +void hsw_runtime_pm_disable_interrupts(struct drm_device *dev);
> +void hsw_runtime_pm_restore_interrupts(struct drm_device *dev);
>
>
> /* intel_crt.c */
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index c85507a..5ff4b59 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5770,7 +5770,8 @@ void intel_pm_setup(struct drm_device *dev)
> mutex_init(&dev_priv->rps.hw_lock);
>
> mutex_init(&dev_priv->pc8.lock);
> - dev_priv->pc8.irqs_disabled = false;
> INIT_DELAYED_WORK(&dev_priv->rps.delayed_resume_work,
> intel_gen6_powersave_work);
> +
> + dev_priv->pm.irqs_disabled = false;
> }
I wonder if we should eventually not bother with saving/restoring the
interrupt state and do a full re-init like we'll have to in the display
power well case. But that's a separate issue really...
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
index 5ff4b59..3bd6e8f 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5769,7 +5769,6 @@ void intel_pm_setup(struct drm_device *dev)
>
> mutex_init(&dev_priv->rps.hw_lock);
>
> - mutex_init(&dev_priv->
R_WELL_DRIVER);
> is_enabled = tmp & HSW_PWR_WELL_STATE_ENABLED;
> enable_requested = tmp & HSW_PWR_WELL_ENABLE_REQUEST;
> @@ -5773,7 +5771,6 @@ void intel_pm_setup(struct drm_device *dev)
>
> mutex_init(&dev_priv->pc8.lock);
>
aux_display_runtime_get(struct drm_i915_private *dev_priv)
> -{
> - hsw_disable_package_c8(dev_priv);
> -}
> -
> -void intel_aux_display_runtime_put(struct drm_i915_private *dev_priv)
> -{
> - hsw_enable_package_c8(dev_priv);
> -}
> -
> void intel_runtime_pm_get
/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5793,7 +5793,6 @@ void intel_pm_setup(struct drm_device *dev)
> mutex_init(&dev_priv->pc8.lock);
> dev_priv->pc8.irqs_disabled = false;
> dev_priv->pc8.enabled = false;
> - dev_priv->pc8.
,7 +6716,7 @@ void hsw_disable_package_c8(struct drm_i915_private
> *dev_priv)
> return;
>
> mutex_lock(&dev_priv->pc8.lock);
> - __hsw_disable_package_c8(dev_priv);
> + intel_runtime_pm_get(dev_priv);
> mutex_unlock(&dev_priv->pc8
;
> dev_priv->mm.busy = true;
> }
> @@ -8131,7 +8131,7 @@ void intel_mark_idle(struct drm_device *dev)
> gen6_rps_idle(dev->dev_private);
>
> out:
> - hsw_enable_package_c8(dev_priv);
> + intel_runtime_pm_put(dev_priv);
> }
>
> void i
On Wed, 26 Feb 2014 20:02:19 +0200
Imre Deak wrote:
> On Thu, 2014-02-20 at 11:58 -0800, Jesse Barnes wrote:
> > On Wed, 19 Feb 2014 14:29:44 +0200
> > Ville Syrjälä wrote:
> >
> > > On Tue, Feb 18, 2014 at 12:02:20AM +0200, Imre Deak wrote:
> > &g
/* crtc index */
> bool enabled; /* so we don't call enable more than
> once per disable */
> + bool reject;/* reject drm_vblank_get()? */
> };
>
> /**
> @@ -1400,7 +1401,8 @@
c'ing Mario for another opinion too. This makes me nervous but it
seems ok.
I think you should update the docbook (with examples) as well so other
driver writers will know how to use this stuff.
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
bool vblank_always_enable_on_get;
> +
> /* array of size num_crtcs */
> struct drm_vblank_crtc *vblank;
>
This seems like the sort of thing it would be good to have a test
for... I'm surprised we haven't hit it yet. But in l
/* for wraparound handling */
> u32 last_wait; /* Last vblank seqno waited per CRTC */
> unsigned int inmodeset; /* Display driver is setting mode */
> + int crtc; /* crtc index */
> bool enabled;
906,7 +906,7 @@ int drm_vblank_get(struct drm_device *dev, int crtc)
> drm_update_vblank_count(dev, crtc);
> }
> }
> - spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags2);
> + spin_unlock(&dev->vblank_time_lock);
> } e
len Memory");
> + if (r == NULL) {
> + DRM_ERROR("conflict detected with stolen region:"\
> + "[0x%08x - 0x%08x]\n",
> + base, base +
> (uint32_t)dev_priv->gtt.stolen
.13 and 3.14-rc1 didn't prove fruitful,
> >either because I messed it up or there's a combination of things that
> >fix the issue. So instead I did a regular git bisect between 3.12 and
> >3.13 to see which commit _broke_ things and caused the above behavior.
> >
To silence locking complaints. This was a rebase failure on my part in
commit fa9fa083d0606cb323f6105c17702460ea0a6780
Author: Jesse Barnes
Date: Tue Feb 11 15:28:56 2014 -0800
drm/i915: read out hw state earlier v2
Reported-by: Ville Syrjälä
Signed-off-by: Jesse Barnes
---
drivers
On Fri, 21 Feb 2014 17:08:50 -0300
Paulo Zanoni wrote:
> 2014-02-21 14:34 GMT-03:00 Jesse Barnes :
> > On Fri, 21 Feb 2014 13:52:20 -0300
> > Paulo Zanoni wrote:
> >
> >> From: Paulo Zanoni
> >>
> >> When we call gen6_gt_force_wake_put we don&
display
> > power gating is
> > enabled. I will try to include a test to cover this test
>
> Hm, which exact interrupt routing are you referring to? At least on my
> BYT I manage to power off only the display power well and keep the
> render well on, while still being ab
_pm_get(dev_priv);
> +
> rdmsrl(MSR_RAPL_POWER_UNIT, power);
> power = (power & 0x1f00) >> 8;
> units = 100 / (1 << power); /* convert to uJ */
> power = I915_READ(MCH_SECP_NRG_STTS);
> power *= units;
>
> + intel_runtim
atus;
> + if (!force) {
> + status = connector->status;
> + goto out;
> + }
>
> /* for pre-945g platforms use load detect */
> if (intel_get_load_detect_pipe(connector, NULL, &tmp)) {
> @@ -673,6 +683,8 @@ intel_crt_detect(s
, x, y, fb);
>
> if (ret == 0)
> intel_modeset_check_state(crtc->dev);
>
> + intel_runtime_pm_put(dev_priv);
> return ret;
> }
>
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
rtc_list, head) {
> if (!crtc->fb)
> @@ -8224,6 +8222,9 @@ void intel_mark_idle(struct drm_device *dev)
>
> if (INTEL_INFO(dev)->gen >= 6)
> gen6_rps_idle(dev->dev_private);
> +
> +out:
> + hsw_package_c8_gpu_idle(dev_priv);
ly cool registers */
Do we need this for the VLV path too?
It's a little confusing that we do this delayed thing, incrementing the
count and then decrementing again in the work queue, but what you have
looks correct for both cases.
So with the VLV thing addressed:
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Useful for bug reports.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/i915_debugfs.c |4
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c
b/drivers/gpu/drm/i915/i915_debugfs.c
index b737583..1cb56f7 100644
--- a/drivers/gpu/drm/i915
ed-by: Ville Syrjälä
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_fbdev.c | 18 ++
1 file changed, 18 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c
b/drivers/gpu/drm/i915/intel_fbdev.c
index 7693728..5935544 100644
--- a/drivers/gpu/drm/i915/intel_fb
gt; + if (wait_for(COND, 100))
> > + DRM_ERROR("timout setting power well state %08x (%08x)\n",
> > + state,
> > + vlv_punit_read(dev_priv, PUNIT_REG_PWRGT_CTRL));
>
> #undef COND somewhere to avoid suprises further down in the code?
>
> > +
> > +out:
> > + mutex_unlock(&dev_priv->rps.hw_lock);
> > +}
> > +
>
>
I'd like to see the code for re-enabling the display state land
eventually too, so we can get savings when userspace uses DPMS instead
of NULL mode sets for things. But to do that nicely requires some more
work in the mode set code to pull out more PLL bits (also needed for
atomic mode setting).
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
drm_device
> *dev)
> I915_WRITE(HWSTAM, 0x);
> I915_WRITE(PORT_HOTPLUG_EN, 0);
> I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
> - for_each_pipe(pipe)
> - I915_WRITE(PIPESTAT(pipe), 0x);
> +
> + if (dev_priv-&
cleanup_gem_stolen;
>
> - intel_power_domains_init_hw(dev_priv);
> -
> /* Important: The output setup functions called by modeset_init need
>* working irqs for e.g. gmbus and dp aux transfers. */
> intel_modeset_init(dev);
Reviewed-by: Jesse Barne
ng it to be enabled.
> - */
> void intel_power_domains_init_hw(struct drm_i915_private *dev_priv)
> {
> /* For now, we need the power well to be always enabled. */
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
return;
>
> - if (!(I915_READ(vga_reg) & VGA_DISP_DISABLE)) {
> - DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n");
> - i915_disable_vga(dev);
> - }
> + i915_redisable_vga_power_on(dev);
> }
>
> static void intel_
vlv_punit_write(dev_priv, PUNIT_REG_PWRGT_CTRL, 0x0);
>
> mutex_unlock(&dev_priv->rps.hw_lock);
I'd like to see a doc reference here, as I never remember which one has
these bits... Also, are you sure about the RX bits? The
PUNIT_HAS_0.8 doc says only subsystems 10-11 cover RX, maybe in a ganged
config?
Otherwise:
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
form specific power check for each block to
do some basic sanity checking on whether the appropriate well was
enabled and squak if not.
I just know we'll miss this more than once, and I'm not sure if the
unclaimed reg stuff will save us on all platforms.
--
Jesse Barnes, Intel Open Sourc
crtc->active = intel_display_get_pipe_config(crtc,
> + &crtc->config);
>
> crtc->base.enabled = crtc->active;
> crtc->primary_enabled = crtc->active;
Same comment
isplay_port_power_domain(struct intel_encoder
> *intel_encoder);
> int valleyview_get_vco(struct drm_i915_private *dev_priv);
> void intel_mode_from_pipe_config(struct drm_display_mode *mode,
>struct intel_crtc_config *pipe_config);
> +bool intel_enco
@ static struct i915_power_well hsw_power_wells[] = {
> static struct i915_power_well bdw_power_wells[] = {
> {
> .name = "always-on",
> - .always_on = 1,
> .domains = BDW_ALWAYS_ON_POWER_DOMAINS,
>
14 +5528,6 @@ void intel_power_domains_init_hw(struct
> drm_i915_private *dev_priv)
> /* For now, we need the power well to be always enabled. */
> intel_display_set_init_power(dev_priv, true);
> intel_power_domains_resume(dev_priv);
> -
> - if (!(IS_HASWELL
rivers/gpu/drm/i915/intel_pm.c
> @@ -5412,6 +5412,15 @@ EXPORT_SYMBOL_GPL(i915_release_power_well);
> #define HSW_ALWAYS_ON_POWER_DOMAINS (\
> BIT(POWER_DOMAIN_PIPE_A) | \
> BIT(POWER_DOMAIN_TRANSCODER_EDP) | \
> + BIT(PO
31,7 @@ static struct i915_power_well bdw_power_wells[] = {
> },
> {
> .name = "display",
> - .domains = POWER_DOMAIN_MASK & ~BDW_ALWAYS_ON_POWER_DOMAINS,
> + .domains = BDW_DISPLAY_POWER_DOMAINS,
> .is_enabled = hsw_power_well_enabled,
> .set = hsw_set_power_well,
> },
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
_domains_resume(struct drm_i915_private *dev_priv)
> {
> - struct drm_i915_private *dev_priv = dev->dev_private;
> struct i915_power_domains *power_domains = &dev_priv->power_domains;
> struct i915_power_well *power_well;
> int i;
> @@ -5486,7 +5473,7 @@ static void intel_power_domains_resume(struct
> drm_device *dev)
> mutex_lock(&power_domains->lock);
> for_each_power_well(i, power_well, POWER_DOMAIN_MASK, power_domains) {
> if (power_well->set)
> - power_well->set(dev, power_well, power_well->count > 0);
> + power_well->set(dev_priv, power_well, power_well->count
> > 0);
> }
> mutex_unlock(&power_domains->lock);
> }
> @@ -5497,15 +5484,13 @@ static void intel_power_domains_resume(struct
> drm_device *dev)
> * to be enabled, and it will only be disabled if none of the registers is
> * requesting it to be enabled.
> */
> -void intel_power_domains_init_hw(struct drm_device *dev)
> +void intel_power_domains_init_hw(struct drm_i915_private *dev_priv)
> {
> - struct drm_i915_private *dev_priv = dev->dev_private;
> -
> /* For now, we need the power well to be always enabled. */
> - intel_display_set_init_power(dev, true);
> - intel_power_domains_resume(dev);
> + intel_display_set_init_power(dev_priv, true);
> + intel_power_domains_resume(dev_priv);
>
> - if (!(IS_HASWELL(dev) || IS_BROADWELL(dev)))
> + if (!(IS_HASWELL(dev_priv->dev) || IS_BROADWELL(dev_priv->dev)))
> return;
>
> /* We're taking over the BIOS, so clear any requests made by it since
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
- intel_display_power_get(dev_priv, domain);
> - }
> -
> - list_for_each_entry(crtc, &dev->mode_config.crtc_list, base.head) {
> - enum intel_display_power_domain domain;
> -
> - for_each_power_domain(domain, crtc->enabled_power_domains)
> - intel_display_power_put(dev_priv, domain);
> -
> - crtc->enabled_power_domains = pipe_domains[crtc->pipe];
> - }
> -
> - intel_display_set_init_power(dev_priv, false);
> -}
> -
> static void haswell_modeset_global_resources(struct drm_device *dev)
> {
> modeset_update_power_wells(dev);
Reviewed-by: Jesse Barnes
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
dev_priv, power_well);
> + for_each_power_well_rev(i, power_well, BIT(domain), power_domains) {
> + WARN_ON(!power_well->count);
> +
> + if (!--power_well->count && power_well->set &&
> + i915.disab
-
> /* WaForceL3Serialization:vlv */
> I915_WRITE(GEN7_L3SQCREG4, I915_READ(GEN7_L3SQCREG4) &
> ~L3SQ_URB_READ_CAM_MATCH_DISABLE);
I don't think we have good docs on this, but since it works empirically:
Acked-by: Jesse Barnes
--
Jesse Barnes, Intel Open
In the move over to use BIOS connector configs, we lost the ability to
force a specific set of connectors on or off. Try to remedy that by
dropping back to the old behavior if we detect a hard coded connector
config.
Reported-by: Ville Syrjälä
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm
"[0x%08x - 0x%08x]\n",
> > + base, base +
> > (uint32_t)dev_priv->gtt.stolen_size);
> > + base = 0;
> > + }
> > }
> >
> > return base;
It doesn't look like this was actually merged, and it belongs in -fixes
with a cc: stable since it affects existing machines with these BIOS
issues.
Cc'ing Jani so he can pick it up when he returns.
--
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
blt_control_type_bits;
> } __packed;
>
> /* LFP pointer table contains entries to the struct below */
> @@ -478,6 +493,20 @@ struct bdb_driver_features {
>
> u8 hdmi_termination;
> u8 custom_vbt_version;
> + /* Driver features data block */
> + u16 rm
ddf68ab71aeed709dacd9cf65dc0f75
> Author: Jesse Barnes
> Date: Fri Feb 7 12:10:38 2014 -0800
>
> drm/i915: alloc intel_fb in the intel_fbdev struct
>
> Cc: Jesse Barnes
> Signed-off-by: Daniel Vetter
> ---
> drivers/gpu/drm/i915/intel_display.c | 8 +---
> 1 fi
On Wed, 12 Feb 2014 23:07:15 +
Chris Wilson wrote:
> On Wed, Feb 12, 2014 at 12:26:29PM -0800, Jesse Barnes wrote:
> > + /* Find the largest fb */
> > + list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
> > + int
It can be corrected later and may be what was actually desired, but
generally isn't, so if we find nothing is enabled, let the core DRM fb
helper figure something out.
v2: free the array too (Jesse)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_fbdev.c |
It can be corrected later and may be what was actually desired, but
generally isn't, so if we find nothing is enabled, let the core DRM fb
helper figure something out.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_fbdev.c | 24 ++--
1 file change
This allows drivers to use them in custom initial_config functions.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/drm_fb_helper.c |6 --
include/drm/drm_fb_helper.h |6 ++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b
Early at init time, we can try to read out the plane config structure
and try to preserve it if possible.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/i915_drv.h |3 ++
drivers/gpu/drm/i915/intel_display.c | 82 ++
drivers/gpu/drm/i915
ild out fbdev structs
v2: use BIOS connector config unconditionally if possible (Daniel)
check for crtc cloning and reject (Daniel)
fix up comments (Daniel)
v3: use command line args and preferred modes first (Ville)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c |
This should allow BIOS fb inheritance to work on ILK+ machines too.
v2: handle tiled BIOS fbs (Kristian)
split out common bits (Jesse)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 67 ++
1 file changed, 67 insertions(+)
diff
This allows drivers to use them in custom initial_config functions.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/drm_fb_helper.c |6 --
include/drm/drm_fb_helper.h |6 ++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b
S fbs (Kristian)
pull out common bits (Jesse)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 67 ++
1 file changed, 67 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915/intel_display.c
index e9
nditional (Daniel)
v12:fix up fb vs pipe size checking (Chris)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_drv.h |1 +
drivers/gpu/drm/i915/intel_fbdev.c | 174 ++--
2 files changed, 166 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu
: split out init ordering changes (Daniel)
don't fetch config if !CONFIG_FB
v8: use proper height in get_plane_config (Chris)
v9: fix CONFIG_FB check for modular configs (Jani)
v10: add comment about stolen allocation stomping
v11: drop hw state readout hunk (Daniel)
Signed-off-by: Jesse B
This should allow BIOS fb inheritance to work on ILK+ machines too.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 92 ++
1 file changed, 92 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915
ild out fbdev structs
v2: use BIOS connector config unconditionally if possible (Daniel)
check for crtc cloning and reject (Daniel)
fix up comments (Daniel)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 10 ++--
drivers/gpu/drm/i915/intel_fbdev.c |
nditional (Daniel)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_drv.h |1 +
drivers/gpu/drm/i915/intel_fbdev.c | 154 +---
2 files changed, 146 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu
We want to do this early on before we try to fetch the plane config,
which depends on some of the pipe config state.
v2: split back out from get_plane_config change (Daniel)
update for recent locking & reset changes (Jesse)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/
From: Daniel Vetter
We want to reuse this in the fbdev initial config code independently
from any fastboot hacks. So allow a bit more flexibility.
v2: Forgot to git add ...
v3: make non-static (Jesse)
Signed-off-by: Daniel Vetter
---
drivers/gpu/drm/i915/intel_display.c | 31 ++-
Just like we have for connector type etc.
v2: drop static array (Chris)
v3: add kdoc (Daniel)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/drm_crtc.c | 23 +++
include/drm/drm_crtc.h |1 +
2 files changed, 24 insertions(+)
diff --git a/drivers/gpu/drm
locking is too much a mess. With ppgtt we even need
> it to take a look at the global gtt offset of pinned objects, since
> the vma list might chance from underneath us. At least with the
> current global gtt lookup functions. Reported by Mika.
>
> Cc: Mika Kuoppala
> Cc: Jesse Barne
ebuffers and kref about underflows.
>
> v2: Kill intel_framebuffer_fini - no longer needed now that we
> refcount all fbs properly and only confusing.
>
> Cc: Jesse Barnes
> Signed-off-by: Daniel Vetter
> ---
> drivers/gpu/drm/i915/intel_display.c | 11 +++
>
Just like we have for connector type etc.
v2: drop static array (Chris)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/drm_crtc.c | 16
include/drm/drm_crtc.h |1 +
2 files changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm
Can be expanded up on to include all sorts of things (HDMI infoframe
data, more DP status, etc). Should be useful for bug reports to get a
baseline on the display config and info.
v2: use seq_putc (Rodrigo)
describe mode field names (Rodrigo)
Reviewed-by: Rodrigo Vivi
Signed-off-by: Jesse
For use by get_plane_config.
v2: cleanup tile_height bits (Chris)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 15 +++
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915
This should allow BIOS fb inheritance to work on ILK+ machines too.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 92 ++
1 file changed, 92 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915
Allocate this struct instead, so we can re-use another allocated
elsewhere if needed.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c |4 ++--
drivers/gpu/drm/i915/intel_drv.h |2 +-
drivers/gpu/drm/i915/intel_fbdev.c | 27 +++
3
.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_fbdev.c | 91
1 file changed, 91 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c
b/drivers/gpu/drm/i915/intel_fbdev.c
index fb07ba6..8ce3405 100644
--- a/drivers/gpu/drm/i915
x up size calculation for proposed fbs (Chris)
go back to two pass pipe fb assignment (Chris)
add warning for active pipes w/o fbs (Chris)
clean up num_pipes checks in fbdev_init and fbdev_restore_mode (Chris)
move i915.fastboot into fbdev_init (Chris)
Signed-off-by: Jesse Barnes
---
driver
: split out init ordering changes (Daniel)
don't fetch config if !CONFIG_FB
v8: use proper height in get_plane_config (Chris)
v9: fix CONFIG_FB check for modular configs (Jani)
v10: add comment about stolen allocation stomping
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/i915_
On Wed, 5 Feb 2014 18:14:15 +
Chris Wilson wrote:
> On Wed, Feb 05, 2014 at 05:30:48PM +0000, Jesse Barnes wrote:
> > +static bool intel_fbdev_init_bios(struct drm_device *dev,
> > +struct intel_fbdev *ifbdev)
> > +{
> > + struct i
Allocate this struct instead, so we can re-use another allocated
elsewhere if needed.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c |4 ++--
drivers/gpu/drm/i915/intel_drv.h |2 +-
drivers/gpu/drm/i915/intel_fbdev.c | 27 +++
3
For use by get_plane_config.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 15 +++
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915/intel_display.c
index 4d4a0d9..e2f1db6 100644
This should allow BIOS fb inheritance to work on ILK+ machines too.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_display.c | 92 ++
1 file changed, 92 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915
On Wed, 5 Feb 2014 16:40:41 +
Chris Wilson wrote:
> After finding the guilty batch and request, we can use it to find the
> process that submitted the batch and then add the culprit into the error
> state.
>
> This is a slightly different approach from Ben's in that instead of
> adding the
buffer if preallocated (Chris)
alloc ifbdev up front and pass to init_bios (Chris)
check for bad ifbdev in restore_mode too (Chris)
v9: fix up !fastboot bpp setting (Jesse)
fix up !fastboot helper alloc (Jesse)
make sure BIOS fb is sufficient for biggest active pipe (Jesse)
Signed-off-
.
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/intel_fbdev.c | 91
1 file changed, 91 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c
b/drivers/gpu/drm/i915/intel_fbdev.c
index fb07ba6..8ce3405 100644
--- a/drivers/gpu/drm/i915
: split out init ordering changes (Daniel)
don't fetch config if !CONFIG_FB
v8: use proper height in get_plane_config (Chris)
v9: fix CONFIG_FB check for modular configs (Jani)
Signed-off-by: Jesse Barnes
---
drivers/gpu/drm/i915/i915_drv.h |3 +
drivers/gpu/drm/i915/intel_disp
On Wed, 5 Feb 2014 16:15:02 +0100
Daniel Vetter wrote:
> On Wed, Feb 05, 2014 at 02:59:08PM +0000, Jesse Barnes wrote:
> > On Tue, 4 Feb 2014 12:18:55 +
> > Ben Widawsky wrote:
> >
> > > We get a large number of bugs which have a, "hey I have that too&qu
On Tue, 4 Feb 2014 11:56:47 +0100
Daniel Vetter wrote:
> On Mon, Feb 03, 2014 at 03:28:37PM +, Tvrtko Ursulin wrote:
> >
> > On 01/29/2014 08:34 PM, Daniel Vetter wrote:
> > >Actually I've found something else to complain about:
> > >
> > >On Tue, Jan 28, 2014 at 2:16 PM, Chris Wilson
> >
PIPE_HOTPLUG_INTERRUPT_ENABLE |
> - PIPE_HOTPLUG_TV_INTERRUPT_ENABLE);
> + PIPE_HOTPLUG_INTERRUPT_STATUS |
> + PIPE_HOTPLUG_TV_INTERRUPT_STATUS);
>
5)
> +#define PLANEB_FLIP_DONE_INT_EN(1<<24)
> #define PIPEA_LINE_COMPARE_INT_EN (1<<21)
> #define PIPEA_HLINE_INT_EN (1<<20)
> #define PIPEA_VBLANK_INT_EN (1<<19)
> -#define SPRITEB_FLIPDONE_INT_EN
> - spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
> + spin_unlock(&dev_priv->irq_lock);
>
> for_each_pipe(pipe) {
> if (pipe_stats[pipe] & PIPE_START_VBLANK_INTERRUPT_STATUS)
I guess we don't have to worry about new interr
e(pipe));
> - }
> + valleyview_pipestat_irq_handler(dev, iir);
>
> /* Consume port. Then clear IIR or we'll miss events */
> if (iir & I915_DISPLAY_PORT_INTERRUPT) {
> @@ -1543,8 +1553,6 @@ static irqreturn_t valleyview_irq_handler(int irq, void
32 imr;
>
> spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> i915_disable_pipestat(dev_priv, pipe,
> PIPE_START_VBLANK_INTERRUPT_ENABLE);
> - imr = I915_READ(VLV_IMR);
> - if (pipe == PIPE_A)
s will actually look
at) we can probably avoid some of the "me too" action we see on general
GPU hangs. Having PID, comm, and some sort of hang signature are all
good steps in that direction imo.
Acked-by: Jesse Barnes
Jesse
__
On Sat, 14 Dec 2013 12:36:30 +0100
Daniel Vetter wrote:
> On Sat, Dec 14, 2013 at 12:13:45PM +0100, Daniel Vetter wrote:
> > On Thu, Dec 12, 2013 at 12:41:54PM -0800, Jesse Barnes wrote:
> > > + ifbdev->helper.funcs->initial_config = intel_fb_initial_config;
>
On Thu, 30 Jan 2014 19:58:43 -0200
Rodrigo Vivi wrote:
> > + seq_printf(m, ", mode:\n");
> > + seq_printf(m, "\t\t%d:\"%s\" %d %d %d %d %d %d %d
> > %d %d %d 0x%x 0x%x\n",
> > + mode->base.id, mode->name,
> > +
intel_dp,
> diff --git a/drivers/gpu/drm/i915/intel_drv.h
> b/drivers/gpu/drm/i915/intel_drv.h
> index 46aea6c..9c5e984 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -626,6 +626,7 @@ void intel_ddi_get_config(struc
t; }
>
> sg = st->sgl;
> - sg->offset = offset;
> + sg->offset = 0;
> sg->length = size;
>
> sg_dma_address(sg) = (dma_addr_t)dev_priv->mm.stolen_base + offset;
Let's get this upstream and cc stable.
Reviewed-by: Jesse Barnes
--
J
801 - 900 of 3350 matches
Mail list logo