<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/drivers/gpu/drm/i915, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2015-08-19T08:13:59+00:00</updated>
<entry>
<title>drm/i915: Avoid TP3 on CHV</title>
<updated>2015-08-19T08:13:59+00:00</updated>
<author>
<name>Thulasimani,Sivakumar</name>
<email>sivakumar.thulasimani@intel.com</email>
</author>
<published>2015-08-18T10:00:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=ed63baaf849e91c84ac3e042b1fd6a0af07c16f3'/>
<id>urn:sha1:ed63baaf849e91c84ac3e042b1fd6a0af07c16f3</id>
<content type='text'>
This patch removes TP3 support on CHV since there is no support
for HBR2 on this platform.

v2: rename the function to indicate it checks source rates (Jani)
v3: update comment to indicate TP3 dependency on HBR2 supported
    hardware (Jani)

Cc: stable@vger.kernel.org # v4.1+
Reviewed-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Signed-off-by: Sivakumar Thulasimani &lt;sivakumar.thulasimani@intel.com&gt;
[Jani: fixed a couple of checkpatch warnings.]
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: remove HBR2 from chv supported list</title>
<updated>2015-08-19T08:06:26+00:00</updated>
<author>
<name>Thulasimani,Sivakumar</name>
<email>sivakumar.thulasimani@intel.com</email>
</author>
<published>2015-08-18T05:37:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=5e86dfe39f54ab13fd8079ac3d6cb100318909a3'/>
<id>urn:sha1:5e86dfe39f54ab13fd8079ac3d6cb100318909a3</id>
<content type='text'>
This patch removes 5.4Gbps from supported link rate for CHV since
it is not supported in it.

v2: change the ordering for better readability (Ville)

Cc: stable@vger.kernel.org # v4.1+
Reviewed-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Signed-off-by: Sivakumar Thulasimani &lt;sivakumar.thulasimani@intel.com&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>Revert "drm/i915: Add eDP intermediate frequencies for CHV"</title>
<updated>2015-08-19T08:04:35+00:00</updated>
<author>
<name>Thulasimani,Sivakumar</name>
<email>sivakumar.thulasimani@intel.com</email>
</author>
<published>2015-08-18T05:37:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=33747cc5ec036036ae3088d02982d3571c7d8500'/>
<id>urn:sha1:33747cc5ec036036ae3088d02982d3571c7d8500</id>
<content type='text'>
This reverts
commit fe51bfb95c996733150c44d21e1c9f4b6322a326.
Author: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Date:   Thu Mar 12 17:10:38 2015 +0200

CHV does not support intermediate frequencies so reverting the
patch that added it in the first place

Cc: stable@vger.kernel.org # v4.1+
Reviewed-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Signed-off-by: Sivakumar Thulasimani &lt;sivakumar.thulasimani@intel.com&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>Revert "drm/i915: Allow parsing of variable size child device entries from VBT"</title>
<updated>2015-08-19T06:33:17+00:00</updated>
<author>
<name>Jani Nikula</name>
<email>jani.nikula@intel.com</email>
</author>
<published>2015-08-18T09:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=bf1a5fd2eccf20b19941b8461ce9c90899054bd5'/>
<id>urn:sha1:bf1a5fd2eccf20b19941b8461ce9c90899054bd5</id>
<content type='text'>
This reverts

commit 047fe6e6db9161e69271f56daaafdaf2add023b1
Author: David Weinehall &lt;david.weinehall@linux.intel.com&gt;
Date:   Tue Aug 4 16:55:52 2015 +0300

    drm/i915: Allow parsing of variable size child device entries from VBT

That commit is not valid for v4.2, however it will be valid for v4.3. It
was simply queued too early.

The referenced regressing commit is just fine until the size of struct
common_child_dev_config changes, and that won't happen until
v4.3. Indeed, the expected size checks here rely on the increased size
of the struct, breaking new platforms.

Fixes: 047fe6e6db91 ("drm/i915: Allow parsing of variable size child device entries from VBT")
Cc: Daniel Vetter &lt;daniel@ffwll.ch&gt;
Cc: David Weinehall &lt;david.weinehall@linux.intel.com&gt;
Cc: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Reviewed-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Flag the execlists context object as dirty after every use</title>
<updated>2015-08-17T07:12:09+00:00</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2015-08-14T11:59:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=903ecd0bb970438c3a60c2c33ec9032d6443bf67'/>
<id>urn:sha1:903ecd0bb970438c3a60c2c33ec9032d6443bf67</id>
<content type='text'>
Everytime we use the logical context with execlists it becomes dirty (as
the hardware will write the new register values afterwards, as well as
the GPU state that will be used). We need to then flag the context as
dirty everytime since after a swap-out/swap-in cycle the dirty flag will
be cleared, and a further swap-out cycle will then loose the most recent
GPU state.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: stable@vger.kernel.org
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Commit planes on each crtc separately.</title>
<updated>2015-08-13T09:09:18+00:00</updated>
<author>
<name>Maarten Lankhorst</name>
<email>maarten.lankhorst@linux.intel.com</email>
</author>
<published>2015-08-11T10:31:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=d2944cf21305c754fa8b2d6c1eea05ad5dad7944'/>
<id>urn:sha1:d2944cf21305c754fa8b2d6c1eea05ad5dad7944</id>
<content type='text'>
This patch is based on the upstream commit 5ac1c4bcf073ad and amended
for v4.2 to make sure it works as intended.

Repeated calls to begin_crtc_commit can cause warnings like this:
[  169.127746] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:616
[  169.127835] in_atomic(): 0, irqs_disabled(): 1, pid: 1947, name: kms_flip
[  169.127840] 3 locks held by kms_flip/1947:
[  169.127843]  #0:  (&amp;dev-&gt;mode_config.mutex){+.+.+.}, at: [&lt;ffffffff814774bc&gt;] __drm_modeset_lock_all+0x9c/0x130
[  169.127860]  #1:  (crtc_ww_class_acquire){+.+.+.}, at: [&lt;ffffffff814774cd&gt;] __drm_modeset_lock_all+0xad/0x130
[  169.127870]  #2:  (crtc_ww_class_mutex){+.+.+.}, at: [&lt;ffffffff81477178&gt;] drm_modeset_lock+0x38/0x110
[  169.127879] irq event stamp: 665690
[  169.127882] hardirqs last  enabled at (665689): [&lt;ffffffff817ffdb5&gt;] _raw_spin_unlock_irqrestore+0x55/0x70
[  169.127889] hardirqs last disabled at (665690): [&lt;ffffffffc0197a23&gt;] intel_pipe_update_start+0x113/0x5c0 [i915]
[  169.127936] softirqs last  enabled at (665470): [&lt;ffffffff8108a766&gt;] __do_softirq+0x236/0x650
[  169.127942] softirqs last disabled at (665465): [&lt;ffffffff8108ae75&gt;] irq_exit+0xc5/0xd0
[  169.127951] CPU: 1 PID: 1947 Comm: kms_flip Not tainted 4.1.0-rc4-patser+ #4039
[  169.127954] Hardware name: LENOVO 2349AV8/2349AV8, BIOS G1ETA5WW (2.65 ) 04/15/2014
[  169.127957]  ffff8800c49036f0 ffff8800cde5fa28 ffffffff817f6907 0000000080000001
[  169.127964]  0000000000000000 ffff8800cde5fa58 ffffffff810aebed 0000000000000046
[  169.127970]  ffffffff81c5d518 0000000000000268 0000000000000000 ffff8800cde5fa88
[  169.127981] Call Trace:
[  169.127992]  [&lt;ffffffff817f6907&gt;] dump_stack+0x4f/0x7b
[  169.128001]  [&lt;ffffffff810aebed&gt;] ___might_sleep+0x16d/0x270
[  169.128008]  [&lt;ffffffff810aed38&gt;] __might_sleep+0x48/0x90
[  169.128017]  [&lt;ffffffff817fc359&gt;] mutex_lock_nested+0x29/0x410
[  169.128073]  [&lt;ffffffffc01635f0&gt;] ? vgpu_write64+0x220/0x220 [i915]
[  169.128138]  [&lt;ffffffffc017fddf&gt;] ? ironlake_update_primary_plane+0x2ff/0x410 [i915]
[  169.128198]  [&lt;ffffffffc0190e75&gt;] intel_frontbuffer_flush+0x25/0x70 [i915]
[  169.128253]  [&lt;ffffffffc01831ac&gt;] intel_finish_crtc_commit+0x4c/0x180 [i915]
[  169.128279]  [&lt;ffffffffc00784ac&gt;] drm_atomic_helper_commit_planes+0x12c/0x240 [drm_kms_helper]
[  169.128338]  [&lt;ffffffffc0184264&gt;] __intel_set_mode+0x684/0x830 [i915]
[  169.128378]  [&lt;ffffffffc018a84a&gt;] intel_crtc_set_config+0x49a/0x620 [i915]
[  169.128385]  [&lt;ffffffff817fdd39&gt;] ? mutex_unlock+0x9/0x10
[  169.128391]  [&lt;ffffffff81467b69&gt;] drm_mode_set_config_internal+0x69/0x120
[  169.128398]  [&lt;ffffffff8119b547&gt;] ? might_fault+0x57/0xb0
[  169.128403]  [&lt;ffffffff8146bf93&gt;] drm_mode_setcrtc+0x253/0x620
[  169.128409]  [&lt;ffffffff8145c600&gt;] drm_ioctl+0x1a0/0x6a0
[  169.128415]  [&lt;ffffffff810b3b41&gt;] ? get_parent_ip+0x11/0x50
[  169.128424]  [&lt;ffffffff811e9ab8&gt;] do_vfs_ioctl+0x2f8/0x530
[  169.128429]  [&lt;ffffffff810d0fcd&gt;] ? trace_hardirqs_on+0xd/0x10
[  169.128435]  [&lt;ffffffff812e7676&gt;] ? selinux_file_ioctl+0x56/0x100
[  169.128439]  [&lt;ffffffff811e9d71&gt;] SyS_ioctl+0x81/0xa0
[  169.128445]  [&lt;ffffffff81800697&gt;] system_call_fastpath+0x12/0x6f

Solve it by using the newly introduced drm_atomic_helper_commit_planes_on_crtc.

The problem here was that the drm_atomic_helper_commit_planes() helper
we were using was basically designed to do

    begin_crtc_commit(crtc #1)
    begin_crtc_commit(crtc #2)
    ...
    commit all planes
    finish_crtc_commit(crtc #1)
    finish_crtc_commit(crtc #2)

The problem here is that since our hardware relies on vblank evasion,
our CRTC 'begin' function waits until we're out of the danger zone in
which register writes might wind up straddling the vblank, then disables
interrupts; our 'finish' function re-enables interrupts after the
registers have been written.  The expectation is that the operations between
'begin' and 'end' must be performed without sleeping (since interrupts
are disabled) and should happen as quickly as possible.  By clumping all
of the 'begin' calls together, we introducing a couple problems:
 * Subsequent 'begin' invocations might sleep (which is illegal)
 * The first 'begin' ensured that we were far enough from the vblank that
   we could write our registers safely and ensure they all fell within
   the same frame.  Adding extra delay waiting for subsequent CRTC's
   wasn't accounted for and could put us back into the 'danger zone' for
   CRTC #1.

This commit solves the problem by using a new helper that allows an
order of operations like:

   for each crtc {
        begin_crtc_commit(crtc)  // sleep (maybe), then disable interrupts
        commit planes for this specific CRTC
        end_crtc_commit(crtc)    // reenable interrupts
   }

so that sleeps will only be performed while interrupts are enabled and
we can be sure that registers for a CRTC will be written immediately
once we know we're in the safe zone.

The crtc-&gt;config-&gt;base.crtc update may seem unrelated, but the helper
will use it to obtain the crtc for the state. Without the update it
will dereference NULL and crash.

Changes since v1:
- Use Matt Roper's commit message.

Signed-off-by: Maarten Lankhorst &lt;maarten.lankhorst@linux.intel.com&gt;
Reviewed-by: Matt Roper &lt;matthew.d.roper@intel.com&gt;
References: https://bugs.freedesktop.org/show_bug.cgi?id=90398
Reviewed-by: Ander Conselvan de Oliveira &lt;conselvan2@gmail.com&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: calculate primary visibility changes instead of calling from set_config</title>
<updated>2015-08-13T09:08:47+00:00</updated>
<author>
<name>Maarten Lankhorst</name>
<email>maarten.lankhorst@linux.intel.com</email>
</author>
<published>2015-08-11T10:31:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=f0fdc55db0c6f761f89c6e0c675af2dbd4e7aab4'/>
<id>urn:sha1:f0fdc55db0c6f761f89c6e0c675af2dbd4e7aab4</id>
<content type='text'>
This should be much cleaner, with the same effects.

(cherry picked for v4.2 from commit fb9d6cf8c29bfcb0b3c602f7ded87f128d730382)
Signed-off-by: Maarten Lankhorst &lt;maarten.lankhorst@linux.intel.com&gt;
Reviewed-by: Matt Roper &lt;matthew.d.roper@intel.com&gt;
References: https://bugs.freedesktop.org/show_bug.cgi?id=90398
Reviewed-by: Ander Conselvan de Oliveira &lt;conselvan2@gmail.com&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Only dither on 6bpc panels</title>
<updated>2015-08-13T08:31:56+00:00</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2015-08-12T09:43:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e8fa4270536de2e5e8205fb2b90bb26afc471729'/>
<id>urn:sha1:e8fa4270536de2e5e8205fb2b90bb26afc471729</id>
<content type='text'>
In

commit d328c9d78d64ca11e744fe227096990430a88477
Author: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Date:   Fri Apr 10 16:22:37 2015 +0200

    drm/i915: Select starting pipe bpp irrespective or the primary plane

we started to select the pipe bpp from sink capabilities and not from
the primary framebuffer - that one might change (and we don't want to
incur a modeset) and sprites might contain higher bpp content too.

We also selected dithering on a 8 bpc screen displaying a 24bpp rgb
primary, because pipe_bpp is 24 for such a typical 8 bpc sink, but since
the commit mentioned above, base_bpp is always the absolute maximum
supported by the hardware, e.g., 36 bpp on my Ironlake chip. Iow. the
only way to not get dithering would have been to connect a deep color 12
bpc display, so pipe_bpp == 36 == base_bpp.

Hence only enable dithering on 6bpc screens where we difinitely and
always want it.

Cc: Mario Kleiner &lt;mario.kleiner.de@gmail.com&gt;
Reported-by: Mario Kleiner &lt;mario.kleiner.de@gmail.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
Reviewed-and-tested-by: Mario Kleiner &lt;mario.kleiner.de@gmail.com&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'drm-intel-fixes-2015-08-07' of git://anongit.freedesktop.org/drm-intel</title>
<updated>2015-08-08T01:18:14+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-08-08T01:18:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=981dae742bc67ccd078bab0affdfb5eb78fc5697'/>
<id>urn:sha1:981dae742bc67ccd078bab0affdfb5eb78fc5697</id>
<content type='text'>
Pull drm fixes from Daniel Vetter:
 "One i915 regression fix and a drm core one since Dave's not around,
  both introduced in 4.2 so not cc: stable.

  The fix for the warning Ted reported isn't in here yet since he didn't
  yet supply a tested-by and I can't repro this one myself (it's in
  fixup code that needs firmware doing something i915 wouldn't do)"

* tag 'drm-intel-fixes-2015-08-07' of git://anongit.freedesktop.org/drm-intel:
  drm/vblank: Use u32 consistently for vblank counters
  drm/i915: Allow parsing of variable size child device entries from VBT
</content>
</entry>
<entry>
<title>drm/i915: Allow parsing of variable size child device entries from VBT</title>
<updated>2015-08-06T15:28:26+00:00</updated>
<author>
<name>David Weinehall</name>
<email>david.weinehall@linux.intel.com</email>
</author>
<published>2015-08-04T13:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=047fe6e6db9161e69271f56daaafdaf2add023b1'/>
<id>urn:sha1:047fe6e6db9161e69271f56daaafdaf2add023b1</id>
<content type='text'>
VBT version 196 increased the size of common_child_dev_config. The parser
code assumed that the size of this structure would not change.

The modified code now copies the amount needed based on the VBT version,
and emits a debug message if the VBT version is unknown (too new);
since the struct config block won't shrink in newer versions it should
be harmless to copy the maximum known size in such cases, so that's
what we do, but emitting the warning is probably sensible anyway.

In the longer run it might make sense to modify the parser code to
use a version/feature mapping, rather than hardcoding things like this,
but for now the variants are fairly managable.

This fixes a regression introduced in

commit 90e4f1592bb6e82f6690f0e05a8aadcf04d7bce7
Author: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Date:   Wed Mar 25 18:45:58 2015 +0200

    drm/i915: Fix the VBT child device parsing for BSW

since we're hitting a DRM_ERROR on older platforms with this.

v2: Stricter size checks

Signed-off-by: David Weinehall &lt;david.weinehall@linux.intel.com&gt;
[danvet: Fixup format string.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
</feed>
