New issue
Advanced search Search tips

Issue 783394 link

Starred by 2 users

Issue metadata

Status: Unconfirmed
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature



Sign in to add a comment

CNL add i915 support on v4.14

Reported by nathan.d...@intel.com, Nov 9 2017

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36
Platform: CNL

Steps to reproduce the problem:
1. Backport i915 patches to v4.14 for CNL
2. 
3. 

What is the expected behavior?
CNL should boot and browse to graphics

What went wrong?
CNL wouldn't boot to graphics with v4.14

Did this work before? N/A 

Chrome version: 62.0.3202.89  Channel: stable
OS Version: 
Flash Version:
 
Showing comments 62 - 161 of 161 Older
Project Member

Comment 62 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/24642133533b7fcef9bd756f67b61aae4e60e3f0

commit 24642133533b7fcef9bd756f67b61aae4e60e3f0
Author: fred gao <fred.gao@intel.com>
Date: Wed Dec 20 20:51:15 2017

UPSTREAM: drm/i915/gvt: Refine error handling in dispatch_workload

When an error occurs in dispatch_workload, this patch is to do the
proper cleanup and rollback to the original states before the workload
is abandoned.

v2:
- split the mixed several error paths for better review. (Zhenyu)

v3:
- original PTR_ERR(cs) is good and code cleanup. (Zhenyu)

v4:
- reuse the existing i915_add_request for error handling. (Zhenyu)

v5:
- remove the duplicate error handling release_shadow_wa_ctx and
  move the engine->context_unpin upper. (Zhenyu)

v6:
- keep the old label "out". (Zhenyu)

Signed-off-by: fred gao <fred.gao@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit  0f43702a334b2848ae2e942dbc0677ddc4566b57  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I0874153c2fd1c14e934ed5af772d51594252ae9f

[modify] https://crrev.com/24642133533b7fcef9bd756f67b61aae4e60e3f0/drivers/gpu/drm/i915/gvt/scheduler.c

Project Member

Comment 63 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b11caf9ba94e40e1ee881c09ddc446d0b2c7b76f

commit b11caf9ba94e40e1ee881c09ddc446d0b2c7b76f
Author: fred gao <fred.gao@intel.com>
Date: Wed Dec 20 20:51:19 2017

UPSTREAM: drm/i915/gvt: Refine error handling for perform_bb_shadow

fix the wrong return type and return error once the unknown
command is scanned.

v2:
- separate this error handle from healthy rating code. (Zhenyu)

Signed-off-by: fred gao <fred.gao@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit  1e3197d6ad73ef34b71d96cfb37ddf0b7bddac0e  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I8605e2da5c9a2516ade3cd63867c89ca45e4f554

[modify] https://crrev.com/b11caf9ba94e40e1ee881c09ddc446d0b2c7b76f/drivers/gpu/drm/i915/gvt/cmd_parser.c

Project Member

Comment 64 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ff9c8f92cd4defb2a3bc08c002d17d512cbc1048

commit ff9c8f92cd4defb2a3bc08c002d17d512cbc1048
Author: fred gao <fred.gao@intel.com>
Date: Wed Dec 20 20:51:22 2017

UPSTREAM: drm/i915/gvt: Refine error handling for intel_vgpu_pin_mm

When it is failed in shadow_mm, the pin_count should rollback
to the original states before return.

v2:
- split the mixed several error paths for better review. (Zhenyu)

v3:
  increase the pincount after shadow success. (Zhenyu)

Signed-off-by: fred gao <fred.gao@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit  46b441efa374cf1581c267a16089c205f2fc0ded  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I9d4892548350d4690d550f68e73cbcba43834c09

[modify] https://crrev.com/ff9c8f92cd4defb2a3bc08c002d17d512cbc1048/drivers/gpu/drm/i915/gvt/gtt.c

Project Member

Comment 65 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f8534cd88c38c468519da0ffca93c78a85492b1f

commit f8534cd88c38c468519da0ffca93c78a85492b1f
Author: Changbin Du <changbin.du@intel.com>
Date: Wed Dec 20 20:51:25 2017

UPSTREAM: drm/i915/gvt: Add support for PCIe extended configuration space

IGD is PCIe device and has extended configuration space. Checking
the binary dump, we can see we have Caps located out of PCI compatible
Configuration Space range.

0x000: 86 80 12 19 17 04 10 00 06 00 00 03 00 00 00 00
0x010: 04 00 00 10 08 00 00 00 0c 00 00 00 08 00 00 00
0x020: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b9 06
0x030: 00 f8 ff ff 40 00 00 00 00 00 00 00 0b 01 00 00
0x040: 09 70 0c 01 71 26 01 62 c8 00 04 84 00 00 00 00
0x050: c1 00 00 00 39 00 00 00 00 00 00 00 01 00 00 a2
0x060: 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
0x070: 10 ac 92 00 00 80 00 10 00 00 00 00 00 00 00 00
0x080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0a0: 00 00 00 00 00 00 00 00 00 00 00 00 05 d0 01 00
0x0b0: 18 00 e0 fe 00 00 00 00 00 00 00 00 00 00 00 00
0x0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0d0: 01 00 22 00 00 80 00 00 00 00 00 00 00 00 00 00
0x0e0: 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00
0x0f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x100: 1b 00 01 20 02 14 00 00 00 00 00 00 00 00 00 00
...

Currently, we only emulate the PCI compatible Configuration Space.
This is okay if we attach vGPU to PCI bus. But when we attach to
a PCI Express bus (when Qemu emulates a Intel Q35 chipset which has
PCIe slot), it will not work. Extended Configuration Space is required
for a PCIe device.

This patch extended the virtual configuration space from 256 bytes
to 4KB bytes. So we are to be a *real* PCIe device. And for the
Extended CapList we keep same to physical GPU.

Cc: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Changbin Du <changbin.du@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit  02d578e5edd980eac3fbed15db4d9e5665f22089  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iad918f0316356b12b7789d0b3cd009e9d230a223

[modify] https://crrev.com/f8534cd88c38c468519da0ffca93c78a85492b1f/drivers/gpu/drm/i915/gvt/kvmgt.c
[modify] https://crrev.com/f8534cd88c38c468519da0ffca93c78a85492b1f/drivers/gpu/drm/i915/gvt/gvt.c
[modify] https://crrev.com/f8534cd88c38c468519da0ffca93c78a85492b1f/drivers/gpu/drm/i915/gvt/cfg_space.c
[modify] https://crrev.com/f8534cd88c38c468519da0ffca93c78a85492b1f/drivers/gpu/drm/i915/gvt/gvt.h

Project Member

Comment 66 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a0825191170f9ec92c030c4682b1d5b6b0c99071

commit a0825191170f9ec92c030c4682b1d5b6b0c99071
Author: Michel Thierry <michel.thierry@intel.com>
Date: Wed Dec 20 20:51:29 2017

UPSTREAM: drm/i915: Add a default case in gen7 hwsp switch-case

Gen7 won't get any new engines, and we already added VCS2 there to just
silence gcc's not handled in switch warnings.

Use a default case instead, otherwise we will need to keep adding extra
cases if changes happen in the future.

v2: Since reaching the default case is impossible, use GEM_BUG_ON (Chris).

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170830180115.907-1-michel.thierry@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  a2d3d2655ea6d09edfcc6d9b11fb58729c8d5b95  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I773ab6614dd1da0d59b2c23a5f5d38e40c1a8de5

[modify] https://crrev.com/a0825191170f9ec92c030c4682b1d5b6b0c99071/drivers/gpu/drm/i915/intel_ringbuffer.c

Project Member

Comment 67 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/68a829454da32eeca48d78507403cde98f3238dc

commit 68a829454da32eeca48d78507403cde98f3238dc
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date: Wed Dec 20 20:51:33 2017

UPSTREAM: drm/i915: Make PAT macros more robust

Macro params shall be wrapped into () to avoid unexpected results.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170908161130.22424-1-michal.wajdeczko@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  1790625b1deaafb564def63a3a070602656134a1  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ibb778997d382c2008f95b762116537285b1d5f7f

[modify] https://crrev.com/68a829454da32eeca48d78507403cde98f3238dc/drivers/gpu/drm/i915/i915_gem_gtt.h
[modify] https://crrev.com/68a829454da32eeca48d78507403cde98f3238dc/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 68 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/aea43e6192b7b964a7238e6582a020266a84c2cb

commit aea43e6192b7b964a7238e6582a020266a84c2cb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:51:37 2017

UPSTREAM: drm/i915: Only initialize partially filled pagetables

If we know that we will completely fill a pagetable (i.e. we are
inserting a complete set of 512 pages), we can skip prefilling that PT
with scratch entries. If we have to abort the insertion prior to writing
the real entries, we will teardown the pagetable and remove it from the
page directory (so that we will restart the allocation next time).

We could do similar tricks for the PD and PDP, but the likelihood of a
single insertion covering the entire 512 entries diminishes, as do the
cycle savings. The saving are even greater (relatively) when we are
preallocating page tables for huge pages, as then we never need to fill
the page table.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170908181622.17791-1-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
(cherry picked from commit  14826673247eaf36b16fd821fac27efa663f3fa6  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I7355889a7115fd5bb3031186ffe439fff15f1ad4

[modify] https://crrev.com/aea43e6192b7b964a7238e6582a020266a84c2cb/drivers/gpu/drm/i915/i915_gem_gtt.c

Project Member

Comment 69 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/6b36f14d19de9a8dd23c9b25836626cce708a1e1

commit 6b36f14d19de9a8dd23c9b25836626cce708a1e1
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:51:41 2017

UPSTREAM: drm/i915/psr: Avoid any PSR stuff on platforms without support.

We really don't want to setup vfuncs and lock mutexes on
platforms that has no support to PSR.

Also we know what platforms they are so let's do it quietly.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-2-rodrigo.vivi@intel.com
(cherry picked from commit  0f328da611953d078e86ea250eaeeb840dd7f5d0  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ie4be2e06261045c088a199c54e50d5b07d29e712

[modify] https://crrev.com/6b36f14d19de9a8dd23c9b25836626cce708a1e1/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 70 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/2e6ce3058a7fc3a317c032d245b45f909bef02cf

commit 2e6ce3058a7fc3a317c032d245b45f909bef02cf
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:51:45 2017

UPSTREAM: drm/i915/psr: vfunc for disabling source.

VLV/CHV has a total different PSR implementation than the
other platforms, so let's start moving that to vfuncs.
Let's start with disable_src one.

v2: Rebased on top of commit d2419ffc10e4 ("drm/i915: Plumb
    crtc_state to PSR enable/disable")

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-3-rodrigo.vivi@intel.com
(cherry picked from commit  424644c2504299e00b450328be9e3c5a12e9c9f9  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iaaa7b7f8d310c3c01bf434e79dcc9ee62776204e

[modify] https://crrev.com/2e6ce3058a7fc3a317c032d245b45f909bef02cf/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/2e6ce3058a7fc3a317c032d245b45f909bef02cf/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 71 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/701a3cb18b611f0f7d94c9956502738d65b77ae5

commit 701a3cb18b611f0f7d94c9956502738d65b77ae5
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:51:49 2017

UPSTREAM: drm/i915/psr: hsw_psr_activate.

On HSW+ the real activate of PSR is decided by the source
after certain amount of configured idle frames.

However for the driver perspective where we track psr.active
variable this function here is the actual activate one. So
let's rename it before moving to vfunc with that.

v2: Fix typo on commit message (DK).

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-4-rodrigo.vivi@intel.com
(cherry picked from commit  ed63d24b4d19aee649fbec28b7c11e887eff6861  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I51cacfafc2a95fb96be517a1f95ec88f0ac59ad2

[modify] https://crrev.com/701a3cb18b611f0f7d94c9956502738d65b77ae5/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 72 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a53c91aefaf7282f3c583be9ab19957c38d91e8f

commit a53c91aefaf7282f3c583be9ab19957c38d91e8f
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:51:53 2017

UPSTREAM: drm/i915/psr: Add activate vfunc.

Continue on VLV PSR split with vfunc, let's move activate
function there.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-5-rodrigo.vivi@intel.com
(cherry picked from commit  e3702ac9a2c128690b2219eb1282367584a3b7bb  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ib6c3cf00fd3c0898af5f9ba1a1bf6708a62d07fa

[modify] https://crrev.com/a53c91aefaf7282f3c583be9ab19957c38d91e8f/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/a53c91aefaf7282f3c583be9ab19957c38d91e8f/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 73 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/620ca9c5c99732b64e7e05e7e7f82784c24388b0

commit 620ca9c5c99732b64e7e05e7e7f82784c24388b0
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:51:56 2017

UPSTREAM: drm/i915/psr: Unify VSC setup functions.

VSC package is decided per eDP spec for psr1 or psr2,
and not per platform, so let's unify it and kill "skl"
func.

v2: Rebased on top of commit d2419ffc10e4 ("drm/i915: Plumb
    crtc_state to PSR enable/disable")

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-6-rodrigo.vivi@intel.com
(cherry picked from commit  2ce4df87f133913dff26ae0f578d6b46f01fa6d3  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I3dbde1ebcc65cd6a1a10b43ce1500d8b316aad33

[modify] https://crrev.com/620ca9c5c99732b64e7e05e7e7f82784c24388b0/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 74 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1b0fced070994b03454723d1ee405809aff52629

commit 1b0fced070994b03454723d1ee405809aff52629
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:52:00 2017

UPSTREAM: drm/i915/psr: Re-create a hsw_psr_enable_source.

This sequence is part of enable source anyways, but they
only need to be executed once and not on every activation,
So let's re-create hsw_enable_source.

v2: Avoid changing order here to avoid changing behaviour
    as suggested by Jani.
v3: Rebased on top of commit d2419ffc10e4 ("drm/i915: Plumb
    crtc_state to PSR enable/disable")

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-7-rodrigo.vivi@intel.com
(cherry picked from commit  4d1fa22f4372f27ebbf2376de79a665d23623c8c  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I1774ac19747f33fc76392b65e957be403df26323

[modify] https://crrev.com/1b0fced070994b03454723d1ee405809aff52629/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 75 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/9ceb847bd63a2967df573b79a3af741f88cfb3c5

commit 9ceb847bd63a2967df573b79a3af741f88cfb3c5
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:52:03 2017

UPSTREAM: drm/i915/psr: Move hsw_enable_source after enabling sink.

No functional change is expected here since at this point
PSR is not allowed to go to any active state. In other
words, not really enabled.

However let's do in a separated patch so it gets clear
on what is change and specially it can helps on bisect
case if we figure something has caused changes in behaviour.

But this needs to be done before we make the vfunc to
enable source to be in parity with VLV implementation.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-8-rodrigo.vivi@intel.com
(cherry picked from commit  196cebddde80dd06b2de557ea393082bf5a06c3d  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ieefb357d971bc627d359dbc5b9a471ca2fdf7978

[modify] https://crrev.com/9ceb847bd63a2967df573b79a3af741f88cfb3c5/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 76 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/c16a9bad1ed5e3a230c8c862f0bfc2a9ff6d9c33

commit c16a9bad1ed5e3a230c8c862f0bfc2a9ff6d9c33
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:52:07 2017

UPSTREAM: drm/i915/psr: Re-org Activate after enable

Let's move the activation calls together after enable is done.

No real functional change should be expected here. Just an attempt
to get it clear when we are really activating PSR after enabling it.

v2: Add braces on if/else because commit message there is too long
    as suggested by Jani.
v3: Rebased on top of commit d2419ffc10e4 ("drm/i915: Plumb
    crtc_state to PSR enable/disable")

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-9-rodrigo.vivi@intel.com
(cherry picked from commit  29d1efe070d3cb5c52d51d82af71790ffaf0a64f  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I15fc73d7d89045c418a8003b3bd2ca8ddf5b131c

[modify] https://crrev.com/c16a9bad1ed5e3a230c8c862f0bfc2a9ff6d9c33/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 77 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e3217ab645d310d23811fcad017bf5dafac58519

commit e3217ab645d310d23811fcad017bf5dafac58519
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:52:11 2017

UPSTREAM: drm/i915/psr: Add setup VSC vfunc.

Continue on VLV PSR split with vfunc, let's also create
one for setting up VSC.

v2: Rebased on top of commit d2419ffc10e4 ("drm/i915: Plumb
    crtc_state to PSR enable/disable")

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-10-rodrigo.vivi@intel.com
(cherry picked from commit  2a5db87f82cb6b2763d5e07cc4eef8cd94e56395  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I2b1b593d25b009bfebb7dd6d5f75155ab481f28e

[modify] https://crrev.com/e3217ab645d310d23811fcad017bf5dafac58519/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/e3217ab645d310d23811fcad017bf5dafac58519/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 78 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/dcc74696f5229d52b8a141464145eb8fefac1946

commit dcc74696f5229d52b8a141464145eb8fefac1946
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:52:14 2017

UPSTREAM: drm/i915/psr: Add enable_sink vfunc.

Continue on VLV PSR split with vfunc, let's also create one
for enabling sink.

v2: Fix typo on commit message (DK).

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-11-rodrigo.vivi@intel.com
(cherry picked from commit  49ad316f87f17b8eaf6985c7baac7bc069dccddc  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I75f7e8044ac1931003ef2f929ce9f0e558633676

[modify] https://crrev.com/dcc74696f5229d52b8a141464145eb8fefac1946/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/dcc74696f5229d52b8a141464145eb8fefac1946/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 79 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1c0b6fc6f51a1194694d729b2b26d6d169a00fa3

commit 1c0b6fc6f51a1194694d729b2b26d6d169a00fa3
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:52:18 2017

UPSTREAM: drm/i915/psr: Add enable_source vfunc.

Continue on VLV PSR split with vfunc, let's also create one
for enabling source.

Also since we are touching *_enable_source functions let's
fix a comment with wrong name for vlv's one.

v2: Fix typo on commit message (DK).

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170907230041.22978-12-rodrigo.vivi@intel.com
(cherry picked from commit  d0d5e0d7b11359ccdc7276339ec29d98f4739453  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I206b8eafe33e75a31d3a9e8b871da9e411ff863d

[modify] https://crrev.com/1c0b6fc6f51a1194694d729b2b26d6d169a00fa3/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/1c0b6fc6f51a1194694d729b2b26d6d169a00fa3/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 80 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/3ec7c8c2258dc4b7118c7e2edf212cf0a7195421

commit 3ec7c8c2258dc4b7118c7e2edf212cf0a7195421
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Wed Dec 20 20:52:21 2017

UPSTREAM: drm/i915/spt+: Don't reset invalid AUX channel interrupt bits in SDEIMR

The SDE interrupt bits 25, 26 and 27 are either reserved or meant for
DDI E hotplug in SPT+. These bits are meant for AUX channels only in LPT
and CPT, so add the appropriate checks.

Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170909004255.14827-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit  4ebc65092ca3d9713d48ea43e7db5b3f07faf1bc  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I907ef7bbfec76f49bff34f21180a17b66fbbadb3

[modify] https://crrev.com/3ec7c8c2258dc4b7118c7e2edf212cf0a7195421/drivers/gpu/drm/i915/i915_irq.c

Project Member

Comment 81 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b78f8ac51d1bcea2f6cea08605dded290e9db5cc

commit b78f8ac51d1bcea2f6cea08605dded290e9db5cc
Author: Zhi Wang <zhi.a.wang@intel.com>
Date: Wed Dec 20 20:52:24 2017

UPSTREAM: drm/i915: Factor out setup_private_pat()

Factor out setup_private_pat() for introducing the following patches.

Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
Cc: Ben Widawsky <benjamin.widawsky@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1505202148-22959-1-git-send-email-zhi.a.wang@intel.com
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  36e16c49dbfec806754862f63136de552d4de4ba  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ic8632864a7e0f945450fabfe98a7af09fd649dc6

[modify] https://crrev.com/b78f8ac51d1bcea2f6cea08605dded290e9db5cc/drivers/gpu/drm/i915/i915_gem_gtt.c

Project Member

Comment 82 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f5c7f6fcb540c109a3065ecd7d075c0ea8385d4a

commit f5c7f6fcb540c109a3065ecd7d075c0ea8385d4a
Author: Marta Lofstedt <marta.lofstedt@intel.com>
Date: Wed Dec 20 20:52:28 2017

UPSTREAM: drm/i915: Increase poll time for BDW FCLK_DONE

During IGT testing it has been shown that the specification
defined polling time of 1 us for FCLK_DONE, is sometimes not
enough. The issue is still reproducible while disabling
C-states through the PM QoS framework and also while disabling
preemtion. From this the most plausible explanation is that the
issue is due to a firmware flaw.
As a workaround, it is better to wait a little bit longer for
the FCLK_DONE to come around, than to leave with an DRM_ERROR
and having FCLK_DONE at a randome time after.
While spinning a list of igt tests prone to reproduce the issue
the FCLK_DONE poll failed at approximately 2% of the invocations
of the bdw_set_cdclk function. The longest poll time during this
testing was measured to ~7us. So, the suggested new poll time of
100us is on the safe side.

v2: Added more documentation about investigations done.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102243
Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170908132829.6312-1-marta.lofstedt@intel.com
(cherry picked from commit  3164888a40469c102b5d6d1b756c7646e7eb19e7  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ia31553711fb75fe236f17c4ed47bc5709b265489

[modify] https://crrev.com/f5c7f6fcb540c109a3065ecd7d075c0ea8385d4a/drivers/gpu/drm/i915/intel_cdclk.c

Project Member

Comment 83 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e704ceabbc97e84a8fdb201e8be61de9b32acc12

commit e704ceabbc97e84a8fdb201e8be61de9b32acc12
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Wed Dec 20 20:52:31 2017

UPSTREAM: drm/i915: Nuke some bogus tabs from the pcode defines

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170912153411.20171-1-ville.syrjala@linux.intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  3e8ddd9e5071841827ec32a7a5ff11eaac5ad3d0  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iacb12eec64437c1bf2e3049054c9f2f18fbb6776

[modify] https://crrev.com/e704ceabbc97e84a8fdb201e8be61de9b32acc12/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 84 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/85d7e8b864a8143c2f97665b0b012b925b39e805

commit 85d7e8b864a8143c2f97665b0b012b925b39e805
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Wed Dec 20 20:52:35 2017

UPSTREAM: drm/i915: Name the IPS_PCODE_CONTROL bit

Give a name to the bit which tells pcode to control IPS.

v2: Note that IPS_CTL bits apply to DISPLAY_IPS_CONTROL as well (Chris)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170912153411.20171-2-ville.syrjala@linux.intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  61843f0e6212a8592cba26ff554af4af0dd93778  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: If89b0fc77011283793530b6ed61b1d3ab1daf16f

[modify] https://crrev.com/85d7e8b864a8143c2f97665b0b012b925b39e805/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/85d7e8b864a8143c2f97665b0b012b925b39e805/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 85 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/40ab87562f229a94c147d0aa232bcc356807e479

commit 40ab87562f229a94c147d0aa232bcc356807e479
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:52:39 2017

UPSTREAM: drm/i915: Cleanup error paths through eb_lookup_vma()

Following the simplification to a single lookup loop in commit
170fa29b14fa ("drm/i915: Simplify eb_lookup_vmas()") and commit
d1b48c1e7184 ("drm/i915: Replace execbuf vma ht with an idr"), we can go
one step further and reorder the error paths so that the state of the
local variable obj is always known to the compiler and doesn't need the
uninitialized_var markup to squelch a compiler warning.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170912150752.20411-1-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
(cherry picked from commit  ac70ebe873f5161e46fbd3a5ed318f7c34d0d157  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I6317d16a4b01c6164e1f6fed07d070dcef10bc1e

[modify] https://crrev.com/40ab87562f229a94c147d0aa232bcc356807e479/drivers/gpu/drm/i915/i915_gem_execbuffer.c

Project Member

Comment 86 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/7ea771ab3f739c5c21bf84c88becf443b14bc547

commit 7ea771ab3f739c5c21bf84c88becf443b14bc547
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Dec 20 20:52:43 2017

UPSTREAM: drm/i915: Refresh VLV/CHV PSR comments on HW PSR_state machine.

DK had pointed out a comment there was hard to understand, so I
tried to read back again and I couldn't understand that as well.
So let me re-phrase that in a way that anyone can understand
later, even myself.

Also fixed the comment block style.

v2: Accept DK's suggestion on PSR_state 2 and PSR_state 3 named
    as spec.

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170912183059.5086-1-rodrigo.vivi@intel.com
(cherry picked from commit  0d0c279405ec8eb1171c5de1bc4256bb803df77f  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ida2e348892ea22e9012130de0b65d180de14a4c7

[modify] https://crrev.com/7ea771ab3f739c5c21bf84c88becf443b14bc547/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 87 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d363f0c4286f889c036eb11586745eec62a68de4

commit d363f0c4286f889c036eb11586745eec62a68de4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:52:47 2017

UPSTREAM: drm/i915: Move the context descriptor to an inline helper

The context descriptor is stored inside the per-engine context state, as
we only need to compute it once and access it frequently. However,
currently only intel_lrc.c has easy access, but i915_guc_submission.c
would like to frequently read it as well, and more so only ever needs
the lower 32bits. Make it an inline as the compiler should be able to
retrieve the value in less instructions than it takes to do the function
call:

add/remove: 0/1 grow/shrink: 1/0 up/down: 8/-45 (-37)
function                                     old     new   delta
i915_guc_submit                              621     629      +8
intel_lr_context_descriptor                   45       -     -45

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170912214905.21987-1-chris@chris-wilson.co.uk
Reviewed-by: Oscar Mateo <oscar.mateo@intel.com>
(cherry picked from commit  2013ddebd2f4b5ef90625c8b82da216df0123134  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I1dc83049fdbbc27f08c2d8eb5222019fd3762d86

[modify] https://crrev.com/d363f0c4286f889c036eb11586745eec62a68de4/drivers/gpu/drm/i915/intel_lrc.h
[modify] https://crrev.com/d363f0c4286f889c036eb11586745eec62a68de4/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 88 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/2296de0a8ca9952740c3704607d58b178cee7050

commit 2296de0a8ca9952740c3704607d58b178cee7050
Author: Oscar Mateo <oscar.mateo@intel.com>
Date: Wed Dec 20 20:52:50 2017

UPSTREAM: drm/i915/guc: Name the default GuC scheduling policy

The default values for the default scheduling policy come from the
GuC firmware itself. Transform the magic numbers into defines.

Suggested-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1505252197-27696-1-git-send-email-oscar.mateo@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  e9eb8039ba0cb902817fafb5a0217dba0544f165  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I076e9d32dfca05934560e7bbf0d051157282473c

[modify] https://crrev.com/2296de0a8ca9952740c3704607d58b178cee7050/drivers/gpu/drm/i915/intel_guc_fwif.h
[modify] https://crrev.com/2296de0a8ca9952740c3704607d58b178cee7050/drivers/gpu/drm/i915/i915_guc_submission.c

Project Member

Comment 89 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4d0e26cfbae12e40730cc1777962034e7fa42e9f

commit 4d0e26cfbae12e40730cc1777962034e7fa42e9f
Author: Oscar Mateo <oscar.mateo@intel.com>
Date: Wed Dec 20 20:52:54 2017

UPSTREAM: drm/i915/guc: Remove WQ_WORKLOAD_SHIFT define

We never used it in i915 and it's going to be removed
in newer GuC firmwares anyway.

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1505252197-27696-2-git-send-email-oscar.mateo@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  048d2847d76df2a7e801d77d411216910b0643c4  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I71475e354b3da89cdd23b16f1a4e70477d47f2d7

[modify] https://crrev.com/4d0e26cfbae12e40730cc1777962034e7fa42e9f/drivers/gpu/drm/i915/intel_guc_fwif.h

Project Member

Comment 90 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/42a34c3766d3e2b8ed895583cf0535258327f507

commit 42a34c3766d3e2b8ed895583cf0535258327f507
Author: Oscar Mateo <oscar.mateo@intel.com>
Date: Wed Dec 20 20:52:57 2017

UPSTREAM: drm/i915/guc: Small improvements to guc_wq_item_append

Spare some comments and other small style changes.

Suggested-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1505252197-27696-3-git-send-email-oscar.mateo@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  ada8c4139fbad766fdf9e63b31c49874299fd60c  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I819bdc944d31ad2703d4ddd8371d05d853fcd27b

[modify] https://crrev.com/42a34c3766d3e2b8ed895583cf0535258327f507/drivers/gpu/drm/i915/i915_guc_submission.c

Project Member

Comment 91 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/c6e764b65db6526f0054f457f70542662b97fbca

commit c6e764b65db6526f0054f457f70542662b97fbca
Author: Mika Kahola <mika.kahola@intel.com>
Date: Wed Dec 20 20:53:01 2017

UPSTREAM: drm/i915/dsi: Replace MIPI command error message with debug message

Error message indicating that the same MIPI command is sent
consecutively is perhaps too strongly said. Let's replace that as a
debug message instead.

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1504252261-28964-3-git-send-email-mika.kahola@intel.com
(cherry picked from commit  5b60fc09806a9db0fb46e6821bc1ed3203b6740e  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iff2bcd4b413bd15a636b60a87d811e5113111100

[modify] https://crrev.com/c6e764b65db6526f0054f457f70542662b97fbca/drivers/gpu/drm/i915/intel_dsi.c

Project Member

Comment 92 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1ef5111cdab0c79e98891538fc93091afc470d48

commit 1ef5111cdab0c79e98891538fc93091afc470d48
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:53:04 2017

UPSTREAM: drm/i915: Use mul_u32_u32() for 32b x 32b -> 64b result

As realised by commit 9e3d6223d209 ("math64, timers: Fix 32bit
mul_u64_u32_shr() and friends"), GCC does not always generate ideal code
for performing a 32b x 32b multiply returning a 64b result (i.e. where
we idiomatically use u64 result = (u64)x * (u32)x). This catches a
couple of instances in the display code using (u64)x * (u32)y.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913105154.2910-1-chris@chris-wilson.co.uk
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
(cherry picked from commit  3123698f50fe4ac9ddb775dcd2b34a1d9cdd603f  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Idc4f8b13859afbaa4339b79525d3a6d584e88fb0

[modify] https://crrev.com/1ef5111cdab0c79e98891538fc93091afc470d48/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/1ef5111cdab0c79e98891538fc93091afc470d48/drivers/gpu/drm/i915/intel_tv.c

Project Member

Comment 93 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/19e31aae8a4b400b9d1b426d98b0c6423df7044b

commit 19e31aae8a4b400b9d1b426d98b0c6423df7044b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:53:08 2017

UPSTREAM: drm/i915/selftests: Use mul_u32_u32() for 32b x 32b -> 64b result

As realised by commit 9e3d6223d209 ("math64, timers: Fix 32bit
mul_u64_u32_shr() and friends"), GCC does not always generate ideal code
for performing a 32b x 32b multiply returning a 64b result (i.e. where
we idiomatically use u64 result = (u64)x * (u32)x).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913105154.2910-2-chris@chris-wilson.co.uk
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
(cherry picked from commit  7ce5b6850b47824a2b8d0a17b5fe75f9942e5cd1  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Idaae74c103f349f4da212f381ab151d7bbf5b032

[modify] https://crrev.com/19e31aae8a4b400b9d1b426d98b0c6423df7044b/drivers/gpu/drm/i915/selftests/i915_random.c
[modify] https://crrev.com/19e31aae8a4b400b9d1b426d98b0c6423df7044b/drivers/gpu/drm/i915/selftests/i915_random.h
[modify] https://crrev.com/19e31aae8a4b400b9d1b426d98b0c6423df7044b/drivers/gpu/drm/i915/selftests/i915_gem_timeline.c

Project Member

Comment 94 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4f61d7d3855d0acc9b9dc3394addc15f61299aa7

commit 4f61d7d3855d0acc9b9dc3394addc15f61299aa7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:53:12 2017

UPSTREAM: drm/i915: Squelch smatch warning for statement with no effect

The sgt iterators cause an

drivers/gpu/drm/i915/i915_gpu_error.c:846 i915_error_object_create() warn: statement has no effect 7

everywhere they are used. If we change the code slightly, we can achieve
the same increment without altering the output or raising a warning.

   text	   data	    bss	    dec	    hex	filename
1267906	  20587	   3168	1291661	 13b58d	before
1267906	  20587	   3168	1291661	 13b58d	after

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913105754.4423-1-chris@chris-wilson.co.uk
(cherry picked from commit  e60b36f76c2ee0ba90b431daa534bc262798fb26  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iba6144baf3bf29ff9aa6eebe09274f13ab388ff2

[modify] https://crrev.com/4f61d7d3855d0acc9b9dc3394addc15f61299aa7/drivers/gpu/drm/i915/i915_drv.h

Project Member

Comment 95 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e252bf0293ac401debdb6fbee0f953b6a79f022f

commit e252bf0293ac401debdb6fbee0f953b6a79f022f
Author: Michel Thierry <michel.thierry@intel.com>
Date: Wed Dec 20 20:53:16 2017

UPSTREAM: drm/i915/lrc: Clarify the format of the context image

Not only the context image consist of two parts (the PPHWSP, and the
logical context state), but we also allocate a header at the start of
for sharing data with GuC. Thus every lrc looks like this:

  | [guc]          | [hwsp] [logical state] |
  |<- our header ->|<- context image      ->|

So far, we have oversimplified whenever we use each of these parts of the
context, just because the GuC header happens to be in page 0, and the
(PP)HWSP is in page 1. But this had led to using the same define for more
than one meaning (as a page index in the lrc and as 1 page).

This patch adds defines for the GuC shared page, the PPHWSP page and the
start of the logical state. It also updated the places where the old
define was being used. Since we are not changing the size (or format) of
the context, there are no functional changes.

v2: Use PPHWSP index for hws again.

Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Oscar Mateo <oscar.mateo@intel.com>
Cc: intel-gvt-dev@lists.freedesktop.org
Link: http://patchwork.freedesktop.org/patch/msgid/20170712193032.27080-1-michel.thierry@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913085605.18299-1-chris@chris-wilson.co.uk
(cherry picked from commit  0b29c75a01e5413d9c1f368b8357b589c7b5a922  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ifbefae8b463db25c02c0f0dfec97ba3076a6cf60

[modify] https://crrev.com/e252bf0293ac401debdb6fbee0f953b6a79f022f/drivers/gpu/drm/i915/intel_lrc.h
[modify] https://crrev.com/e252bf0293ac401debdb6fbee0f953b6a79f022f/drivers/gpu/drm/i915/i915_guc_submission.c
[modify] https://crrev.com/e252bf0293ac401debdb6fbee0f953b6a79f022f/drivers/gpu/drm/i915/gvt/scheduler.c
[modify] https://crrev.com/e252bf0293ac401debdb6fbee0f953b6a79f022f/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 96 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/cf1a808629aa871535c8aacaa650cdb6dc956f96

commit cf1a808629aa871535c8aacaa650cdb6dc956f96
Author: Michel Thierry <michel.thierry@intel.com>
Date: Wed Dec 20 20:53:20 2017

UPSTREAM: drm/i915/guc: Don't make assumptions while getting the lrca offset

Using the HWSP ggtt_offset to get the lrca offset is only correct if the
HWSP happens to be before it (when we reuse the PPHWSP of the kernel
context as the engine HWSP). Instead of making this assumption, get the
lrca offset from the kernel_context engine state.

And while looking at this part of the GuC interaction, it was also
noticed that the firmware expects the size of only the engine context
(context minus the execlist part, i.e. don't include the first 80
dwords), so pass the right size.

v2: Use the new macros to prevent abusive overuse of the old ones (Chris).

Reported-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Oscar Mateo <oscar.mateo@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170712193032.27080-2-michel.thierry@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913085605.18299-2-chris@chris-wilson.co.uk
(cherry picked from commit  a922c0c7a6b7b84351c4051fc9defe1222185c16  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I18c1bea1f6c989d7978a415f90feadd53e941fd9

[modify] https://crrev.com/cf1a808629aa871535c8aacaa650cdb6dc956f96/drivers/gpu/drm/i915/i915_guc_submission.c

Project Member

Comment 97 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f070446a304bfdaf5d8aa44e5b2e3c867121a425

commit f070446a304bfdaf5d8aa44e5b2e3c867121a425
Author: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Date: Wed Dec 20 20:53:23 2017

UPSTREAM: drm/i915/lrc: allocate separate page for HWSP

On gen8+ we're currently using the PPHWSP of the kernel ctx as the
global HWSP. However, when the kernel ctx gets submitted (e.g. from
__intel_autoenable_gt_powersave) the HW will use that page as both
HWSP and PPHWSP. This causes a conflict in the register arena of the
HWSP, i.e. dword indices below 0x30. We don't current utilize this arena,
but in the following patches we will take advantage of the cached
register state for handling execlist's context status interrupt.

To avoid the conflict, instead of re-using the PPHWSP of the kernel
ctx we can allocate a separate page for the HWSP like what happens for
pre-execlists platform.

v2: Add a use-case for the register arena of the HWSP.

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1499357440-34688-1-git-send-email-daniele.ceraolospurio@intel.com
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913085605.18299-3-chris@chris-wilson.co.uk
(cherry picked from commit  486e93f72abd41559b740f017717c7f6b3f8bb1f  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ia54fbec84e86c8939ca336cf8f1c7434bffc39e7

[modify] https://crrev.com/f070446a304bfdaf5d8aa44e5b2e3c867121a425/drivers/gpu/drm/i915/intel_engine_cs.c
[modify] https://crrev.com/f070446a304bfdaf5d8aa44e5b2e3c867121a425/drivers/gpu/drm/i915/intel_ringbuffer.c
[modify] https://crrev.com/f070446a304bfdaf5d8aa44e5b2e3c867121a425/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 98 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/9ed75d7a1b783144258a398cbd2047f9afa874b7

commit 9ed75d7a1b783144258a398cbd2047f9afa874b7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:53:27 2017

UPSTREAM: drm/i915: Allow HW status page to be bound high

At the time of commit 1f767e02d69f ("drm/i915: HWS must be in the
mappable region for g33"), drm_mm insertion would often default to
placing a new object high in the zone forcing us to specify that certain
HWSP must be bound within the low mappable region. Since then, drm_mm
has gained more finesse over its placement and exposes that to the
caller, commit 4e64e5539d15 ("drm: Improve drm_mm search (and fix
topdown allocation) with rbtrees"). As such where possible we want the
HWSP to be outside of the mappable aperture and so need to specify that
can be pinned high.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913085605.18299-4-chris@chris-wilson.co.uk
(cherry picked from commit  34a04e5e46cb984a6bab336484fa856574db332f  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ifc23c23018dbf651b8a69915c28dd9cc4db570a6

[modify] https://crrev.com/9ed75d7a1b783144258a398cbd2047f9afa874b7/drivers/gpu/drm/i915/intel_engine_cs.c

Project Member

Comment 99 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/6fd67b395c9d30f6bbe242470878abf9f5a88ed0

commit 6fd67b395c9d30f6bbe242470878abf9f5a88ed0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:53:31 2017

UPSTREAM: drm/i915/execlists: Read the context-status buffer from the HWSP

The engine provides a mirror of the CSB in the HWSP. If we use the
cacheable reads from the HWSP, we can shave off a few mmio reads per
context-switch interrupt (which are quite frequent!). Just removing a
couple of mmio is not enough to actually reduce any latency, but a small
reduction in overall cpu usage.

Much appreciation for Ben dropping the bombshell that the CSB was in the
HWSP and for Michel in digging out the details.

v2: Don't be lazy, add the defines for the indices.
v3: Include the HWSP in debugfs/i915_engine_info
v4: Check for GVT-g, it currently depends on intercepting CSB mmio
v5: Fixup GVT-g mmio path
v6: Disable HWSP if VT-d is active as the iommu adds unpredictable
memory latency. (Mika)
v7: Also markup the CSB read with READ_ONCE() as it may still be an mmio
read and we want to stop the compiler from issuing a later (v.slow) reload.

Suggested-by: Ben Widawsky <benjamin.widawsky@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Acked-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913133534.26927-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
(cherry picked from commit  6d2cb5aa383bf020ee95e33d9d107975f340ae1c  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I2a529d6958daef6e97c96539b9ba4b165364d863

[modify] https://crrev.com/6fd67b395c9d30f6bbe242470878abf9f5a88ed0/drivers/gpu/drm/i915/intel_ringbuffer.h
[modify] https://crrev.com/6fd67b395c9d30f6bbe242470878abf9f5a88ed0/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/6fd67b395c9d30f6bbe242470878abf9f5a88ed0/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 100 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f58424b7c3a8d6d2cb0dddcd47aa7a05c9895c65

commit f58424b7c3a8d6d2cb0dddcd47aa7a05c9895c65
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Dec 20 20:53:35 2017

UPSTREAM: drm/i915/execlists: Read the context-status HEAD from the HWSP

The engine also provides a mirror of the CSB write pointer in the HWSP,
but not of our read pointer. To take advantage of this we need to
remember where we read up to on the last interrupt and continue off from
there. This poses a problem following a reset, as we don't know where
the hw will start writing from, and due to the use of power contexts we
cannot perform that query during the reset itself. So we continue the
current modus operandi of delaying the first read of the context-status
read/write pointers until after the first interrupt. With this we should
now have eliminated all uncached mmio reads in handling the
context-status interrupt, though we still have the uncached mmio writes
for submitting new work, and many uncached mmio reads in the global
interrupt handler itself. Still a step in the right direction towards
reducing our resubmit latency, although it appears lost in the noise!

v2: Cannonlake moved the CSB write index
v3: Include the sw/hwsp state in debugfs/i915_engine_info
v4: Also revert to using CSB mmio for GVT-g
v5: Prevent the compiler reloading tail (Mika)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Acked-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913085605.18299-6-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
(cherry picked from commit  767a983ab25564e8fcc84fa203d1c51d2e50c6ef  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I70d486281a6253faa0dd0b9089f88f6bcbd419f6

[modify] https://crrev.com/f58424b7c3a8d6d2cb0dddcd47aa7a05c9895c65/drivers/gpu/drm/i915/intel_ringbuffer.h
[modify] https://crrev.com/f58424b7c3a8d6d2cb0dddcd47aa7a05c9895c65/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/f58424b7c3a8d6d2cb0dddcd47aa7a05c9895c65/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/f58424b7c3a8d6d2cb0dddcd47aa7a05c9895c65/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 101 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/dc130ead79fae10b59e4252861e4242cb42a2d1e

commit dc130ead79fae10b59e4252861e4242cb42a2d1e
Author: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Date: Wed Dec 20 20:53:39 2017

UPSTREAM: drm/i915: Introduce INTEL_GEN_MASK

Split INTEL_GEN_MASK out of IS_GEN macro, and make it usable
within static declarations (unlike compound statements).

v2:
- s/combound/compound/ (Tvrtko)
- Fix whitespace (yes, we need automatic checkpatch.pl)

Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913115255.13851-1-joonas.lahtinen@linux.intel.com
(cherry picked from commit  fe52e597fdbfd1098d47bdf314a1974dac003227  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I9b54c7e3077bb89643f3df1c1f55acbc3d64c9a5

[modify] https://crrev.com/dc130ead79fae10b59e4252861e4242cb42a2d1e/drivers/gpu/drm/i915/i915_drv.h

Project Member

Comment 102 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/0c848b4175bbb1ed6cf2785a0441b28d002e13f0

commit 0c848b4175bbb1ed6cf2785a0441b28d002e13f0
Author: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Date: Wed Dec 20 20:53:43 2017

UPSTREAM: drm/i915: Simplify i915_reg_read_ioctl

Convert to use the freshly available made INTEL_GEN_MASK for easier
grepping and improve function readability and clarify the UABI
documentation.

No functional changes.

v2:
- Lift GEM_BUG_ONs and use is_power_of_2 (Chris)
- Retain -EINVAL on bad flags behavior (Chris)

v3:
- Extract flags with 'entry->size - 1' (Chris)

v4:
- Add GEM_BUG_ON on for flags vs entry offset (Chris)

v5:
- Use 'u16' to match 'dev_priv' (Ville)

v6:
- Fix checkpatch.pl errors

Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170913115255.13851-2-joonas.lahtinen@linux.intel.com
(cherry picked from commit  3fd3a6ffe279827543cbf4063e307ed18bad6763  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I965f923f88a51d45e71f5b9d08f53e5895b5aafe

[modify] https://crrev.com/0c848b4175bbb1ed6cf2785a0441b28d002e13f0/include/uapi/drm/i915_drm.h
[modify] https://crrev.com/0c848b4175bbb1ed6cf2785a0441b28d002e13f0/drivers/gpu/drm/i915/intel_uncore.c

Project Member

Comment 103 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/de8e55abdb5e530b76af4e47cd364ece3bf1bbfa

commit de8e55abdb5e530b76af4e47cd364ece3bf1bbfa
Author: Oscar Mateo <oscar.mateo@intel.com>
Date: Thu Dec 21 06:58:37 2017

UPSTREAM: drm/i915/cnl: Add Gen10 LRC size

The total size of the context has decreased with the removal of the
URB_ATOMIC section. BSpec indicates 16750 DWORDs (17 pages), plus
one page for PPHWSP, and I'm throwing an extra page for precaution.

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Ben Widawsky <ben@bwidawsk.net>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1506035989-14295-1-git-send-email-oscar.mateo@intel.com
(cherry picked from commit  7fd0b1a2593647aba4538196dd80314fd134877b  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Icb0e6a0141e76b3d8a20142ca4196fe882b48b5e

[modify] https://crrev.com/de8e55abdb5e530b76af4e47cd364ece3bf1bbfa/drivers/gpu/drm/i915/intel_engine_cs.c

Project Member

Comment 104 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b6ac6aa2fb18a210a8f8e0cae8f625a11a9403db

commit b6ac6aa2fb18a210a8f8e0cae8f625a11a9403db
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Dec 21 06:58:40 2017

UPSTREAM: drm/i915: Only wake the waiter from the interrupt if passed

As we now check if the seqno is complete in order to signal the fence,
we can also decide not to wake up the first_waiter until it is ready
(since it is waiting on the same seqno). The only caveat is that if we
need the engine->irq_seqno_barrier to enforce some coherency between an
interrupt and the seqno read, we have to always wake the waiter in order
to perform that heavyweight barrier.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170918162734.21294-1-chris@chris-wilson.co.uk
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
(cherry picked from commit  17b51ad8e5c051032d8e1d698e7dfd01d9133a92  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ieadcb52227f11d7e6ed0bee5b52e8716f2bb3ffa

[modify] https://crrev.com/b6ac6aa2fb18a210a8f8e0cae8f625a11a9403db/drivers/gpu/drm/i915/i915_irq.c

Project Member

Comment 105 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/3afbe1210f9b0b3f425317cf5e986a967e0b2ce9

commit 3afbe1210f9b0b3f425317cf5e986a967e0b2ce9
Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Date: Thu Dec 21 06:59:19 2017

UPSTREAM: drm/i915: Add execlist_port_complete

When first execlist entry is processed, we move the port (contents).
Introduce function for this as execlist and guc use this common
operation.

v2: rebase. s/GEM_DEBUG_BUG/GEM_BUG (Chris)
v3: rebase

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170922124307.10914-4-mika.kuoppala@intel.com
(cherry picked from commit  7a62cc6107f31e119a0df6f79fa9fae566b1a22e  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I0f73948903db735186646131a36a7a3e9b01b67d

[modify] https://crrev.com/3afbe1210f9b0b3f425317cf5e986a967e0b2ce9/drivers/gpu/drm/i915/intel_ringbuffer.h
[modify] https://crrev.com/3afbe1210f9b0b3f425317cf5e986a967e0b2ce9/drivers/gpu/drm/i915/i915_guc_submission.c
[modify] https://crrev.com/3afbe1210f9b0b3f425317cf5e986a967e0b2ce9/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 106 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f8bbd288fb8b9b22a77a2648adb310b6987059ce

commit f8bbd288fb8b9b22a77a2648adb310b6987059ce
Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Date: Thu Dec 21 06:59:23 2017

UPSTREAM: drm/i915: Make execlist port count variable

As we emulate execlists on top of the GuC workqueue, it is not
restricted to just 2 ports and we can increase that number arbitrarily
to trade-off queue depth (i.e. scheduling latency) against pipeline
bubbles.

v2: rebase. better commit msg (Chris)
v3: rebase

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20170922124307.10914-5-mika.kuoppala@intel.com
(cherry picked from commit  76e70087d360fdbe97f24c205d585ada04126e5f  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I859e1ddb958327f13efbfb47303fc99762eae353

[modify] https://crrev.com/f8bbd288fb8b9b22a77a2648adb310b6987059ce/drivers/gpu/drm/i915/intel_ringbuffer.h
[modify] https://crrev.com/f8bbd288fb8b9b22a77a2648adb310b6987059ce/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/f8bbd288fb8b9b22a77a2648adb310b6987059ce/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/f8bbd288fb8b9b22a77a2648adb310b6987059ce/drivers/gpu/drm/i915/intel_lrc.c
[modify] https://crrev.com/f8bbd288fb8b9b22a77a2648adb310b6987059ce/drivers/gpu/drm/i915/i915_guc_submission.c
[modify] https://crrev.com/f8bbd288fb8b9b22a77a2648adb310b6987059ce/drivers/gpu/drm/i915/i915_gpu_error.c
[modify] https://crrev.com/f8bbd288fb8b9b22a77a2648adb310b6987059ce/drivers/gpu/drm/i915/intel_engine_cs.c

Project Member

Comment 107 by bugdroid1@chromium.org, Dec 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1467404a3420305bd89dd41ab49f237268615bb6

commit 1467404a3420305bd89dd41ab49f237268615bb6
Author: David Weinehall <david.weinehall@linux.intel.com>
Date: Thu Dec 21 06:59:27 2017

UPSTREAM: drm/i915: Speed up DMC firmware loading

Currently we're doing:

1. acquire lock
2. write word to hardware
3. release lock
4. repeat from 1

to load the DMC firmware. Due to the cost of acquiring/releasing a lock,
and the size of the DMC firmware, this slows down DMC loading a lot.

This patch simply acquires the lock, writes the entire firmware,
then releases the lock.  Testing shows resume speedups
in the order of 10ms on platforms with DMC firmware (GEN9+).

v2: Per feedback from Chris & Ville there's no need to do the whole
    forcewake dance, so lose that bit (Chris, Ville)

v3: Actually send the new version of the patch...

v4: Don't acquire the uncore lock. Disable preempt. (Chris)

Signed-off-by: David Weinehall <david.weinehall@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170905131050.11655-1-david.weinehall@linux.intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit  dff457d74e7eaf8c5280967467597ebfc3e2e44a  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I850ee4c821954165499aad61dc85a4ecaf80ca5f

[modify] https://crrev.com/1467404a3420305bd89dd41ab49f237268615bb6/drivers/gpu/drm/i915/intel_csr.c

Project Member

Comment 108 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4f61eca85aa3e1f74772b6f093ebf7207b39e6bd

commit 4f61eca85aa3e1f74772b6f093ebf7207b39e6bd
Author: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Date: Fri Dec 22 09:37:55 2017

UPSTREAM: drm/i915: Disable lazy PPGTT page table optimization for vGPU

When running under virtualization (vGPU active), we must disable
the lazy PPGTT page table initialization optimization introduced by
commit 14826673247e ("drm/i915: Only initialize partially filled
pagetables").

We must do this because GVT-g makes unduly assumptions about guest
behaviour, which this optimization breaks. This results in following
looking errors in the host:

ERROR gvt: guest page write error -22, gfn 0x7ada8, pa 0x7ada89a8, var 0x6, len 1

The real fix is to not to depend on i915 driver behaviour, but instead
either rely on only the contracts that i915 has with the hardware, or
add some paravirtualization. While the real fix is en route, it won't
be finished in time for 4.15, so the best option is to disable the
optimization for now when vGPU is active to avoid breaking 4.15 guests
in existing VM environments.

Fixes: 14826673247e ("drm/i915: Only initialize partially filled pagetables")
Suggested-by: Xiaolin Zhang <xiaolin.zhang@intel.com>
Signed-off-by: Xiaolin Zhang <xiaolin.zhang@intel.com>
[Joonas: Rewrote the commit message and added tags.]
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171023153209.10527-1-joonas.lahtinen@linux.intel.com
(cherry picked from commit  22a8a4fc93b14b5a8cfc785edbdc6f7bd98bffb6  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I039312b3ad1caf97a5006ba49857372826663551

[modify] https://crrev.com/4f61eca85aa3e1f74772b6f093ebf7207b39e6bd/drivers/gpu/drm/i915/i915_gem_gtt.c

Project Member

Comment 109 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/12fba8b706e83e12d01a343f5d5ee5d5d1915ebe

commit 12fba8b706e83e12d01a343f5d5ee5d5d1915ebe
Author: Michał Winiarski <michal.winiarski@intel.com>
Date: Fri Dec 22 09:37:59 2017

UPSTREAM: drm/i915/preempt: Default to disabled mid-command preemption levels

Supporting fine-granularity preemption levels may require changes in
userspace batch buffer programming. Therefore, we need to fallback to
safe default values, rather that use hardware defaults. Userspace is
still able to enable fine-granularity, since we're whitelisting the
register controlling it in WaEnablePreemptionGranularityControlByUMD.

v2: Extend w/a to cover Cannonlake
v3: Fix commentary to include both fake w/a names.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171003203453.15692-2-chris@chris-wilson.co.uk
(cherry picked from commit  5152defe4a53ad15e6d96c422440152302c8abd7  
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
from drm-intel-testing-2017-10-12
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I908e1ef0210d19a463b9c8ea372062a0f86ff3d6

[modify] https://crrev.com/12fba8b706e83e12d01a343f5d5ee5d5d1915ebe/drivers/gpu/drm/i915/intel_engine_cs.c
[modify] https://crrev.com/12fba8b706e83e12d01a343f5d5ee5d5d1915ebe/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 110 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b2b1c4766ef02cc50cbcdad7850bb3665b29169c

commit b2b1c4766ef02cc50cbcdad7850bb3665b29169c
Author: Rafael Antognolli <rafael.antognolli@intel.com>
Date: Fri Dec 22 09:38:19 2017

FROMGIT: drm/i915: Implement ReadHitWriteOnlyDisable.

The workaround for this is described as:

"if RenderSurfaceState.Num_Multisamples > 1, disable RCC clock gating if
RenderSurfaceState.Num_Multisamples == 1, set 0x7010[14] = 1"

Further documentation in the internal bug referenced by the bspec
suggest that any of the above suggestions should suffice to fix the
issue. We are going with disabling RCC clock gating.

Unfortunately, what we are doing doesn't match the name of the
workaround, but at least it matches its description.

This change improves CNL stability by avoiding some of the hangs seen in
the platform.

v2: Only disable RCC clock gating.

Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171103183027.5051-1-rafael.antognolli@intel.com
(cherry picked from commit  0a60797a0efbc495f514304d83eb289bb55990a6
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: If173a331618996bb56f07189fa869cd2f08b25e7

[modify] https://crrev.com/b2b1c4766ef02cc50cbcdad7850bb3665b29169c/drivers/gpu/drm/i915/intel_engine_cs.c
[modify] https://crrev.com/b2b1c4766ef02cc50cbcdad7850bb3665b29169c/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 111 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1ea1ce4e12664c3030a4611f569310ede9934631

commit 1ea1ce4e12664c3030a4611f569310ede9934631
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Dec 22 09:38:23 2017

FROMGIT: drm/i915: Check that the breadcrumb wasn't disarmed automatically before parking

We will disarm the breadcrumb interrupt if we see a user interrupt
whilst no one is waiting. This may race with the call to
intel_engine_disarm_breadcrumbs() triggering an assert that we aren't
trying to do the same job twice. Prevent this by checking that the irq
is still armed after flushing the interrupt (for the irq spinlock).

Fixes: bcbd5c33a342 ("drm/i915/guc: Always enable the breadcrumbs irq")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171031122235.1395-1-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
(cherry picked from commit  e5330ac1f50b897d245753828e8887f297f69dd0
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I8ff0064ec3f7940fec972f507a4dfa852ab1ebc2

[modify] https://crrev.com/1ea1ce4e12664c3030a4611f569310ede9934631/drivers/gpu/drm/i915/intel_breadcrumbs.c

Project Member

Comment 112 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/5d947f5ff42e93fd04cffbfcc17aaedbf3a402eb

commit 5d947f5ff42e93fd04cffbfcc17aaedbf3a402eb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Dec 22 09:38:27 2017

FROMGIT: drm/i915: Unify SLICE_UNIT_LEVEL_CLKGATE w/a for cnl

gem_workarounds reports that the SLICE_UNIT_LEVEL_CLKGATE write isn't
sticking. Commit 0a60797a0efb ("drm/i915: Implement
ReadHitWriteOnlyDisable.") presumes that SLICE_UNIT_LEVEL_CLKGATE is a
masked register in the context image, but commit 90007bca6162
("drm/i915/cnl: Introduce initial Cannonlake Workarounds.") lists it as
an ordering unmasked register. The masked write will be losing the
default settings if we trust the original commit. That gem_workarounds
reports the value is lost entirely is more worrying though -- but it
clearly suggests that it is not a masked register in the context image,
so unify both w/a to use the original rmw.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103705
Fixes: 0a60797a0efb ("drm/i915: Implement ReadHitWriteOnlyDisable.")
References: 90007bca6162 ("drm/i915/cnl: Introduce initial Cannonlake Workarounds.")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rafael Antognolli <rafael.antognolli@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Oscar Mateo <oscar.mateo@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171111100336.11020-1-chris@chris-wilson.co.uk
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
(cherry picked from commit 34991bd48c927712678d0cea77628328f9046923
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I01f2a7285b3e309513ec4970dee7618793326fc3
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/5d947f5ff42e93fd04cffbfcc17aaedbf3a402eb/drivers/gpu/drm/i915/intel_pm.c
[modify] https://crrev.com/5d947f5ff42e93fd04cffbfcc17aaedbf3a402eb/drivers/gpu/drm/i915/intel_engine_cs.c

Project Member

Comment 113 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/137c67e22ae4ad97da3b87502d7c60e755684dd7

commit 137c67e22ae4ad97da3b87502d7c60e755684dd7
Author: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Date: Fri Dec 22 09:38:31 2017

UPSTREAM: drm/i915: move adjusted_x/y from crtc to cache.

Move adjusted_x/y from crtc to fbc cache.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1508270891-22186-2-git-send-email-juhapekka.heikkila@gmail.com
[vsyrjala: Add rudimentary commit message]
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
(cherry picked from commit bf0a5d4b223dfe523eb5191d0cb428f63cf04e2e)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I4eb80d3fa0fd5e041ad05641f2a8337b9cb3c813
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/137c67e22ae4ad97da3b87502d7c60e755684dd7/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/137c67e22ae4ad97da3b87502d7c60e755684dd7/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/137c67e22ae4ad97da3b87502d7c60e755684dd7/drivers/gpu/drm/i915/intel_drv.h
[modify] https://crrev.com/137c67e22ae4ad97da3b87502d7c60e755684dd7/drivers/gpu/drm/i915/intel_fbc.c

Project Member

Comment 114 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/12c1bed66b758eda3f6ec2f45ea7444075dbb9a2

commit 12c1bed66b758eda3f6ec2f45ea7444075dbb9a2
Author: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Date: Fri Dec 22 09:38:36 2017

UPSTREAM: drm/i915: dspaddr_offset doesn't need to be more than local variable

Move u32 dspaddr_offset from struct intel_crtc member into local
variable in i9xx_update_primary_plane()

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1508270891-22186-3-git-send-email-juhapekka.heikkila@gmail.com
(cherry picked from commit e288881b08dc2627dda6f93ce1d406ba4dc0f143)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I7664f5f779fef882b0254aa8cacefdbbe47f9ff6
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/12c1bed66b758eda3f6ec2f45ea7444075dbb9a2/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/12c1bed66b758eda3f6ec2f45ea7444075dbb9a2/drivers/gpu/drm/i915/intel_drv.h

Project Member

Comment 115 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4862c012959c68ebd0cc972c13ca8297c6b0d702

commit 4862c012959c68ebd0cc972c13ca8297c6b0d702
Author: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Date: Fri Dec 22 09:38:39 2017

UPSTREAM: drm/i915: Unify skylake plane update

Don't handle skylake primary plane separately as it is similar
plane as the others.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1508270891-22186-4-git-send-email-juhapekka.heikkila@gmail.com
(cherry picked from commit 9a8cc576002aa4ad18edac6a6d4c46ea6eab416b)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Id2be9e4978eefb18fe49f5f0a2c7988f134ddf24
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/4862c012959c68ebd0cc972c13ca8297c6b0d702/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/4862c012959c68ebd0cc972c13ca8297c6b0d702/drivers/gpu/drm/i915/intel_sprite.c
[modify] https://crrev.com/4862c012959c68ebd0cc972c13ca8297c6b0d702/drivers/gpu/drm/i915/intel_drv.h

Project Member

Comment 116 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e7a2e20858028c9cbae1d0752b6633bc75c77de4

commit e7a2e20858028c9cbae1d0752b6633bc75c77de4
Author: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Date: Fri Dec 22 09:38:44 2017

UPSTREAM: drm/i915: Unify skylake plane disable

Don't handle skylake primary plane separately as it is similar
plane as the others.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1508270891-22186-5-git-send-email-juhapekka.heikkila@gmail.com
(cherry picked from commit 779d4d8f083e46364cc9b2c784cf8ad6ab3d3aa5)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Icf043fbc3d045def22b7416bf3de0125f33c3ce5
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/e7a2e20858028c9cbae1d0752b6633bc75c77de4/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/e7a2e20858028c9cbae1d0752b6633bc75c77de4/drivers/gpu/drm/i915/intel_sprite.c
[modify] https://crrev.com/e7a2e20858028c9cbae1d0752b6633bc75c77de4/drivers/gpu/drm/i915/intel_drv.h

Project Member

Comment 117 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/8d680686d2ca546f8ac339c737576d421c5e2384

commit 8d680686d2ca546f8ac339c737576d421c5e2384
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Dec 22 09:39:48 2017

UPSTREAM: drm/i915/execlists: Distinguish the incomplete context notifies

Let the listener know that the context we just scheduled out was not
complete, and will be scheduled back in at a later point.

v2: Handle CONTEXT_STATUS_PREEMPTED in gvt by aliasing it to
CONTEXT_STATUS_OUT for the moment, gvt can expand upon the difference
later.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: "Zhenyu Wang" <zhenyuw@linux.intel.com>
Cc: "Wang, Zhi A" <zhi.a.wang@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171003203453.15692-3-chris@chris-wilson.co.uk
(cherry picked from commit d6c0511300dcff19969844495ba293c4efb50b42)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I08208ae38ab4275a66651148144e00d977052d0b
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/8d680686d2ca546f8ac339c737576d421c5e2384/drivers/gpu/drm/i915/intel_lrc.h
[modify] https://crrev.com/8d680686d2ca546f8ac339c737576d421c5e2384/drivers/gpu/drm/i915/gvt/scheduler.c
[modify] https://crrev.com/8d680686d2ca546f8ac339c737576d421c5e2384/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 118 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/8d42a9bebf70d932bdf4bb0393e79377009137ed

commit 8d42a9bebf70d932bdf4bb0393e79377009137ed
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Dec 22 09:39:51 2017

UPSTREAM: drm/i915: Filter out spurious execlists context-switch interrupts

Back in commit a4b2b01523a8 ("drm/i915: Don't mark an execlists
context-switch when idle") we noticed the presence of late
context-switch interrupts. We were able to filter those out by looking
at whether the ELSP remained active, but in commit beecec901790
("drm/i915/execlists: Preemption!") that became problematic as we now
anticipate receiving a context-switch event for preemption while ELSP
may be empty. To restore the spurious interrupt suppression, add a
counter for the expected number of pending context-switches and skip if
we do not need to handle this interrupt to make forward progress.

v2: Don't forget to switch on for preempt.
v3: Reduce the counter to a on/off boolean tracker. Declare the HW as
active when we first submit, and idle after the final completion event
(with which we confirm the HW says it is idle), and track each source
of activity separately. With a finite number of sources, it should aide
us in debugging which gets stuck.

Fixes: beecec901790 ("drm/i915/execlists: Preemption!")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171023213237.26536-3-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
(cherry picked from commit 4a118ecbe99c93cf9f9582e83a88d03f18d6cb84)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit 5d266692372dfb412150006df420185b666658f9)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Icb5747d59111b8039a44a0b195168baa18a479fb
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/8d42a9bebf70d932bdf4bb0393e79377009137ed/drivers/gpu/drm/i915/intel_ringbuffer.h
[modify] https://crrev.com/8d42a9bebf70d932bdf4bb0393e79377009137ed/drivers/gpu/drm/i915/intel_lrc.c
[modify] https://crrev.com/8d42a9bebf70d932bdf4bb0393e79377009137ed/drivers/gpu/drm/i915/intel_engine_cs.c
[modify] https://crrev.com/8d42a9bebf70d932bdf4bb0393e79377009137ed/drivers/gpu/drm/i915/i915_guc_submission.c
[modify] https://crrev.com/8d42a9bebf70d932bdf4bb0393e79377009137ed/drivers/gpu/drm/i915/i915_irq.c

Project Member

Comment 119 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/720b21a8d8a71d250c085e6f4962f79204f0ca3d

commit 720b21a8d8a71d250c085e6f4962f79204f0ca3d
Author: Michał Winiarski <michal.winiarski@intel.com>
Date: Fri Dec 22 09:39:55 2017

FROMGIT: drm/i915: Rename helpers used for unwinding, use macro for can_preempt

We would also like to make use of execlist_cancel_port_requests and
unwind_incomplete_requests in GuC preemption backend.
Let's rename the functions to use the correct prefixes, so that we can
simply add the declarations in the following patch.
Similar thing for applies for can_preempt, except we're introducing
HAS_LOGICAL_RING_PREEMPTION macro instad, converting other users that
were previously touching device info directly.

v2: s/intel_engine/execlists and pass execlists to unwind (Chris)
v3: use locked version for exporting, drop const qual (Chris)

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171025200020.16636-11-michal.winiarski@intel.com
(cherry picked from commit a4598d17551ab5ce5c9fd2ac7a7803e89b63260e
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ib755c4d17042798af71a586142af76a5c62f4828
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/720b21a8d8a71d250c085e6f4962f79204f0ca3d/drivers/gpu/drm/i915/i915_drv.c
[modify] https://crrev.com/720b21a8d8a71d250c085e6f4962f79204f0ca3d/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/720b21a8d8a71d250c085e6f4962f79204f0ca3d/drivers/gpu/drm/i915/intel_engine_cs.c
[modify] https://crrev.com/720b21a8d8a71d250c085e6f4962f79204f0ca3d/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 120 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/71fde169041bd84165a3ab64e92fe7decf080e54

commit 71fde169041bd84165a3ab64e92fe7decf080e54
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Dec 22 09:39:59 2017

FROMGIT: drm/i915/execlists: Listen to COMPLETE context event not ACTIVE_IDLE

Since commit e1fee72c2ea2e9c0c6e6743d32a6832f21337d6c
Author: Oscar Mateo <oscar.mateo@intel.com>
Date:   Thu Jul 24 17:04:40 2014 +0100

    drm/i915/bdw: Avoid non-lite-restore preemptions

execlists has listened to (ACTIVE_IDLE | ELEMENT_SWITCH) for detecting
when one context completed and it either continued onto the next (in port
1) or idled. We would always see COMPLETE | ACTIVE_IDLE on the final
context-switch event, but on recent gen it appears that we now get
separate ACTIVE_IDLE and COMPLETE events. In particular, the ACTIVE_IDLE
events may not be coupled to a context (since it is a general state rather
than a specific context completion event).

v2: Update the history, execlists did originally start out by listening
to the COMPLETE event not ACTIVE_IDLE.
v3: Update preempt completion test to also use COMPLETE not ACTIVE_IDLE.

References: bspec/12255
References: https://bugs.freedesktop.org/show_bug.cgi?id=103800
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Oscar Mateo <oscar.mateo@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Acked-by: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171120123458.23242-1-chris@chris-wilson.co.uk
(cherry picked from commit e40dd226246d2a0fb463a04bd4c6f1b9e0a650ed\
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I5447a3c27d2ca01caf31fd100c3e2c6e8736c970
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/71fde169041bd84165a3ab64e92fe7decf080e54/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 121 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e8223518a965a41522008c98c1463aec8e9e7c62

commit e8223518a965a41522008c98c1463aec8e9e7c62
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Dec 22 09:40:03 2017

FROMGIT: drm/i915: Use trace_printk to provide a death rattle for GEM

Trying to enable printk debugging for GEM is fraught with the issue of
spam; interactions with HW are very frequent and often boring. However,
one instance where they are not so boring is just before a BUG; here
ftrace provides a facility to dump its ringbuffer on an oops. So for CI
let's enable trace_printk() to capture the last exchanges with HW as a
death rattle.

For example,
[   79.234110] ------------[ cut here ]------------
[   79.234137] kernel BUG at drivers/gpu/drm/i915/intel_lrc.c:907!
[   79.234145] invalid opcode: 0000 [#1] SMP
[   79.234153] Dumping ftrace buffer:
[   79.234158] ---------------------------------
...
[   79.314044] gem_conc-1059    1..s1 79203443us : intel_lrc_irq_handler: bcs0 out[0]: ctx=5.2, seqno=145
[   79.314089] gem_conc-1059    1..s. 79220800us : intel_lrc_irq_handler: bcs0 csb[1/1]: status=0x00000018:0x00000005
[   79.314133] gem_conc-1059    1..s. 79220803us : intel_lrc_irq_handler: bcs0 out[0]: ctx=5.1, seqno=145
[   79.314177] gem_conc-1062    2..s1 79230458us : intel_lrc_irq_handler: bcs0 in[0]:  ctx=8.1, seqno=146
[   79.314220] gem_conc-1062    2..s1 79230515us : intel_lrc_irq_handler: bcs0 in[0]:  ctx=8.2, seqno=147
[   79.314265] gem_conc-1059    1..s1 79230951us : intel_lrc_irq_handler: bcs0 csb[2/3]: status=0x00000012:0x00000008
[   79.314309] gem_conc-1059    1..s1 79230954us : intel_lrc_irq_handler: bcs0 out[0]: ctx=8.2, seqno=147
[   79.314353] gem_conc-1059    1..s1 79230954us : intel_lrc_irq_handler: bcs0 csb[3/3]: status=0x00008002:0x00000008
[   79.314396] gem_conc-1059    1..s1 79230955us : intel_lrc_irq_handler: bcs0 out[0]: ctx=8.1, seqno=147
[   79.314402] ---------------------------------

v2: Tweak the formatting to be more consistent between in/out.
v3: do {} while (0) stub macro protection

Suggested-by: Michał Winiarski <michal.winiarski@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171109143019.16568-1-chris@chris-wilson.co.uk
(cherry picked from commit bccd3b831185e75c4138bc3fd5201f3214dfeb3d
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ibddc4768dc108d0441f159bd5963be7eb938256c
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/e8223518a965a41522008c98c1463aec8e9e7c62/drivers/gpu/drm/i915/i915_gem.h
[modify] https://crrev.com/e8223518a965a41522008c98c1463aec8e9e7c62/drivers/gpu/drm/i915/Kconfig.debug
[modify] https://crrev.com/e8223518a965a41522008c98c1463aec8e9e7c62/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 122 by bugdroid1@chromium.org, Dec 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/91fc30ba8fa258f87975a8052a5f99c40fa0ef02

commit 91fc30ba8fa258f87975a8052a5f99c40fa0ef02
Author: Michel Thierry <michel.thierry@intel.com>
Date: Fri Dec 22 09:40:07 2017

FROMGIT: drm/i915/execlists: Delay writing to ELSP until HW has processed the previous write

The hardware needs some time to process the information received in the
ExecList Submission Port, and expects us to not write anything more until
it has 'acknowledged' this new submission by sending an IDLE_ACTIVE or
PREEMPTED CSB event.

If we do not follow this, the driver could write new data into the ELSP
before HW had finishing fetching the previous one, putting us in
'undefined behaviour' space.

This seems to be the problem causing the spurious PREEMPTED & COMPLETE
events after a COMPLETE like the one below:

[] vcs0: sw rd pointer = 2, hw wr pointer = 0, current 'head' = 3.
[] vcs0:  Execlist CSB[0]: 0x00000018 _ 0x00000007
[] vcs0:  Execlist CSB[1]: 0x00000001 _ 0x00000000
[] vcs0:  Execlist CSB[2]: 0x00000018 _ 0x00000007  <<< COMPLETE
[] vcs0:  Execlist CSB[3]: 0x00000012 _ 0x00000007  <<< PREEMPTED & COMPLETE
[] vcs0:  Execlist CSB[4]: 0x00008002 _ 0x00000006
[] vcs0:  Execlist CSB[5]: 0x00000014 _ 0x00000006

The ELSP writes that lead to this CSB sequence show that the HW hadn't
started executing the previous execlist (the one with only ctx 0x6) by the
time the new one was submitted; this is a bit more clear in the data
show in the EXECLIST_STATUS register at the time of the ELSP write.

[] vcs0: ELSP[0] = 0x0_0        [execlist1] - status_reg = 0x0_302
[] vcs0: ELSP[1] = 0x6_fedb2119 [execlist0] - status_reg = 0x0_8302

[] vcs0: ELSP[2] = 0x7_fedaf119 [execlist1] - status_reg = 0x0_8308
[] vcs0: ELSP[3] = 0x6_fedb2119 [execlist0] - status_reg = 0x7_8308

Note that having to wait for this ack does not disable lite-restores,
although it may reduce their numbers.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102035
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/<20171118003038.7935-1-michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171120123458.23242-4-chris@chris-wilson.co.uk
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit ba74cb10c775c839f6e1d0fabd1e772eabd9c43f
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I0143dab9f7bcdd700332f86a83be8d6c2978a067
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

[modify] https://crrev.com/91fc30ba8fa258f87975a8052a5f99c40fa0ef02/drivers/gpu/drm/i915/intel_ringbuffer.h
[modify] https://crrev.com/91fc30ba8fa258f87975a8052a5f99c40fa0ef02/drivers/gpu/drm/i915/intel_lrc.c

Project Member

Comment 123 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/9c379e931127bfed3d086968828e32f3b399627a

commit 9c379e931127bfed3d086968828e32f3b399627a
Author: James Ausmus <james.ausmus@intel.com>
Date: Fri Jan 12 06:22:26 2018

FROMGIT: drm/i915/cnl: Mask previous DDI - PLL mapping

Without masking out the old value, we can end up pointing the DDI to a
disabled PLL, which makes the system fall over. Mask out the previous
value before setting the PLL to DDI mapping.

This can be observed by running igt/testdisplay with both an eDP and
HDMI/DP output active.

v2: Add the Bugzilla link

Fixes: 555e38d273172 ("drm/i915/cnl: DDI - PLL mapping")
Testcase: igt/testdisplay
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103997
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Matt Atwood <matthew.s.atwood@intel.com>
Signed-off-by: James Ausmus <james.ausmus@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Tested-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171201021700.13504-1-james.ausmus@intel.com
(cherry picked from commit 23a7068ec581fcc6fb61039448632d25987b1fae
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:791664, chromium:783394
TEST=CNL boots to graphics

Change-Id: I30dfcec133088ac45d79e07b56d64bbc83fc9647
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/806446
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/9c379e931127bfed3d086968828e32f3b399627a/drivers/gpu/drm/i915/intel_ddi.c

Project Member

Comment 124 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/0d9589dc94fb24d22a872ff73cc21990bc8376f4

commit 0d9589dc94fb24d22a872ff73cc21990bc8376f4
Author: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Date: Fri Jan 12 06:22:13 2018

FROMGIT: Revert "drm/i915: Display WA #1133 WaFbcSkipSegments:cnl, glk"

This reverts commit 8f067837c4b713ce2e69be95af7b2a5eb3bd7de8.

HSD says "WA withdrawn. It was causing corruption with some images.
WA is not strictly necessary since this bug just causes loss of FBC
compression with some sizes and images, but doesn't break anything."

Fixes: 8f067837c4b7 ("drm/i915: Display WA #1133 WaFbcSkipSegments:cnl, glk")
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171117010825.23118-1-radhakrishna.sripada@intel.com
(cherry picked from commit 0cfecb7c4b9b45ed1776162e132b43f92564f3f4
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I82ebee9b7754782fa423394c63ab80749c114c43
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807387
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/0d9589dc94fb24d22a872ff73cc21990bc8376f4/drivers/gpu/drm/i915/intel_pm.c
[modify] https://crrev.com/0d9589dc94fb24d22a872ff73cc21990bc8376f4/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 125 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/61fd05e77c6fa113e76b3c575e86dfd12c2fb51c

commit 61fd05e77c6fa113e76b3c575e86dfd12c2fb51c
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Fri Jan 12 06:22:15 2018

UPSTREAM: drm/i915: Pass encoder type to cnl_ddi_vswing_sequence() explicitly

encoder->type is unreliable for DP/HDMI, so pass it in explicity into
cnl_ddi_vswing_sequence(). This matches what we do for BXT.

v2: Pass intel_encoder down to cnl_ddi_vswing_program(), and
    clean up the argument types while at it

Signed-off-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171016145705.11780-7-ville.syrjala@linux.intel.com
Reviewed-by: James Ausmus <james.ausmus@intel.com>
(cherry picked from commit f3cf4ba45e13bef6287b03b72ba43db1dab60e29)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I6a716328f8038fa9bf6b103c3f24f34c271790eb
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807388
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/61fd05e77c6fa113e76b3c575e86dfd12c2fb51c/drivers/gpu/drm/i915/intel_ddi.c

Project Member

Comment 126 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/db68e5c0dd494c5382ef3184836e201b7c9d6293

commit db68e5c0dd494c5382ef3184836e201b7c9d6293
Author: Jani Nikula <jani.nikula@intel.com>
Date: Fri Jan 12 06:22:17 2018

UPSTREAM: drm/i915/bios: refactor parse general definitions

Early return on failures. Rename the variable for later merging with
parse_device_mappings().

Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/785abb904a572752fec68d90d34efeb67774dc1f.1506586821.git.jani.nikula@intel.com
(cherry picked from commit a87145ca56d14fc4b0bce68c18a5fecb01a09540)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I2cf3f3b54c4e4716d45c2871de0e6acc1d334a3b
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807389
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/db68e5c0dd494c5382ef3184836e201b7c9d6293/drivers/gpu/drm/i915/intel_bios.c

Project Member

Comment 127 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/91624d56591903495ad3241287feafa678740187

commit 91624d56591903495ad3241287feafa678740187
Author: Jani Nikula <jani.nikula@intel.com>
Date: Fri Jan 12 06:22:18 2018

UPSTREAM: drm/i915/bios: merge parse_device_mapping() into parse_general_definitions()

They're both parsing the same block, and there's no need for them to be
split. The former also benefits from the range checks in the latter.

Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/64a292606ecbb0b8602e6c5523c5746573ec3944.1506586821.git.jani.nikula@intel.com
(cherry picked from commit b3ca1f43b285dd74daa8ef87cce41bc50434a865)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iab84b15eed82400e93c234e1dc345f50da56eb39
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807390
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/91624d56591903495ad3241287feafa678740187/drivers/gpu/drm/i915/intel_bios.c

Project Member

Comment 128 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d02d144c1f5ace19beec559c4abad7f174c91334

commit d02d144c1f5ace19beec559c4abad7f174c91334
Author: Jani Nikula <jani.nikula@intel.com>
Date: Fri Jan 12 06:22:20 2018

UPSTREAM: drm/i915/bios: parse SDVO device mapping from pre-parsed child devices

We parse and store the child devices in
parse_general_definitions(). There is no need to parse the VBT block
again for SDVO device mapping. Do the same as we do in
parse_ddi_ports().

We no longer have access to child device size at this stage, but we also
don't need to worry about reading past the child device anymore. Instead
of a child device size check, do a mild optimization by limiting the
parsing to gens 3 through 7.

Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/c918d4173dd38a165295f1270cb16c2c01bd8cd1.1506586821.git.jani.nikula@intel.com
(cherry picked from commit 0ebdabe6126498f06cd1885dfbf658c46317041f)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I63ef0f33c8f4f9947d0f541e61675ecf50171114
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807391
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/d02d144c1f5ace19beec559c4abad7f174c91334/drivers/gpu/drm/i915/intel_bios.c

Project Member

Comment 129 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1a03b34cc06486aa7276e294a298865afe8d0457

commit 1a03b34cc06486aa7276e294a298865afe8d0457
Author: Jani Nikula <jani.nikula@intel.com>
Date: Fri Jan 12 06:22:21 2018

UPSTREAM: drm/i915/bios: don't pass bdb to parsers that don't parse VBT directly

Hint that you're not supposed to look at VBT in these functions.

Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/b82c326be8c796a70bdc2bd1c479bbb6159f5cb0.1506586821.git.jani.nikula@intel.com
(cherry picked from commit 0ead5f81d4200b63cf92be867bfbd6708056e4a8)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I621fa1f96a3d622fad0698f5f16cbabc845d87f5
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807392
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/1a03b34cc06486aa7276e294a298865afe8d0457/drivers/gpu/drm/i915/intel_bios.c

Project Member

Comment 130 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f53d54c6cfbeec7f39e0ab1e21d9c597339c54b2

commit f53d54c6cfbeec7f39e0ab1e21d9c597339c54b2
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Fri Jan 12 06:22:23 2018

UPSTREAM: drm/i915: Parse max HDMI TMDS clock from VBT

Starting from version 204 VBT can specify the max TMDS clock we are
allowed to use with HDMI ports. Parse that information and take it
into account when filtering modes and computing a crtc state.

Also take the opportunity to sort the platform check if ladder
from new to old.

v2: Add defines for the values into intel_vbt_defs.h (Jani)
    Don't fall back to 0 silently for unknown values (Jani)
    Skip the debug print for the 0 case (Jani)

Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171030145702.23662-1-ville.syrjala@linux.intel.com
(cherry picked from commit d6038611aa3d7d8080a8ae7f3122779fb4779a13)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ibd34026cf33f1c464f86326ddf73a61c4556732e
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807393
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/f53d54c6cfbeec7f39e0ab1e21d9c597339c54b2/drivers/gpu/drm/i915/intel_bios.c
[modify] https://crrev.com/f53d54c6cfbeec7f39e0ab1e21d9c597339c54b2/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/f53d54c6cfbeec7f39e0ab1e21d9c597339c54b2/drivers/gpu/drm/i915/intel_hdmi.c
[modify] https://crrev.com/f53d54c6cfbeec7f39e0ab1e21d9c597339c54b2/drivers/gpu/drm/i915/intel_vbt_defs.h

Project Member

Comment 131 by bugdroid1@chromium.org, Jan 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/dd6b8ff825bf1cc8b336c93b79719a2ceef20e9c

commit dd6b8ff825bf1cc8b336c93b79719a2ceef20e9c
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Fri Jan 12 06:22:25 2018

FROMGIT: drm/i915/cnl: Extend HDMI 2.0 support to CNL.

Starting on GLK we support HDMI 2.0. So this patch only
extend the work Shashank has made to GLK to CNL.

v2: The version that compiles :/
v3: Invert order to newer || older platforms check. (Ville).

Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Shashank Sharma <shashank.sharma@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171115184205.8104-1-rodrigo.vivi@intel.com
(cherry picked from commit 9672a69c761468ec920a8bc2442b8397b20578f8
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I039e0515bbd00067e44130856ce47f884070e04c
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/807394
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/dd6b8ff825bf1cc8b336c93b79719a2ceef20e9c/drivers/gpu/drm/i915/intel_hdmi.c

Project Member

Comment 132 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1b7d3472051c13d77f0bf6e64b72f120422b495c

commit 1b7d3472051c13d77f0bf6e64b72f120422b495c
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:22 2018

UPSTREAM: drm/i915: Separate RPS and RC6 handling for gen6+

This patch separates enable/disable of RC6 and RPS for gen6+
platforms prior to VLV.

v2: Fixed checkpatch issue. (Sagar)

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> #1
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-2-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-1-chris@chris-wilson.co.uk
(cherry picked from commit 960e54652ceed1c0f49969c5d951688eab1d49cb)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I2a7d155d9121b1bd77a67b36e98d6332383a988b
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843421
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/1b7d3472051c13d77f0bf6e64b72f120422b495c/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/1b7d3472051c13d77f0bf6e64b72f120422b495c/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 133 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/354ef841e8413c1af13b8ebf2bd9e0bde6c30f09

commit 354ef841e8413c1af13b8ebf2bd9e0bde6c30f09
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:25 2018

UPSTREAM: drm/i915: Remove superfluous IS_BDW checks and non-BDW changes from gen8_enable_rps

This patch removes all IS_BROADWELL checks and non-BDW changes from
gen8_enable_rps as it is called only for BROADWELL.

Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-3-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-2-chris@chris-wilson.co.uk
(cherry picked from commit 415544d5a89fb2be3b12dc7c4682806323aabdbf)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I20262595d14492bf303083f9d6444391b3382a95
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843422
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/354ef841e8413c1af13b8ebf2bd9e0bde6c30f09/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 134 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/0b25ceb3325d8959ee7b7b6f821fbc82ac531452

commit 0b25ceb3325d8959ee7b7b6f821fbc82ac531452
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:28 2018

UPSTREAM: drm/i915: Separate RPS and RC6 handling for BDW

This patch separates RC6 and RPS enabling for BDW.
RC6/RPS Disabling are handled through gen6 functions.
PM Programming guide recommends a sequence within forcewakes to
configure RC6, RPS and ring frequencies in sequence. With this
patch the order is still maintained.

v2: Update sequence numbers in RC6 programming and comment about
intent of reset_rps during gen8_enable_rps. (Radoslaw)

v3: Rebase.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-4-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-3-chris@chris-wilson.co.uk
(cherry picked from commit 3a85392c0ea0689d8d3ba1f9c9df5d3e32bfa517)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ic1a704788e5d64ac2232d3bb10470bb58ecb2fea
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843423
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/0b25ceb3325d8959ee7b7b6f821fbc82ac531452/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 135 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/2431dd2fb348810d7ab82291cb77714eef043320

commit 2431dd2fb348810d7ab82291cb77714eef043320
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:30 2018

UPSTREAM: drm/i915: Separate RPS and RC6 handling for VLV

This patch separates enable/disable of RC6 and RPS for VLV.

v2: Removed unnecessary comments about forcewakes while enabling
RC6/RPS. Added changes to output turbo control status for VLV in
i915_frequency_info.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-5-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-4-chris@chris-wilson.co.uk
(cherry picked from commit 0d6fc92a73e0c4dd8635268ef0ffb852986bba89)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ie93b6858dd3b0f1ae52362a3c929d420215c5e86
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843424
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/2431dd2fb348810d7ab82291cb77714eef043320/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/2431dd2fb348810d7ab82291cb77714eef043320/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 136 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e1170c527f8f03f98cf4dbb5ddb7785dafe9916f

commit e1170c527f8f03f98cf4dbb5ddb7785dafe9916f
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:33 2018

UPSTREAM: drm/i915: Separate RPS and RC6 handling for CHV

This patch separates enable/disable of RC6 and RPS for CHV.

v2: Fixed comment.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-6-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-5-chris@chris-wilson.co.uk
(cherry picked from commit d46b00dc38c8aea80357a0dd04f57c097dbfa5b9)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iea528df570a6f5a93d788668c84f2654490bdb97
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843425
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/e1170c527f8f03f98cf4dbb5ddb7785dafe9916f/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 137 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a9148916d7ac230056ec6bcba289295c0ac19035

commit a9148916d7ac230056ec6bcba289295c0ac19035
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:36 2018

UPSTREAM: drm/i915: Name i915_runtime_pm structure in dev_priv as "runtime_pm"

We were using dev_priv->pm for runtime power management related state.
This patch renames it to "runtime_pm" which looks more apt.

v2: s/rpm/runtime_pm (Chris)

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> #1
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-7-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-6-chris@chris-wilson.co.uk
(cherry picked from commit ad1443f0f3dd1b2434af897af8b8f942e47cf8c3)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I297c978fd9236ea7ebc29b62ba7cb81a3b685d70
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843426
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/a9148916d7ac230056ec6bcba289295c0ac19035/drivers/gpu/drm/i915/i915_drv.c
[modify] https://crrev.com/a9148916d7ac230056ec6bcba289295c0ac19035/drivers/gpu/drm/i915/intel_runtime_pm.c
[modify] https://crrev.com/a9148916d7ac230056ec6bcba289295c0ac19035/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/a9148916d7ac230056ec6bcba289295c0ac19035/drivers/gpu/drm/i915/intel_drv.h
[modify] https://crrev.com/a9148916d7ac230056ec6bcba289295c0ac19035/drivers/gpu/drm/i915/i915_irq.c
[modify] https://crrev.com/a9148916d7ac230056ec6bcba289295c0ac19035/drivers/gpu/drm/i915/intel_pm.c
[modify] https://crrev.com/a9148916d7ac230056ec6bcba289295c0ac19035/drivers/gpu/drm/i915/i915_gpu_error.c

Project Member

Comment 138 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/8a27e5711cbc7511d029ea532f45651bfd0e4aa6

commit 8a27e5711cbc7511d029ea532f45651bfd0e4aa6
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:38 2018

BACKPORT: drm/i915: Move rps.hw_lock to dev_priv and s/hw_lock/pcu_lock

In order to separate GT PM related functionality into new structure
we are updating rps structure. hw_lock in it is used for display
related PCU communication too hence move it to dev_priv.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-8-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-7-chris@chris-wilson.co.uk
(cherry picked from commit 9f817501bd7facfe2bffacd637f4332e5991e57a)

Conflicts:
	Nathan: context delta
	drivers/gpu/drm/i915/intel_cdclk.c

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I9aa37c527422e7df7f09f64b436c83dcac605a90
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843427
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/intel_runtime_pm.c
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/intel_sideband.c
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/intel_cdclk.c
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/i915_sysfs.c
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/i915_irq.c
[modify] https://crrev.com/8a27e5711cbc7511d029ea532f45651bfd0e4aa6/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 139 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/c6f86f1fec908785d28ed4509cb2163a3759b178

commit c6f86f1fec908785d28ed4509cb2163a3759b178
Author: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Date: Wed Feb 07 19:54:41 2018

UPSTREAM: drm/i915: Name structure in dev_priv that contains RPS/RC6 state as "gt_pm"

Prepared substructure rps for RPS related state. autoenable_work is
used for RC6 too hence it is defined outside rps structure. As we do
this lot many functions are refactored to use intel_rps *rps to access
rps related members. Hence renamed intel_rps_client pointer variables
to rps_client in various functions.

v2: Rebase.

v3: s/pm/gt_pm (Chris)
Refactored access to rps structure by declaring struct intel_rps * in
many functions.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> #1
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/1507360055-19948-9-git-send-email-sagar.a.kamble@intel.com
Acked-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171010213010.7415-8-chris@chris-wilson.co.uk
(cherry picked from commit 562d9bae08a10335368bf54ea5cc7e4f6185bccc)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Id5648c655df6cadbd07ffe90220223e6c40d32e1
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843428
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_gem.c
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_drv.c
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/intel_drv.h
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_gem_request.c
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_guc_submission.c
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_sysfs.c
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/i915_irq.c
[modify] https://crrev.com/c6f86f1fec908785d28ed4509cb2163a3759b178/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 140 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b57a60865b5453b8bd40d00e760d7400d91c4388

commit b57a60865b5453b8bd40d00e760d7400d91c4388
Author: David Weinehall <david.weinehall@linux.intel.com>
Date: Wed Feb 07 19:54:57 2018

UPSTREAM: drm/i915: Don't use GEN6_RC_VIDEO_FREQ on gen10+

GEN6_RC_VIDEO_FREQ is deprecated for >= gen10;
don't try to program it.

v2: Use IS_GEN9() instead of INTEL_GEN() and remove comment (Rodrigo)

Signed-off-by: David Weinehall <david.weinehall@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171117080146.20150-1-david.weinehall@linux.intel.com
(cherry picked from commit 36fe778a489e0461126fc657ff333522c24d5391)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iee513f37ca76b8e406fda2148aeaa8ccd037b18f
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843429
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/b57a60865b5453b8bd40d00e760d7400d91c4388/drivers/gpu/drm/i915/intel_pm.c

Project Member

Comment 141 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f883bc79202947799440b58d0c940a59550a153d

commit f883bc79202947799440b58d0c940a59550a153d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Feb 07 19:54:14 2018

UPSTREAM: drm/i915: Pin fence for iomap

Acquire the fence register for the iomap in i915_vma_pin_iomap() on
behalf of the caller.

We probably want for the caller to specify whether the fence should be
pinned for their usage, but at the moment all callers do want the
associated fence, or none, so take it on their behalf.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171009084401.29090-1-chris@chris-wilson.co.uk
(cherry picked from commit b4563f595ed44514467cfb3566b8b6519f328354)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Id91ea4b1fd35cf4356439e06d1aae5245c319749
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843430
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/f883bc79202947799440b58d0c940a59550a153d/drivers/gpu/drm/i915/i915_vma.c
[modify] https://crrev.com/f883bc79202947799440b58d0c940a59550a153d/drivers/gpu/drm/i915/i915_vma.h
[modify] https://crrev.com/f883bc79202947799440b58d0c940a59550a153d/drivers/gpu/drm/i915/selftests/i915_gem_object.c

Project Member

Comment 142 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/c7649730df65f55b03cd22b9117ee68a809f2a4e

commit c7649730df65f55b03cd22b9117ee68a809f2a4e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Feb 07 19:54:17 2018

UPSTREAM: drm/i915: Consolidate get_fence with pin_fence

Following the pattern now used for obj->mm.pages, use just pin_fence and
unpin_fence to control access to the fence registers. I.e. instead of
calling get_fence(); pin_fence(), we now just need to call pin_fence().
This will make it easier to reduce the locking requirements around
fence registers.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171009084401.29090-2-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
(cherry picked from commit 3bd4073524fa1586435725ad45ff971a6c2b2537)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ib19a9bc31afed2a3454e37886975bbdc1afefa8d
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843431
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/c7649730df65f55b03cd22b9117ee68a809f2a4e/drivers/gpu/drm/i915/i915_gem.c
[modify] https://crrev.com/c7649730df65f55b03cd22b9117ee68a809f2a4e/drivers/gpu/drm/i915/i915_vma.c
[modify] https://crrev.com/c7649730df65f55b03cd22b9117ee68a809f2a4e/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/c7649730df65f55b03cd22b9117ee68a809f2a4e/drivers/gpu/drm/i915/i915_vma.h
[modify] https://crrev.com/c7649730df65f55b03cd22b9117ee68a809f2a4e/drivers/gpu/drm/i915/i915_gem_execbuffer.c
[modify] https://crrev.com/c7649730df65f55b03cd22b9117ee68a809f2a4e/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/c7649730df65f55b03cd22b9117ee68a809f2a4e/drivers/gpu/drm/i915/i915_gem_fence_reg.c

Project Member

Comment 143 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c

commit 40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Feb 07 19:54:20 2018

UPSTREAM: drm/i915: Track user GTT faulting per-vma

We don't wish to refault the entire object (other vma) when unbinding
one partial vma. To do this track which vma have been faulted into the
user's address space.

v2: Use a local vma_offset to tidy up a multiline unmap_mapping_range().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171009084401.29090-3-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
(cherry picked from commit a65adaf8a834504a4acdc0deca7fa790771add8a)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iac1468a08d8d4a339322a1a1547d4bd72f7b95f2
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843432
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c/drivers/gpu/drm/i915/i915_gem.c
[modify] https://crrev.com/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c/drivers/gpu/drm/i915/i915_gem_evict.c
[modify] https://crrev.com/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c/drivers/gpu/drm/i915/i915_vma.c
[modify] https://crrev.com/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c/drivers/gpu/drm/i915/i915_vma.h
[modify] https://crrev.com/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c/drivers/gpu/drm/i915/i915_gem_object.h
[modify] https://crrev.com/40b3d40d943c0f7ad62fd8ad4f54a459e6f1659c/drivers/gpu/drm/i915/i915_gem_fence_reg.c

Project Member

Comment 144 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/8a1a0317d2034d79b0434d96bfde484e71185bcf

commit 8a1a0317d2034d79b0434d96bfde484e71185bcf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Feb 07 19:55:03 2018

UPSTREAM: drm/i915: Track GGTT writes on the vma

As writes through the GTT and GGTT PTE updates do not share the same
path, they are not strictly ordered and so we must explicitly flush the
indirect writes prior to modifying the PTE. We do track outstanding GGTT
writes on the object itself, but since the object may have multiple GGTT
vma, that is overly coarse as we can track and flush individual vma as
required.

Whilst here, update the GGTT flushing behaviour for Cannonlake.

v2: Hard-code ring offset to allow use during unload (after RCS may have
been freed, or never existed!)

References: https://bugs.freedesktop.org/show_bug.cgi?id=104002
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171206124914.19960-2-chris@chris-wilson.co.uk
(cherry picked from commit 7125397b82460d74ae0584bdcdc006deec5e895d)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: If412e76d829d17168ba303bdd55b705f597dff48
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843433
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/8a1a0317d2034d79b0434d96bfde484e71185bcf/drivers/gpu/drm/i915/i915_gem.c
[modify] https://crrev.com/8a1a0317d2034d79b0434d96bfde484e71185bcf/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/8a1a0317d2034d79b0434d96bfde484e71185bcf/drivers/gpu/drm/i915/i915_vma.c
[modify] https://crrev.com/8a1a0317d2034d79b0434d96bfde484e71185bcf/drivers/gpu/drm/i915/i915_vma.h

Project Member

Comment 145 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/34c6abdf267555e784d74a8afe984748809b817e

commit 34c6abdf267555e784d74a8afe984748809b817e
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Wed Feb 07 19:54:44 2018

UPSTREAM: drm/i915: Use cdclk_state->voltage on BXT/GLK

Track the system agent voltage we request from pcode in the cdclk state
on BXT/GLK. Annoyingly we can't actually read out the current value since
there's no pcode command to do that, so we'll have to just assume that
it worked.

v2: s/voltage/voltage_level/ (Rodrigo)

Cc: Mika Kahola <mika.kahola@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171024095216.1638-7-ville.syrjala@linux.intel.com
(cherry picked from commit 2123f442ca42e9dce2fcb51e8d4fd8180339b4f0)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I60168a9488188c2d6e160779f4205df94de2215f
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843434
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/34c6abdf267555e784d74a8afe984748809b817e/drivers/gpu/drm/i915/intel_cdclk.c

Project Member

Comment 146 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a08a0f6edc95402fb292ee3cd14c000db56c8d19

commit a08a0f6edc95402fb292ee3cd14c000db56c8d19
Author: Colin Ian King <colin.king@canonical.com>
Date: Wed Feb 07 19:54:09 2018

UPSTREAM: drm/i915/gvt: ensure -ve return value is handled correctly

An earlier fix changed the return type from find_bb_size however the
integer return is being assigned to a unsigned int so the -ve error
check will never be detected. Make bb_size an int to fix this.

Detected by CoverityScan CID#1456886 ("Unsigned compared against 0")

Fixes: 1e3197d6ad73 ("drm/i915/gvt: Refine error handling for perform_bb_shadow")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit 24f8a29af4afe7c53e08f4afa0c3fa9eb3791b89)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit dcd1d8302a06b0a0e5d6f9b6851fa4a5579e79b0)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ia34276f8b716e1193d552ed3692c72d262ca434a
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843435
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/a08a0f6edc95402fb292ee3cd14c000db56c8d19/drivers/gpu/drm/i915/gvt/cmd_parser.c

Project Member

Comment 147 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e3d91bfdf444ca8beb03dd5913fc3de93542b0c8

commit e3d91bfdf444ca8beb03dd5913fc3de93542b0c8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Feb 07 19:54:55 2018

UPSTREAM: drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM

Commit  21cc6431e0c2 ("drm/i915: Mark the userptr invalidate workqueue
as WQ_MEM_RECLAIM") tried to fixup the check_flush_dependency warning
for hitting i915_gem_userptr_mn_invalidate_range_start from within the
shrinker, but I failed to notice userptr has 2 similarly named
workqueues. I marked up i915-userptr-acquire as WQ_MEM_RECLAIM whereas
we only wait upon i915-userptr-release from inside the reclaim paths.

[62530.869510] workqueue: PF_MEMALLOC task 7983(gem_shrink) is flushing !WQ_MEM_RECLAIM i915-userptr-release:          (null)
[62530.869515] ------------[ cut here ]------------
[62530.869519] WARNING: CPU: 1 PID: 7983 at kernel/workqueue.c:2434 check_flush_dependency+0x7f/0x110
[62530.869519] Modules linked in: pegasus mii ip6table_filter ip6_tables bnep iptable_filter snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic binfmt_misc nls_iso8859_1 intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_intel snd_hda_codec kvm_intel snd_hda_core snd_hwdep kvm snd_pcm irqbypass snd_seq_midi snd_seq_midi_event snd_rawmidi crct10dif_pclmul crc32_pclmul 8250_dw ghash_clmulni_intel snd_seq pcbc snd_seq_device snd_timer btusb aesni_intel btrtl btbcm aes_x86_64 iwlwifi btintel crypto_simd glue_helper cryptd bluetooth snd intel_cstate input_leds idma64 intel_rapl_perf ecdh_generic serio_raw soundcore cfg80211 wmi_bmof virt_dma intel_lpss_pci intel_lpss acpi_als kfifo_buf industrialio winbond_cir soc_button_array rc_core spidev tpm_crb intel_hid acpi_pad mac_hid sparse_keymap
[62530.869546]  parport_pc ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid i915 i2c_algo_bit prime_numbers drm_kms_helper syscopyarea e1000e sysfillrect sysimgblt fb_sys_fops ahci ptp pps_core libahci drm wmi video i2c_hid hid
[62530.869557] CPU: 1 PID: 7983 Comm: gem_shrink Tainted: G     U  W    L  4.14.0-rc8-drm-tip-ww45-commit-1342299+ #1
[62530.869558] Hardware name: Intel Corporation CoffeeLake Client Platform/CoffeeLake H DDR4 RVP, BIOS CNLSFWR1.R00.X098.A00.1707301945 07/30/2017
[62530.869559] task: ffffa1049dbeec80 task.stack: ffffae7d05c44000
[62530.869560] RIP: 0010:check_flush_dependency+0x7f/0x110
[62530.869561] RSP: 0018:ffffae7d05c473a0 EFLAGS: 00010286
[62530.869562] RAX: 000000000000006e RBX: ffffa1049540f400 RCX: ffffffffa3e55788
[62530.869562] RDX: 0000000000000000 RSI: 0000000000000092 RDI: 0000000000000202
[62530.869563] RBP: ffffae7d05c473c0 R08: 000000000000006e R09: 000000000038bb0e
[62530.869563] R10: 0000000000000000 R11: 000000000000006e R12: ffffa1049dbeec80
[62530.869564] R13: 0000000000000000 R14: 0000000000000000 R15: ffffae7d05c473e0
[62530.869565] FS:  00007f621b129880(0000) GS:ffffa1050b240000(0000) knlGS:0000000000000000
[62530.869566] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[62530.869566] CR2: 00007f6214400000 CR3: 0000000353a17003 CR4: 00000000003606e0
[62530.869567] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[62530.869567] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[62530.869568] Call Trace:
[62530.869570]  flush_workqueue+0x115/0x3d0
[62530.869573]  ? wake_up_process+0x15/0x20
[62530.869596]  i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
[62530.869614]  ? i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
[62530.869616]  __mmu_notifier_invalidate_range_start+0x55/0x80
[62530.869618]  try_to_unmap_one+0x791/0x8b0
[62530.869620]  ? call_rwsem_down_read_failed+0x18/0x30
[62530.869622]  rmap_walk_anon+0x10b/0x260
[62530.869624]  rmap_walk+0x48/0x60
[62530.869625]  try_to_unmap+0x93/0xf0
[62530.869626]  ? page_remove_rmap+0x2a0/0x2a0
[62530.869627]  ? page_not_mapped+0x20/0x20
[62530.869629]  ? page_get_anon_vma+0x90/0x90
[62530.869630]  ? invalid_mkclean_vma+0x20/0x20
[62530.869631]  migrate_pages+0x946/0xaa0
[62530.869633]  ? __ClearPageMovable+0x10/0x10
[62530.869635]  ? isolate_freepages_block+0x3c0/0x3c0
[62530.869636]  compact_zone+0x22f/0x970
[62530.869638]  compact_zone_order+0xa3/0xd0
[62530.869640]  try_to_compact_pages+0x1a5/0x2a0
[62530.869641]  ? try_to_compact_pages+0x1a5/0x2a0
[62530.869643]  __alloc_pages_direct_compact+0x50/0x110
[62530.869644]  __alloc_pages_slowpath+0x4da/0xf30
[62530.869646]  __alloc_pages_nodemask+0x262/0x280
[62530.869648]  alloc_pages_vma+0x165/0x1e0
[62530.869649]  shmem_alloc_hugepage+0xd0/0x130
[62530.869651]  ? __radix_tree_insert+0x45/0x230
[62530.869652]  ? __vm_enough_memory+0x29/0x130
[62530.869654]  shmem_alloc_and_acct_page+0x10d/0x1e0
[62530.869655]  shmem_getpage_gfp+0x426/0xc00
[62530.869657]  shmem_fault+0xa0/0x1e0
[62530.869659]  ? file_update_time+0x60/0x110
[62530.869660]  __do_fault+0x1e/0xc0
[62530.869661]  __handle_mm_fault+0xa35/0x1170
[62530.869662]  handle_mm_fault+0xcc/0x1c0
[62530.869664]  __do_page_fault+0x262/0x4f0
[62530.869666]  do_page_fault+0x2e/0xe0
[62530.869667]  page_fault+0x22/0x30
[62530.869668] RIP: 0033:0x404335
[62530.869669] RSP: 002b:00007fff7829e420 EFLAGS: 00010216
[62530.869670] RAX: 00007f6210400000 RBX: 0000000000000004 RCX: 0000000000b80000
[62530.869670] RDX: 0000000000002e01 RSI: 0000000000008000 RDI: 0000000000000004
[62530.869671] RBP: 0000000000000019 R08: 0000000000000002 R09: 0000000000000000
[62530.869671] R10: 0000000000000559 R11: 0000000000000246 R12: 0000000008000000
[62530.869672] R13: 00000000004042f0 R14: 0000000000000004 R15: 000000000000007e
[62530.869673] Code: 00 8b b0 18 05 00 00 48 8d 8b b0 00 00 00 48 8d 90 c0 06 00 00 4d 89 f0 48 c7 c7 40 c0 c8 a3 c6 05 68 c5 e8 00 01 e8 c2 68 04 00 <0f> ff 4d 85 ed 74 18 49 8b 45 20 48 8b 70 08 8b 86 00 01 00 00
[62530.869691] ---[ end trace 01e01ad0ff5781f8 ]---

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103739
Fixes: 21cc6431e0c2 ("drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Micha Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171114173520.8829-1-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
(cherry picked from commit 41729bf2248bc8593e5103d43974079cc269524c)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit 457db89b538ea4eb2a188c75f8f3a83469395ee0)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ie590689527586a53aa6586cd04ca6f53f4a3ce74
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843436
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/e3d91bfdf444ca8beb03dd5913fc3de93542b0c8/drivers/gpu/drm/i915/i915_gem_userptr.c

Project Member

Comment 148 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/059c9d0a2c0b25fd06ff89124a6adf752516ba67

commit 059c9d0a2c0b25fd06ff89124a6adf752516ba67
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Feb 07 19:55:05 2018

UPSTREAM: drm/i915/fence: Use rcu to defer freeing of irq_work

It is illegal to perform an immediate free of the struct irq_work from
inside the irq_work callback (as irq_work_run_list modifies work->flags
after execution of the work->func()). As we use the irq_work to
coordinate the freeing of the callback from two different softirq paths,
we need to defer the kfree from inside our irq_work callback, for which
we can use kfree_rcu.

Fixes: 81c0ed21aa91 ("drm/i915/fence: Avoid del_timer_sync() from inside a timer")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171213094802.28243-1-chris@chris-wilson.co.uk
(cherry picked from commit 7d622351c94172a42bfe9b13bdb0fdc2be90ed3b)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I8724ce6a27fcf97267f9e9768eb0c61c7a1ede47
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843437
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/059c9d0a2c0b25fd06ff89124a6adf752516ba67/drivers/gpu/drm/i915/i915_sw_fence.c

Project Member

Comment 149 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/89f82eec476516f51164f980806c3f4f6cc8c9af

commit 89f82eec476516f51164f980806c3f4f6cc8c9af
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Feb 07 19:54:12 2018

UPSTREAM: drm/i915/selftests: Remember to create the fake preempt context

For the fake device we have our own set of mock contexts that need to
match the real contexts we normally create. Currently this requires us
to manually instantiate them for the selftests, which I forgot.

Reported-by: Matthew Auld <matthew.william.auld@gmail.com>
Fixes: e7af3116836f ("drm/i915: Introduce a preempt context")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Micha Winiarski <michal.winiarski@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171005105927.22991-1-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com>
(cherry picked from commit e91ef99b95439fc634e9c9753887d363a848f452)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I40f11f6b66cf0f94bffaa56523b1e61100bcfa42
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843439
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/89f82eec476516f51164f980806c3f4f6cc8c9af/drivers/gpu/drm/i915/selftests/mock_gem_device.c

Project Member

Comment 150 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ddd27534d9eb07938cc2f86bdba83a20fafc36d7

commit ddd27534d9eb07938cc2f86bdba83a20fafc36d7
Author: Xiong Zhang <xiong.y.zhang@intel.com>
Date: Wed Feb 07 19:54:49 2018

UPSTREAM: drm/i915/gvt: Limit read hw reg to active vgpu

mmio_read_from_hw() let vgpu could read hw reg, if vgpu's workload
is running on hw, things is good. Otherwise vgpu will get other
vgpu's reg val, it is unsafe.

This patch limit such hw access to active vgpu. If vgpu isn't
running on hw, the reg read of this vgpu will get the last active
val which saved at schedule_out.

v2: ring timestamp is walking continuously even if the ring is idle.
    so read hw directly. (Zhenyu)

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit 295764cd2ff41e2c1bc8af4050de77cec5e7a1c0)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iefc1bbe45cbca0aeefac97dd36b0029b2160c7c0
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843440
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/ddd27534d9eb07938cc2f86bdba83a20fafc36d7/drivers/gpu/drm/i915/gvt/scheduler.c
[modify] https://crrev.com/ddd27534d9eb07938cc2f86bdba83a20fafc36d7/drivers/gpu/drm/i915/gvt/handlers.c

Project Member

Comment 151 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d36d011c046a475216b61aba4df246c210ba96e7

commit d36d011c046a475216b61aba4df246c210ba96e7
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
Date: Wed Feb 07 19:55:00 2018

UPSTREAM: drm/i915/gvt: Don't mark vgpu context as inactive when preempted

We shouldn't mark inactive for vGPU context if preempted,
which would still be re-scheduled later. So keep active state.

Fixes: d6c0511300dc ("drm/i915/execlists: Distinguish the incomplete context notifies")
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
(cherry picked from commit da5f99eaccc10e30bf82eb02b1be74703b878720)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Iba72ca3f29f0f57d5c2e8c5f3cc0fda520ce8c44
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843441
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/d36d011c046a475216b61aba4df246c210ba96e7/drivers/gpu/drm/i915/gvt/scheduler.c

Project Member

Comment 152 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/3dfbcb31a77de665b247d9b312e8c39e6893f02d

commit 3dfbcb31a77de665b247d9b312e8c39e6893f02d
Author: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Date: Wed Feb 07 19:55:08 2018

UPSTREAM: drm/i915/cnl: Add support for horizontal plane flipping

CNL supports horizontal plane flipping on non-linear plane formats.

v2:
- Avoid BUG unlike elsewhere in the code (Ville)
- Hoist the rotation-tiling restriction check (Ville)

v3 (Rodrigo):
- Rebased after a while.
- Fix small indentation issues.

Bspec: 7656
Suggested-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171215213800.7896-1-rodrigo.vivi@intel.com
(cherry picked from commit 5f8e3f57acf9f28bda1b91545fb204c29f39cc6d)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Icc41efdcf7a009b47d57078dd197cbf084b1b4a5
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843442
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/3dfbcb31a77de665b247d9b312e8c39e6893f02d/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/3dfbcb31a77de665b247d9b312e8c39e6893f02d/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 153 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/76352bb55886cca3cddff5cabb75627bc8fe6166

commit 76352bb55886cca3cddff5cabb75627bc8fe6166
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Wed Feb 07 19:55:11 2018

UPSTREAM: drm/i915: Protect DDI port to DPLL map from theoretical race.

In case we have multiple modesets for different connectors
happening in parallel we could have a race on the RMW on these
shared registers.

This possibility was initially raised by Paulo when reviewing
commit '555e38d27317 ("drm/i915/cnl: DDI - PLL mapping")'
but the original possibility comes from commit '5416d871136d
("drm/i915/skl: Set the eDP link rate on DPLL0")'. Or maybe
later when atomic commits entered into picture.

Apparently the discussion around this topic showed that the
right solution would be on serializing the atomic commits in
a way that we don't have the possibility of races here since
if that parallel modeset happenings apparently many other
things will be on fire.

Code is there since SKL and there was no report of issue,
but since we never looked back to that serialization possibility,
and also we don't have an igt case for that it is better to at
least protect this corner.

Suggested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Fixes: 555e38d27317 ("drm/i915/cnl: DDI - PLL mapping")
Fixes: 5416d871136d ("drm/i915/skl: Set the eDP link rate on DPLL0")
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst maarten.lankhorst@linux.intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Maarten Lankhorst maarten.lankhorst@linux.intel.com
Link: https://patchwork.freedesktop.org/patch/msgid/20171215224310.19103-1-rodrigo.vivi@intel.com
(cherry picked from commit 8edcda1266f93816fde77c9754f388ae0ae343fc)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I7027097de9ad284f9c5974b54dea15f5f9815d1c
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843443
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/76352bb55886cca3cddff5cabb75627bc8fe6166/drivers/gpu/drm/i915/intel_ddi.c

Project Member

Comment 154 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/eb554711ce35ce25741928b93c9c121388bcfaa2

commit eb554711ce35ce25741928b93c9c121388bcfaa2
Author: Rafael Antognolli <rafael.antognolli@intel.com>
Date: Wed Feb 07 19:55:13 2018

UPSTREAM: drm/i915: Implement WaDisableVFclkgate.

This workaround supposedly fixes some hangs in the VF unit.

Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171216001117.14232-1-rafael.antognolli@intel.com
(cherry picked from commit 01ab0f9216070f3337b3da8953a259072f5bd4f7)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I5be1159c95696b1a38ee5e1ef96dd8fccfca8810
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843444
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/eb554711ce35ce25741928b93c9c121388bcfaa2/drivers/gpu/drm/i915/intel_pm.c
[modify] https://crrev.com/eb554711ce35ce25741928b93c9c121388bcfaa2/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 155 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/dc5cfdd24a301ef943f04a4bd3a7d80716131a61

commit dc5cfdd24a301ef943f04a4bd3a7d80716131a61
Author: Rafael Antognolli <rafael.antognolli@intel.com>
Date: Wed Feb 07 19:55:16 2018

UPSTREAM: drm/i915: Implement WaDisableEarlyEOT.

There seems to be another clock gating issue which the workaround is
described as:

   "WA: Set 0xE4F0[1] = 1 to disable Early EOT of thread."

Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171216001117.14232-2-rafael.antognolli@intel.com
(cherry picked from commit a2b16588578f8edd0e39c7a6554b047b13e8ca79)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I68953a827360da67b441b506c9bc8f3e46c58641
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/843445
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/dc5cfdd24a301ef943f04a4bd3a7d80716131a61/drivers/gpu/drm/i915/intel_engine_cs.c
[modify] https://crrev.com/dc5cfdd24a301ef943f04a4bd3a7d80716131a61/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 156 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/fa8cce6e18fd88cc3a4a37a777c9652f5ffa2b23

commit fa8cce6e18fd88cc3a4a37a777c9652f5ffa2b23
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date: Wed Feb 07 19:54:06 2018

UPSTREAM: drm/i915: Always wait for flip_done, v2.

The next commit removes the wait for flip_done in in
drm_atomic_helper_commit_cleanup_done, but we need it for the tests
to pass. Instead of using complicated vblank tracking which ends
up being ignored anyway, call the correct atomic helper. :)

Changes since v1:
- Always call drm_atomic_helper_wait_for_flip_done,
  even for legacy cursor updates. (danvet)

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170904104838.23822-2-maarten.lankhorst@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit b44d5c0c105aa84b46caff9fdd606dc9a7b86419)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I329259e1e485cde121f796ed9e5f491377a68d1c
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/900084
Tested-by: Abhijeet Kumar <abhijeet.kumar@intel.corp-partner.google.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/fa8cce6e18fd88cc3a4a37a777c9652f5ffa2b23/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/fa8cce6e18fd88cc3a4a37a777c9652f5ffa2b23/drivers/gpu/drm/i915/i915_drv.h

Project Member

Comment 157 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/3357750613279e022c7601e696dd4974dc02fbb7

commit 3357750613279e022c7601e696dd4974dc02fbb7
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date: Wed Feb 07 19:54:47 2018

UPSTREAM: drm/atomic: Try to preserve the crtc enabled state in drm_atomic_remove_fb, v2.

This introduces a slight behavioral change to rmfb. Instead of
disabling a crtc when the primary plane is disabled, we try to
preserve it.

Apart from old versions of the vmwgfx xorg driver, there is
nothing depending on rmfb disabling a crtc.

Vmwgfx' and simple kms helper atomic implementation rejects CRTC
enabled without plane, so we can do this safely.

If the atomic commit is rejected by the driver then we will still
fall back to the old behavior and turn off the crtc.

Changes since v1:
- Restart completely when rmfb with crtc on fails (Sean Paul).

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171101150433.10777-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit 846c7dfc1193eb2f9866fe2fa0ae7d45c72f95b9)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: Ib5a4a8fa1cc0d8c5097fa7ca3e0b34c07d470d8f
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/900085
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/3357750613279e022c7601e696dd4974dc02fbb7/drivers/gpu/drm/drm_framebuffer.c

Project Member

Comment 158 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1ce12c965f89cfba51760a503983280d01ab00d1

commit 1ce12c965f89cfba51760a503983280d01ab00d1
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Wed Feb 07 19:54:52 2018

UPSTREAM: drm/atomic-helper: always track connector commits, too

It's useful for syncing async connector work like link retraining.

v2: Make it work (Manasi&Ville)

Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171110105313.16718-1-daniel.vetter@ffwll.ch
(cherry picked from commit 1f2d9bdc9085a4477a997344b17c40ba2a28d4e4)

BUG=chromium:783394
TEST=CNL boots to graphics

Change-Id: I9f7dab95dcd41d919f09319be340bca49ab05d2d
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/900086
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/1ce12c965f89cfba51760a503983280d01ab00d1/drivers/gpu/drm/drm_atomic_helper.c

Project Member

Comment 159 by bugdroid1@chromium.org, Feb 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b9014010a4ab69e5bff6d09f1b60bac2ec164828

commit b9014010a4ab69e5bff6d09f1b60bac2ec164828
Author: Zhi Wang <zhi.a.wang@intel.com>
Date: Fri Feb 09 10:19:56 2018

UPSTREAM: drm/i915/gvt: Export intel_gvt_render_mmio_to_ring_id()

Since many emulation logic needs to convert the offset of ring registers
into ring id, we export it for other caller which might need it.

Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
(cherry picked from commit 62a6a53786fc4b4e7543cc63b704dbb3f7df4c0f)
(cherry picked from commit 365ad5df9caa1a7ebc73b8d70ab94bbf6a74268a)

Fixes: Change-Id:Iefc1bbe45cb
	"UPSTREAM: drm/i915/gvt: Limit read hw reg to active vgpu"

BUG=chromium:783394, chromium:810530
TEST='make allmodconfig' successful and device boots to graphics

Change-Id: I906a02bb7c33c7f5066536309b4ac90450834416
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/909991
Commit-Ready: Guenter Roeck <groeck@chromium.org>
Tested-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/b9014010a4ab69e5bff6d09f1b60bac2ec164828/drivers/gpu/drm/i915/gvt/mmio.h
[modify] https://crrev.com/b9014010a4ab69e5bff6d09f1b60bac2ec164828/drivers/gpu/drm/i915/gvt/handlers.c

Project Member

Comment 160 by bugdroid1@chromium.org, Aug 3

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/31b907e75e2a67f19803f73958a1ff5112d526ca

commit 31b907e75e2a67f19803f73958a1ff5112d526ca
Author: Mahesh Kumar <mahesh1.kumar@intel.com>
Date: Fri Aug 03 00:58:28 2018

BACKPORT: drm/i915/gen9+: Add has_ipc flag in device info structure

New Isochronous Priority Control (IPC) capability is introduced in newer
GEN platforms. This patch adds a device info flag to indicate if platform
supports IPC. Patch also sets this flag in supported platforms.

Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170817134529.2839-7-mahesh1.kumar@intel.com
(cherry picked from commit  e57f1c02155f4f108b9d3ba2bed687e8e9f95e18
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Original-Change-Id: Iddd41feae4618468a68b8ffec378d01d7eb25bc0
Reviewed-on: https://chromium-review.googlesource.com/782914
Commit-Ready: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stphane Marchesin <marcheu@chromium.org>
(cherry picked from commit 0b79608f971336931a33f6593bc35baa0c2cebba)

Backport: i915 driver is refactored in between 4.4 and 4.14
          Change it back to 4.4 format

BUG=b:68012237, b:65096022
TEST=Pass psr2 test in go/eve-psr2-repro
1. no flicker when run this script on right half of the screen
for i in {1..999}; do
  echo $(cat /dev/urandom | tr -cd [:alnum:] | head -c $(($i * 31 % 13 + 15))) $i
  sleep 0.205
done
2. test_that IP cheets_CTS_N.x86.CtsMonkeyTestCases

Change-Id: Ib5dc56890d962a63960411ab1a1b7b7322de3d03
Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1006160
Reviewed-by: Todd Broch <tbroch@chromium.org>

[modify] https://crrev.com/31b907e75e2a67f19803f73958a1ff5112d526ca/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/31b907e75e2a67f19803f73958a1ff5112d526ca/drivers/gpu/drm/i915/i915_pci.c

Project Member

Comment 161 by bugdroid1@chromium.org, Aug 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ea00a56b6ad71704bbd19919ea00f2f50f13b8f3

commit ea00a56b6ad71704bbd19919ea00f2f50f13b8f3
Author: Kumar, Mahesh <mahesh1.kumar@intel.com>
Date: Fri Aug 03 00:58:30 2018

UPSTREAM: drm/i915/bxt+: Enable IPC support

This patch adds IPC support. This patch also enables IPC in all supported
platforms based on has_ipc flag.
IPC (Isochronous Priority Control) is the hardware feature, which
dynamically controls the memory read priority of Display.

When IPC is enabled, plane read requests are sent at high priority until
filling above the transition watermark, then the requests are sent at
lower priority until dropping below the level 0 watermark.
The lower priority requests allow other memory clients to have better
memory access. When IPC is disabled, all plane read requests are sent at
high priority.

Changes since V1:
 - Remove commandline parameter to disable ipc
 - Address Paulo's comments
Changes since V2:
 - Address review comments
 - Set ipc_enabled flag
Changes since V3:
 - move ipc_enabled flag assignment inside intel_ipc_enable function
Changes since V4:
 - Re-enable IPC after suspend/resume
Changes since V5:
 - Enable IPC for all gen >=9 except SKL
Changes since V6:
 - fix commit msg
 - after resume program IPC based on SW state.
Changes since V7:
 - Modify IPC support check based on HAS_IPC macro (suggested by Chris)

Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170817134529.2839-8-mahesh1.kumar@intel.com
(cherry picked from commit  2503a0fef214ddadfdf5844d62453591de35586f
git://anongit.freedesktop.org/drm-intel drm-intel-next-queued)
Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>

BUG=chromium:783394
TEST=CNL boots to graphics

Original-Change-Id: Iacc0a85c7e2c89232d2709955bdc678b86a702c7
Reviewed-on: https://chromium-review.googlesource.com/782915
Commit-Ready: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Stphane Marchesin <marcheu@chromium.org>
(cherry picked from commit 482393ebc83d1bb0779e5ed4e1c76758ece1b369)

BUG=b:68012237, b:65096022
TEST=Pass psr2 test in go/eve-psr2-repro
1. no flicker when run this script on right half of the screen
for i in {1..999}; do
  echo $(cat /dev/urandom | tr -cd [:alnum:] | head -c $(($i * 31 % 13 + 15))) $i
  sleep 0.205
done
2. test_that IP cheets_CTS_N.x86.CtsMonkeyTestCases

Change-Id: If85e12d714747a3d73e6344594a03226ffa4acb8
Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1006161

[modify] https://crrev.com/ea00a56b6ad71704bbd19919ea00f2f50f13b8f3/drivers/gpu/drm/i915/intel_display.c
[modify] https://crrev.com/ea00a56b6ad71704bbd19919ea00f2f50f13b8f3/drivers/gpu/drm/i915/i915_drv.c
[modify] https://crrev.com/ea00a56b6ad71704bbd19919ea00f2f50f13b8f3/drivers/gpu/drm/i915/intel_pm.c
[modify] https://crrev.com/ea00a56b6ad71704bbd19919ea00f2f50f13b8f3/drivers/gpu/drm/i915/i915_reg.h
[modify] https://crrev.com/ea00a56b6ad71704bbd19919ea00f2f50f13b8f3/drivers/gpu/drm/i915/intel_drv.h

Showing comments 62 - 161 of 161 Older

Sign in to add a comment