New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 870499 link

Starred by 4 users

Issue metadata

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



Sign in to add a comment

PSR1: backport the remaining PSR1 upstream kernel patches

Reported by nathan.d...@intel.com, Aug 2

Issue description

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

Steps to reproduce the problem:
The PSR1 implementation in the chromeos-4.4 kernel is currently incomplete and needs the latest i915 patches to bring it in-line with the upstream solution. 

What is the expected behavior?
PSR1 should be stable and provide power savings benefits without regressions.

What went wrong?
At the time the soraka project was released the PSR1 feature was incomplete upstream and thus only partially backported.

Did this work before? N/A 

Chrome version: 68.0.3440.75  Channel: dev
OS Version: R70+
Flash Version:
 
Components: OS>Kernel
Cc: bleung@chromium.org marc...@chromium.org matthew....@intel.com puthik@google.com dbehr@chromium.org
Components: -OS>Kernel OS>Kernel>Graphics
Labels: M-71
Owner: bleung@chromium.org
Status: Assigned (was: Unconfirmed)
Labels: ReleaseBlock-Beta
Let's land this change, and pick it back to M-71 for nocturne PSR1 debugging.
Hi, was this identified in M68?  If so, it's not a beta blocker for M71 and I'd like to remove that label.
Cc: djaklich@chromium.org
Kevin: We are chasing several critical PSR (panel self refresh) issues on Nocturne, which has a new PSR panel and has various challenges. 

The extra debugging in this patch series is what we're after actually, in order to make progress on a couple of critical issues. If you say we can't do it and it'll have to wait, we're resigned to ship 71 with PSR1 bugs we can't debug.
Project Member

Comment 8 by bugdroid1@chromium.org, Nov 1

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/83beb2bb7713f99a21c3ee6a926d3650a92713b3

commit 83beb2bb7713f99a21c3ee6a926d3650a92713b3
Author: Mika Kahola <mika.kahola@intel.com>
Date: Thu Nov 01 04:59:40 2018

UPSTREAM: drm/i915: Fold IRQ pipe masks

Fold IRQ pipe masks into one loop instead of hardcoding per pipe.

Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Signed-off-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1507630626-23806-4-git-send-email-mika.kahola@intel.com
(cherry picked from commit 0a195c02942236c977703023c024b75f5bb6b254)
from v4.14-rc2

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 1

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

commit e74272c70ba0d1df14f01dc5f356f236853bf1da
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date: Thu Nov 01 09:16:49 2018

BACKPORT: drm/i915: Move display related definitions to dedicated header

We already have separate files for display related code, there
is no reason to keep all display definitions in master header.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171221185334.17396-3-michal.wajdeczko@intel.com
[ickle: quieten checkpatch]
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171221215735.30314-2-chris@chris-wilson.co.uk

(cherry picked from commit 09a28bd9e8024d1b5b7b9a3bbbf82f01a7c72b51)
from v4.15-rc2

Conflicts:
	[Moved definitions in the context of the chromeos-4.4 base and
	intentionally ignored changes that were merged upstream between
	the chromeos-4.4 version of these files and the 09a28bd9e802
	commit - this means that any future backports in this range
	will have to add their definitions to the intel_display.h
	file instead of i915_drv.h. Most of these changes that were ignored
	had to do with GLK which is a noop for chromeos-4.4 kernel. (Nathan)]
	drivers/gpu/drm/i915/i915_drv.h
	drivers/gpu/drm/i915/intel_display.h

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I657cc62c78f8f9cb9dbcf1df5ce8a8e204ec658d
Reviewed-on: https://chromium-review.googlesource.com/1187461
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

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

Project Member

Comment 10 by bugdroid1@chromium.org, Nov 1

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

commit 104c117aaab797f132c9981a06540d80e56b6422
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:16:51 2018

UPSTREAM: drm/i915/psr: Comment to clarify SRD_DEBUG is called PSR_MASK SKL+

What was called SRD_DEBUG(0x6F860) on HSW and BDW was renamed to PSR_MASK
SKL onwards, add a note next to the macro definition.
There is also a different PSR_DEBUG on SKL+ to add to the confusion.

Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180313040954.6289-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit 62801bf615679293957ecdf37cc093a18158a201)
from v4.16-rc1

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 1

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

commit 7b8fd8f3d6304362b208bdbdcae086bc042118b1
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Thu Nov 01 09:16:53 2018

BACKPORT: drm/i915: Enable GSE interrupt on BDW+

We've never actually enabled or unmasked the GSE interrupt on BDW+,
even though the interrupt handler was always prepared for it.
Let's enable it and see what happens.

Credit to Mark Kettenis who fixed this in the OpenBSD fork of the
driver. He reports that it fixed the "ACPI _BCM/_BCQ-based
brightness mechanism on a MacBookPro12,1 and a 3rd gen Lenovo X1
Carbon" for them.

Mark says:
"FWIW, this *is* needed if you want ACPI-based backlight control to
 work.  On Linux you probably don't notice, since "hardware" backlight
 control is preferred over "firmware" or "platform" backlight control.

 It would help me if this did land in the Linux tree though, as it will
 make future imports of the i915 driver into OpenBSD easier."

So even though we don't really need this, let's put it in to help Mark
with future porting efforts. Should be harmless to have it enabled in
any case.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
References: http://lists.freedesktop.org/archives/intel-gfx/2015-December/081799.html
Reported-by: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1463649283-28698-1-git-send-email-ville.syrjala@linux.intel.com
Acked-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit 11825b0dba78b2f26a6ff9a6acb5d5b6b186e741)
from v4.6-rc7

Conflicts:
	[Context delta]
	drivers/gpu/drm/i915/i915_irq.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I4506d55746b5307065edbf4f850d39f56788e27a
Reviewed-on: https://chromium-review.googlesource.com/1187463
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

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

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 1

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

commit e22568daf7b7b0d2af183a3a849ef4073ecb626c
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Thu Nov 01 09:16:52 2018

BACKPORT: drm/i915: s/GEN5/GEN3/

The GEN5_IRQ_RESET/INIT macros are perfectly suitable even for
gen3/4 hardware as those have 32 bit interrupt registers. Let's
rename the macros to reflect that fact.

Gen2 on the other hand has 16 bit interrupt registers so these
macros aren't really appropriate there.

v2: Fix patch subject (Maarten)

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170818183705.27850-4-ville.syrjala@linux.intel.com
(cherry picked from commit 3488d4eb43aaf63bc4db7d878b106f73de547d7a)
from v4.13-rc5

Conflicts:
	]Renamed GEN5_IRQ_INIT to GEN3_IRQ_INIT to avoid
	the long dependency chain of the unrelated conflicts (Nathan)]
	drivers/gpu/drm/i915/i915_irq.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I123c32b0bd33a6a6f11456ad791cecfcf04421e5
Reviewed-on: https://chromium-review.googlesource.com/1187464
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

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

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 1

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

commit 3a3f650ef5317d0f4ce72489668a36565e6c918b
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Thu Nov 01 09:16:54 2018

UPSTREAM: drm/i915: Enable edp psr error interrupts on hsw

The definitions for the error register should be valid on bdw/skl too,
but there we haven't even enabled DE_MISC handling yet.

Somewhat confusing the the moved register offset on bdw is only for
the _CTL/_AUX register, and that _IIR/IMR stayed where they have been
on bdw.

v2: Fixes from Ville.

v3: From DK
 * Rebased on drm-tip
 * Removed BDW IIR bit definition, looks like an unintentional change that
should be in the following patch.

v4: From DK
 * Don't mask REG_WRITE.

References: bspec/11974 [SRD Interrupt Bit Definition DevHSW]
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Jose Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180405220023.9449-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit fc34044248b611ea3f8b6e55b4ed404192a4f295)
from v4.16-rc7

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 14 by bugdroid1@chromium.org, Nov 1

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

commit f1069f99d9da5a7b221eda242af3868d0ed9385d
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Thu Nov 01 09:16:55 2018

BACKPORT: drm/i915: Enable edp psr error interrupts on bdw+

Plug in the bdw+ irq handling for PSR interrupts. bdw+ supports psr on
any transcoder in theory, though the we don't currenty enable PSR except
on the EDP transcoder.

v2: From DK
 * Rebased on drm-tip
v3: Switched author to Ville based on IRC discussion.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Jose Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180403212420.25007-2-dhinakaran.pandiyan@intel.com
(cherry picked from commit e04f7ece1c4530b4f0db182b5596fadf48628f22)
from v4.16-rc7

Conflicts:
	[Minor context delta (Nathan)].
	drivers/gpu/drm/i915/i915_irq.c
	drivers/gpu/drm/i915/intel_display.h

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: Ia313500ffccb0e3bf1764b961ac1ccdf6e0765c9
Reviewed-on: https://chromium-review.googlesource.com/1187466
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

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

Project Member

Comment 15 by bugdroid1@chromium.org, Nov 1

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

commit 61ada653aacf77990541a020d54446279ac78efc
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:16:57 2018

BACKPORT: drm/i915/psr: Control PSR interrupts via debugfs

Interrupts other than the one for AUX errors are required only for debug,
so unmask them via debugfs when the user requests debug.

User can make such a request with
echo 1 > <DEBUG_FS>/dri/0/i915_edp_psr_debug

There are no locks to serialize PSR debug enabling from
irq_postinstall() and debugfs for simplicity. As irq_postinstall() is
called only during module initialization/resume and IGT subtests
aren't expected to modify PSR debug at those times, we should be safe.

v2: Unroll loops (Ville)
    Avoid resetting error mask bits.

v3: Unmask interrupts in postinstall() if debug was still enabled.
    Avoid RMW (Ville)

v4: Avoid extra IMR write introduced in the previous version.(Jose)
    Style changes, renames (Jose).

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Jose Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180405013717.24254-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit 54fd3149598cc2f74cf0708d614470da2331a374)
from v4.16-rc7

Conflicts:
	[Context delta (Nathan)]
	drivers/gpu/drm/i915/i915_debugfs.c
	drivers/gpu/drm/i915/intel_drv.h

	[Did not take the AUX IOs introduce by b891d5e46c96 as
	those are noop for <=GEN9 (Nathan)]
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I3c3d8161eb1f15b684477e8b0ec01bb86aec0a2c
Reviewed-on: https://chromium-review.googlesource.com/1187467
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

[modify] https://crrev.com/61ada653aacf77990541a020d54446279ac78efc/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/61ada653aacf77990541a020d54446279ac78efc/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/61ada653aacf77990541a020d54446279ac78efc/drivers/gpu/drm/i915/intel_drv.h
[modify] https://crrev.com/61ada653aacf77990541a020d54446279ac78efc/drivers/gpu/drm/i915/intel_psr.c
[modify] https://crrev.com/61ada653aacf77990541a020d54446279ac78efc/drivers/gpu/drm/i915/i915_irq.c

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 1

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

commit 5f39b85ede0ceb99f1299995e40ca70c2d31be72
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:16:58 2018

BACKPORT: drm/i915/psr: Timestamps for PSR entry and exit interrupts.

Timestamps are useful for IGT tests that trigger PSR exit and/or wait for
PSR entry.

v2: Removed seqlock (Ville)
    Removed erroneous warning in irq loop (Chris)

Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Jose Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180403212420.25007-4-dhinakaran.pandiyan@intel.com
(cherry picked from commit 3f983e54fdad452582843b9fbc22df0eb67daacd)
from v4.16-rc7

No conflicts but added the conversion ktime_to_ns in i915_edp_psr_status()
to silence the compiler. This is caused by ktime_t being defined
as a union with one member, tv64 of type s64, in chromeos-4.4. In the upstream
code ktime_t was redefined as a type s64 and the union was nuked:
2456e8553544 "ktime: Get rid of the union" but backporting that is out-of-scope (Nathan).

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I1574637229878b0e8ccf1c039301253fc9360c42
Reviewed-on: https://chromium-review.googlesource.com/1187468
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

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

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 1

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

commit 42292da7b91b28d8df0cdf4d061080be25e0c507
Author: José Roberto de Souza <jose.souza@intel.com>
Date: Thu Nov 01 09:16:59 2018

UPSTREAM: drm/i915/psr/skl+: Print information about what caused a PSR exit

This will be helpful to debug what hardware is actually tracking
and causing PSR to exit.

BSpec: 7721

v4:
- Using _MMIO_TRANS2() in PSR_EVENT
- Cleaning events before printing

Signed-off-by: Jos Roberto de Souza <jose.souza@intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@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/20180425212334.21109-2-jose.souza@intel.com
(cherry picked from commit bc18b4df0fcb9fa4a50a19576723f14bfdd10c26)
from v4.16-rc7

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/42292da7b91b28d8df0cdf4d061080be25e0c507/drivers/gpu/drm/i915/i915_reg.h
[modify] https://crrev.com/42292da7b91b28d8df0cdf4d061080be25e0c507/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 18 by bugdroid1@chromium.org, Nov 1

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

commit e911c49a141b8ebd56264ba4dcd17f3d4417ac6d
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date: Thu Nov 01 09:17:00 2018

BACKPORT: drm/i915: disable PSR by default on HSW/BDW

We've been ignoring the poor bugzilla reporters that say PSR causes
system lockups and all other sorts of problems. The earliest bug
report is from April, so I think we can use the "revert the offending
commit if no fixes are presented within 8 months" rule here.

Fixes: 9b58e352b463 ("drm/i915: Enable PSR by default on Haswell and Broadwell.")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97602
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97515
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96736
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96704
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96569
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95176
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94985
Cc: <stable@vger.kernel.org> # v4.6+
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jim Bride <jim.bride@linux.intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1481662664-18986-1-git-send-email-paulo.r.zanoni@intel.com
(cherry picked from commit 2ee7dc497e348eecbb82adbb1ea9e9a7e29fe921)
from v4.9-rc4

This is noop on chromeos-4.4 as it is not used on HSW or BDW chromebooks
and it's needed to resolve a backport conflict with
"BACKPORT: drm/i915/psr: Check if VBT says PSR can be enabled." (Nathan)

Conflicts:
	[Context delta (Nathan)]
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 1

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

commit 0f10ca0594686130b71b38f453242a156b24a568
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:01 2018

BACKPORT: drm/i915/psr: Check if VBT says PSR can be enabled.

Driver features data block has a boolean flag for PSR, use this to decide
whether PSR should be enabled on a platform. The module parameter can
still be used to override this.

Note: The feature currently remains disabled by default for all platforms
irrespective of what VBT says.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180509003524.3199-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit 2bdd045e3a30f7ddda1604f835df9c8d14d6d048)
from v4.17-rc3

Conflicts:
	[Did not use the i915 rename patch 4f044a88a86a (Nathan)]
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I39d08b8a9a8f72e83bd669af570794b7c0ffbe5d
Reviewed-on: https://chromium-review.googlesource.com/1187471
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

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

Project Member

Comment 20 by bugdroid1@chromium.org, Nov 1

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

commit fbfbfc96557bd2a304b45071e12e4cf4dd21e5b6
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:03 2018

BACKPORT: drm/i915/psr: Nuke PSR support for VLV and CHV

PSR hardware and hence the driver code for VLV and CHV deviates a lot from
their DDI counterparts. While the feature has been disabled for a long time
now, retaining support for these platforms is a maintenance burden. There
have been multiple refactoring commits to just keep the existing code for
these platforms in line with the rest. There are known issues that need to
be fixed to enable PSR on these platforms, and there is no PSR capable
platform in CI to ensure the code does not break again if we get around to
fixing the existing issues. On account of all these reasons, let's nuke
this code for now and bring it back if a need arises in the future.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180511230059.19387-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit ce3508fd2a778e9366ab638f4e1dbe6dab874c5b)
from v4.17-rc3

Took this patch to remove a lot of PSR dead code (Nathan)

Conflicts:
	[Removed .has_psr=1 from VLV_FEATURES instead of
	resolving dependencies all the way back to eb6f771b4989 (Nathan)]
	drivers/gpu/drm/i915/i915_pci.c

	[Context delta (Nathan)]
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/fbfbfc96557bd2a304b45071e12e4cf4dd21e5b6/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/fbfbfc96557bd2a304b45071e12e4cf4dd21e5b6/drivers/gpu/drm/i915/i915_drv.h
[modify] https://crrev.com/fbfbfc96557bd2a304b45071e12e4cf4dd21e5b6/drivers/gpu/drm/i915/intel_psr.c
[modify] https://crrev.com/fbfbfc96557bd2a304b45071e12e4cf4dd21e5b6/drivers/gpu/drm/i915/intel_drv.h
[modify] https://crrev.com/fbfbfc96557bd2a304b45071e12e4cf4dd21e5b6/drivers/gpu/drm/i915/i915_pci.c
[modify] https://crrev.com/fbfbfc96557bd2a304b45071e12e4cf4dd21e5b6/drivers/gpu/drm/i915/intel_frontbuffer.c

Project Member

Comment 21 by bugdroid1@chromium.org, Nov 1

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

commit b74c6fbe44aaefa4458453916c8d4e9b54e2ec29
Author: Jani Nikula <jani.nikula@intel.com>
Date: Thu Nov 01 09:17:04 2018

UPSTREAM: drm/i915/edp: read edp display control registers unconditionally

Per my reading of the eDP spec, DP_DPCD_DISPLAY_CONTROL_CAPABLE bit in
DP_EDP_CONFIGURATION_CAP should be set if the eDP display control
registers starting at offset DP_EDP_DPCD_REV are "enabled". Currently we
check the bit before reading the registers, and DP_EDP_DPCD_REV is the
only way to detect eDP revision.

Turns out there are (likely buggy) displays that require eDP 1.4+
features, such as supported link rates and link rate select, but do not
have the bit set. Read the display control registers
unconditionally. They are supposed to read zero anyway if they are not
supported, so there should be no harm in this.

This fixes the referenced bug by enabling the eDP version check, and
thus reading of the supported link rates. The panel in question has 0 in
DP_MAX_LINK_RATE which is only supported in eDP 1.4+. Without the
supported link rates method we default to RBR which is insufficient for
the panel native mode. As a curiosity, the panel also has a bogus value
of 0x12 in DP_EDP_DPCD_REV, but that passes our check for >= DP_EDP_14
(which is 0x03).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103400
Reported-and-tested-by: Nicolas P. <issun.artiste@gmail.com>
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Cc: stable@vger.kernel.org
Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171026142932.17737-1-jani.nikula@intel.com
(cherry picked from commit 0501a3b0eb01ac2209ef6fce76153e5d6b07034e)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
(cherry picked from commit 7c838e2a9be5ab79b11c7f1520813bfdf0f45462)
from v4.14-rc7

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/b74c6fbe44aaefa4458453916c8d4e9b54e2ec29/drivers/gpu/drm/i915/intel_dp.c

Project Member

Comment 22 by bugdroid1@chromium.org, Nov 1

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

commit e80968f33f21f12bce749a22e76564ed09df3f3e
Author: Jani Nikula <jani.nikula@intel.com>
Date: Thu Nov 01 09:17:05 2018

UPSTREAM: drm/i915/edp: clean up code and comments around eDP DPCD read

Some minor drive-by cleanups.

Reviewed-by: Ville Syrjl <ville.syrjala@linux.intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171026142932.17737-2-jani.nikula@intel.com
(cherry picked from commit e6ed2a1b99051bc04abcc2daed3972efada0b7a9)
from v4.14-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/e80968f33f21f12bce749a22e76564ed09df3f3e/drivers/gpu/drm/i915/intel_dp.c

Project Member

Comment 23 by bugdroid1@chromium.org, Nov 1

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

commit 74b21ab1afba06b35e9d45ecdbc1b3cfc7babbf3
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:06 2018

UPSTREAM: drm/i915/psr: Check for SET_POWER_CAPABLE bit at PSR init time.

By moving the check from psr_compute_config() to psr_init_dpcd(), we get
to set the dev_priv->psr.sink_support flag only when the panel is
capable of changing power state. An additional benefit is that the check
will be performed only at init time instead of every atomic_check.

This should change the psr_basic IGT failures on HSW to skips.

v2: Return early when SET_POWER_CAPABLE bit is 0 (Jose)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106217
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106346
Cc: Jos Roberto de Souza <jose.souza@intel.com>
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180511195145.3829-2-dhinakaran.pandiyan@intel.com
(cherry picked from commit 84bb2916a6835636fe28e8db192c3293f2d4df21)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/74b21ab1afba06b35e9d45ecdbc1b3cfc7babbf3/drivers/gpu/drm/i915/intel_psr.c
[modify] https://crrev.com/74b21ab1afba06b35e9d45ecdbc1b3cfc7babbf3/drivers/gpu/drm/i915/intel_dp.c

Project Member

Comment 24 by bugdroid1@chromium.org, Nov 1

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

commit 09d13d7352cf78f63f3ee306072ee6d387226ff3
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:08 2018

UPSTREAM: drm/i915/psr: Avoid unnecessary DPCD read of DP_PSR_CAPS

intel_dp->psr_dpcd already has the required values.

Cc: Jose Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Tarun Vyas <tarun.vyas@intel.com>
Reviewed-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180511195145.3829-4-dhinakaran.pandiyan@intel.com
(cherry picked from commit 1e8b251ebcbbfc6bfa826bca4d91a8e1bcad2e5f)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 25 by bugdroid1@chromium.org, Nov 1

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

commit 0fad148b7b97e4b9b13477f536fcc66694fda10b
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:09 2018

UPSTREAM: drm/i915/psr: Fall back to max. synchronization latency if DPCD read fails

Noticed that we assume the best case of 0 latency when the DPCD read
fails, reasonable pessimism is safer.

eDP spec does say that if latency is greater than 8, the panel
supplier needs to provide it. I didn't see anything specific in the VBT
for this, so let's go with 8 frames as a fallback.

Cc: Jose Roberto de Souza <jose.souza@intel.com>
Cc: Ville Syrjl <ville.syrjala@linux.intel.com>
Reviewed-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180511195145.3829-5-dhinakaran.pandiyan@intel.com
(cherry picked from commit 264ff016cf0672f99f98ea853dbc7e45c3527bc2)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 26 by bugdroid1@chromium.org, Nov 1

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

commit 291673faff1b16bb6e0a38c97b598284b4e663a7
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:10 2018

UPSTREAM: drm/i915/psr: Fix ALPM cap check for PSR2

While touching the code around this, I noticed that absence of ALPM
capability does not stop us from enabling PSR2. But, the spec
unambiguously states that ALPM is required for PSR2 and so does this
commit that introduced this code

drm/i915/psr: enable ALPM for psr2

    As per edp1.4 spec , alpm is required for psr2 operation as it's
    used for all psr2  main link power down management and alpm enable
    bit must be set for psr2 operation.

Cc: Jose Roberto de Souza <jose.souza@intel.com>
Cc: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Reviewed-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Reviewed-by: Tarun Vyas <tarun.vyas@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180511195145.3829-6-dhinakaran.pandiyan@intel.com
(cherry picked from commit 97c9de66ca8075871b31f4af05593e027e880e67)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 27 by bugdroid1@chromium.org, Nov 1

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

commit 6b0ee54d378cdc5abeda37a7f0e45e403918c48e
Author: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Date: Thu Nov 01 09:17:11 2018

Revert "FROMLIST: drm/i915/psr: Clean-up intel_enable_source_psr1()"

This reverts commit 774fa4c1129d2633f721e21b9c41d1e4b16d4f92.

This is already implemented upstream in a different way:
912d64123d35 "drm/i915/psr: Preserve SRD_CTL bit 29 on PSR init" and the
original FROMLIST patch was never merged so we need to clean up
here.

Conflicts:
	[Kept the changes implemented by 93a29c2fbd85 (Nathan)]
	drivers/gpu/drm/i915/intel_psr.c

Cc: Puthikorn Voravootivat <puthik@chromium.org>

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I6e9b94f7cc2f5bddd40c516252fefe83c4b91de7
Reviewed-on: https://chromium-review.googlesource.com/1187479
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

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

Project Member

Comment 28 by bugdroid1@chromium.org, Nov 1

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

commit e6e1a79b880282ab63abaaf59cebc0262c1ca3cc
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@gmail.com>
Date: Thu Nov 01 09:17:12 2018

UPSTREAM: drm/i915/psr: Set idle frame count based on sink synchronization latency

DPCD 2009h "Synchronization latency in sink" has bits that tell us the
maximum number of frames sink can take to resynchronize to source timing
when exiting PSR. More importantly, as per eDP 1.4b, this is the "Minimum
number of frames following PSR exit that the Source device needs to
wait for PSR entry."

We currently use this value only to setup the number frames to wait before
PSR2 selective update. But, based on the above description it makes more
sense to use this to configure idle frames for both PSR1 and and PSR2. This
will ensure we wait the required number of frames before
activation whether it is PSR1 or PSR2.

The minimum number of idle frames remains 6, while allowing sink
synchronization latency and VBT to increase this value.

This also solves the flip-flop between sink and source frames that I
noticed on my Thinkpad X260 during PSR exit. This specific panel has a
value of 8h, which according to the spec means the "Source device must
wait for more than eight active frames after PSR exit before initiating PSR
entry. (In this case, should be provided by the panel supplier.)" VBT
however has a value of 0.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Jose Roberto de Souza <jose.souza@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
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/20180525033047.7596-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit a3db142829e68e2619207306a7b83e8ed47466a6)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 29 by bugdroid1@chromium.org, Nov 1

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

commit 8df44e3612e3068a5e729805c212a4f9482d6037
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Thu Nov 01 09:17:14 2018

UPSTREAM: drm/i915/psr: Kill delays when activating psr back.

The immediate enabling was actually not an issue for the
HW perspective for core platforms that have HW tracking.
HW will wait few identical idle frames before transitioning
to actual psr active anyways.

Now that we removed VLV/CHV out of the picture completely
we can safely remove any delays.

Note that this patch also remove the delayed activation
on HSW and BDW introduced by commit 'd0ac896a477d
("drm/i915: Delay first PSR activation.")'. This was
introduced to fix a blank screen on VLV/CHV and also
masked some frozen screens on other core platforms.
Probably the same that we are now properly hunting and fixing.

v2:(DK): Remove unnecessary WARN_ONs and make some other
         VLV | CHV more readable.
v3: Do it regardless the timer rework.
v4: (DK/CI): Add VLV || CHV check on cancel work at psr_disable.
v5: Kill remaining items and fully rework activation functions.
v6: Rebase on top of VLV/CHV clean-up and keep the reactivation
    on a regular non-delayed work to avoid extra delays on exit
    calls and allow us to add few more safety checks before
    real activation.

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Jos Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180613192600.3955-1-rodrigo.vivi@intel.com
(cherry picked from commit 5422b37c907e7c00a15d5298d6717c6f7ba1403f)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 30 by bugdroid1@chromium.org, Nov 1

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

commit 155acb1c96e5b0fd61833c6780e269015a8470cc
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:15 2018

UPSTREAM: drm/i915/psr: Fix warning in intel_psr_activate()

commit 5422b37c907e ("drm/i915/psr: Kill delays when activating psr
back.") removed the call to cancel a scheduled psr_work from
psr_disable() and instead added an early return in the work function. But,
if the scheduled work item is executed after psr_enable(), we end up
printing warnings as PSR is already enabled and active. So, put the
cancel_work call back in psr_disable().

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jos Roberto de Souza <jose.souza@intel.com>
Fixes: 5422b37c907e ("drm/i915/psr: Kill delays when activating psr back.")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106948
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180618220207.2778-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit 98fa2aecb5096bbeb18f6509ffd181aafe4d267d)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 31 by bugdroid1@chromium.org, Nov 1

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

commit 7b52313dd03772c774415706fead8bc859cc2ad9
Author: Colin Ian King <colin.king@canonical.com>
Date: Thu Nov 01 09:17:16 2018

UPSTREAM: drm/i915/psr: fix copy-paste error with setting of tp2_wakeup_time_us

Currently for the psr_table->tp2_tp3_wakeup_time case 3 there appears
to be a copy-paste error from the previous switch statement where
dev_priv->vbt.psr.tp1_wakeup_time_us is being assigned and I believe
it should be dev_priv->vbt.psr.tp2_tp3_wakeup_time_us that should be
assigned instead.

Detected by CoverityScan, CID#1470105 ("Copy-paste error")

Fixes: 77312ae8f071 ("drm/i915/psr: vbt change for psr")
Signed-off-by: Colin Ian King <colin.king@canonical.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/20180620132543.28092-1-colin.king@canonical.com
(cherry picked from commit c238ad62588981b3e83e1ba41bf5ec57b8875dd4)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 32 by bugdroid1@chromium.org, Nov 1

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

commit 7308e642448e54fe17fc594f9a6a0363d97aff2a
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Thu Nov 01 09:17:17 2018

BACKPORT: drm/i915/psr: Kill useless function pointers.

At some point we introduced the function pointers
on PSR code to help with VLV/CHV separation logic
because it had a different HW implementation from PSR.

Since all converged to HSW PSR and we dropped the
VLV/CHV support, let's also kill the useless function
pointers and leave the code cleaner.

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20180626052536.15137-1-rodrigo.vivi@intel.com
(cherry picked from commit cf5d862db2e301b8e487f42f99c5cf6f5228ddae)
from v4.17-rc3

Conflicts:
	[Context delta (Nathan)]
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 33 by bugdroid1@chromium.org, Nov 1

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

commit 430cc4c98d74869d2579e971433fb400b9ae93b1
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@gmail.com>
Date: Thu Nov 01 09:17:18 2018

UPSTREAM: drm/i915/psr: Fix race in intel_psr_work()

Commit 5422b37c907e ("drm/i915/psr: Kill delays when activating psr
back.") switched from delayed work to the plain variant and while doing so
removed the check for work_busy() before scheduling a PSR activation.
This appears to cause consecutive executions of psr_activate() in this
scenario - after a worker picks up the PSR work item for execution and
before the work function can acquire the PSR mutex, a psr_flush() can
get hold of the mutex and schedule another PSR work. Without a psr_exit()
between the two psr_activate() calls, warning messages get printed.
Further, since we drop the mutex in the midst of psr_work() to wait for
PSR to idle, another work item can also get scheduled. Fix this by
returning if PSR was already active.

Fixes: 5422b37c907e ("drm/i915/psr: Kill delays when activating psr back.")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106948
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180625054741.3919-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit c12e0643a05d978657877630d4da1ace06ea3720)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 34 by bugdroid1@chromium.org, Nov 1

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

commit ab875a9c65a3f4337a97c8d264c9e0027acc2383
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@gmail.com>
Date: Thu Nov 01 09:17:20 2018

UPSTREAM: drm/i915/psr: Warn for erroneous enabling of both PSR1 and PSR2.

Depending whether PSR1 or PSR2 was configured, we print a warning if the
corresponding control mmio indicated PSR was erroneously enabled. As
Chris pointed out, it makes more sense to check for both the mmio's
since we expect neither PSR1 nor PSR2 to be enabled when psr_activate() is
called.

v2: Read PSR2 control register only on supported platforms (Rodrigo)

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180626090522.17682-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit bcc233b2aa7878bdcfbad6505ac66383a82a73dd)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 35 by bugdroid1@chromium.org, Nov 1

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

commit b75aa0131a22e3259767f3bcbd9135510d5d00f6
Author: José Roberto de Souza <jose.souza@intel.com>
Date: Thu Nov 01 09:17:21 2018

UPSTREAM: drm/i915/psr: Remove intel_crtc_state parameter from disable_source()

It was only used in VLV/CHV so after the removal of the PSR support
for those platforms it is not necessary any more.

v7: Rebased

Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180626201644.21932-1-jose.souza@intel.com
(cherry picked from commit 42f53ffcad7fcf11b5767767dd0c0ff607d99787)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 36 by bugdroid1@chromium.org, Nov 1

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

commit 3d9aac4b7137dfdc5a63d5eba53ef062601cd08c
Author: José Roberto de Souza <jose.souza@intel.com>
Date: Thu Nov 01 09:17:22 2018

BACKPORT: drm/i915/psr: Begin to handle PSR/PSR2 errors set by sink

eDP spec states that sink device will do a short pulse in HPD
line when there is a PSR/PSR2 error that needs to be handled by
source, this is handling the first and most simples error:
DP_PSR_SINK_INTERNAL_ERROR.

Here taking the safest approach and disabling PSR(at least until
the next modeset), to avoid multiple rendering issues due to
bad pannels.

v5:
added lockdep_assert in psr_disable and renamed psr_disable()
to intel_psr_disable_locked()

v4:
Using CAN_PSR instead of HAS_PSR in intel_psr_short_pulse

v3:
disabling PSR instead of exiting on error

Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180626201644.21932-2-jose.souza@intel.com
(cherry picked from commit cc3054ff6214f6d14d35ffe629ff8d5032ace7f7)
from v4.17-rc3

Conflicts:
	[context delta (Nathan)]
	drivers/gpu/drm/i915/intel_dp.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/3d9aac4b7137dfdc5a63d5eba53ef062601cd08c/drivers/gpu/drm/i915/intel_drv.h
[modify] https://crrev.com/3d9aac4b7137dfdc5a63d5eba53ef062601cd08c/drivers/gpu/drm/i915/intel_psr.c
[modify] https://crrev.com/3d9aac4b7137dfdc5a63d5eba53ef062601cd08c/drivers/gpu/drm/i915/intel_dp.c

Project Member

Comment 37 by bugdroid1@chromium.org, Nov 1

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

commit a17f38ff2360201147bc88fb981bdbf227902b84
Author: José Roberto de Souza <jose.souza@intel.com>
Date: Thu Nov 01 09:17:23 2018

UPSTREAM: drm/i915/psr: Handle PSR errors

Sink will interrupt source when it have any PSR error.
DP_PSR_VSC_SDP_UNCORRECTABLE_ERROR is a PSR2 but already
handling it here.
The only missing error to be handled is DP_PSR_LINK_CRC_ERROR that
will be taken in care in a futher patch.

v6:
not handling DP_PSR_LINK_CRC_ERROR here

v5:
handling all PSR errors here, so the commit message and
comment have changed

v3:
disabling PSR instead of exiting on error

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180626201644.21932-3-jose.souza@intel.com
(cherry picked from commit 93bf76ed882d5b7c6824e95d868d608f61b4f663)
from v4.17-rc3

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 38 by bugdroid1@chromium.org, Nov 1

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

commit e762a44153e3f65bbd94125565cf7d2ba17b64b1
Author: José Roberto de Souza <jose.souza@intel.com>
Date: Thu Nov 01 09:17:24 2018

BACKPORT: drm/i915/psr: Avoid PSR exit max time timeout

Specification requires that max time should be masked from bdw and
forward but it can be also safely enabled to hsw.
This will make PSR exits more deterministic and only when really
needed. If this was used to fix a issue in some panel than can
only self-refresh for a few seconds, that panel will interrupt
and assert one of the PSR errors handled in:
'drm/i915/psr: Handle PSR RFB storage error' and
'drm/i915/psr: Begin to handle PSR/PSR2 errors set by sink'

Spec: 21664

v4:
patch moved to before 'drm/i915/psr/bdw+: Enable CRC check in the
static frame on the sink side' to avoid touch in 2 patches
EDP_PSR_DEBUG.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180626201644.21932-4-jose.souza@intel.com
(cherry picked from commit 3ebe3df50bb1db45c7bf1ce90c3d61c4eed1ba84)
from v4.17-rc3

Conflicts:
	[Context delta (Nathan)]
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 39 by bugdroid1@chromium.org, Nov 1

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

commit 685ac68166406a4682a53e5a11f98f67e0eb7668
Author: José Roberto de Souza <jose.souza@intel.com>
Date: Thu Nov 01 09:17:26 2018

BACKPORT: drm/i915/psr: Enable CRC check in the static frame on the sink side

Sink can be configured to calculate the CRC over the static frame and
compare with the CRC calculated and transmited in the VSC SDP by
source, if there is a mismatch sink will do a short pulse in HPD
and set DP_PSR_LINK_CRC_ERROR in DP_PSR_ERROR_STATUS.

Spec: 7723

v6:
andling DP_PSR_LINK_CRC_ERROR here and remove "bdw+" from commit
message

v4:
patch moved to after 'drm/i915/psr: Avoid PSR exit max time timeout'
to avoid touch in 2 patches EDP_PSR_DEBUG.

v3:
disabling PSR instead of exiting on error

Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jos Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180626201644.21932-5-jose.souza@intel.com
(cherry picked from commit 00c8f19463ab42d22332fc9c9fca605f12eadeb7)
from v4.17-rc3

Conflicts:
	[context delta (Nathan)]
	drivers/gpu/drm/i915/i915_reg.h

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/685ac68166406a4682a53e5a11f98f67e0eb7668/drivers/gpu/drm/i915/i915_reg.h
[modify] https://crrev.com/685ac68166406a4682a53e5a11f98f67e0eb7668/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 40 by bugdroid1@chromium.org, Nov 1

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

commit 7e5259d098ae29fd577b22255a6b2de03e71b8f8
Author: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Date: Thu Nov 01 09:17:27 2018

BACKPORT: drm/i915/psr: Add psr1 live status

Prints live state of psr1.Extending the existing
PSR2 live state function to cover psr1.

Tested on KBL with psr2 and psr1 panel.

v2: rebase
v3: DK
    Rename psr2_live_status to psr_source_status.
v4: DK
    Move EDP_PSR_STATUS_STATE_SHIFT below EDP_PSR_STATUS_STATE_MASK.
    Pass seq to psr_source_status, handle source status prints in
    psr_source_status.
v5: Fixed CI warning messages
v6:
    Remove extra space in the title before the colon.(DK)
    Rebase. (Jani)
v7: Use tabs for indenting the values.(Jani)
v8: Addressed dk's review comments.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>

Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1530086910-15914-1-git-send-email-vathsala.nagaraju@intel.com
(cherry picked from commit 00b062967f1524de25daf6578d9043b0bbe7c208)
from v4.17-rc3

Conflicts:
	[Context delta (Nathan)]
	drivers/gpu/drm/i915/i915_debugfs.c
	drivers/gpu/drm/i915/i915_reg.h

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/7e5259d098ae29fd577b22255a6b2de03e71b8f8/drivers/gpu/drm/i915/i915_debugfs.c
[modify] https://crrev.com/7e5259d098ae29fd577b22255a6b2de03e71b8f8/drivers/gpu/drm/i915/i915_reg.h

Project Member

Comment 41 by bugdroid1@chromium.org, Nov 1

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

commit 34247717ee02af16804733f17332dd784ffa3cab
Author: David Weinehall <david.weinehall@linux.intel.com>
Date: Thu Nov 01 09:17:28 2018

UPSTREAM: drm/i915/debugfs: Add panel delays for eDP

The eDP backlight and panel enable/disable delays are quite
useful to know when measuring time consumed by suspend/resume,
and while the information is printed to the kernel log as debug
messages, having this information in debugfs makes things easier.

Signed-off-by: David Weinehall <david.weinehall@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20160823092356.7610-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 ecbd6781b27799cccd6ba647868d1b5341c9523d)
from v4.8-rc2

Backported for clean conflict resolution for
5b7b30864d1d  "drm/i915/psr: Split sink status into a separate debugfs node" (Nathan)

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/34247717ee02af16804733f17332dd784ffa3cab/drivers/gpu/drm/i915/i915_debugfs.c

Project Member

Comment 42 by bugdroid1@chromium.org, Nov 1

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

commit 0382e24440f1dab25a1a5b838e5578e176001e6e
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Thu Nov 01 09:17:29 2018

UPSTREAM: Bluetooth: introduce DEFINE_SHOW_ATTRIBUTE() macro

This macro deduplicates a lot of similar code across the hci_debugfs.c
module. Targeting to be moved to seq_file.h eventually.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
(cherry picked from commit 22b371cbb949e1c8ee4accfead5ee9f3e7f0c114)
from v4.15-rc2

Backported for clean conflict resolution on a08f06bb7a07 -
- "seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro" (Nathan)

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: Ideb7a8ff3fe7d3938e53b418b401836bb0f1df0c
Reviewed-on: https://chromium-review.googlesource.com/1187494
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

[modify] https://crrev.com/0382e24440f1dab25a1a5b838e5578e176001e6e/net/bluetooth/hci_debugfs.c

Project Member

Comment 43 by bugdroid1@chromium.org, Nov 1

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

commit 9265b86d939391bad804288cd132120051efa9b7
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Thu Nov 01 09:17:30 2018

BACKPORT: seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro

The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for current
users, which are many of them, and for new comers to decrease code
duplication.

Acked-by: Lee Jones <lee.jones@linaro.org>
Acked-by: Darren Hart (VMware) <dvhart@infradead.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
(cherry picked from commit a08f06bb7a0743a7fc8d571899c93d882468096e)
from v4.15

Conflicts:
	[Context delta (Nathan)]
	drivers/mfd/ab8500-debugfs.c

	[Not in our kernel base - removed (Nathan)]
	drivers/platform/x86/pmc_atom.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: I02c075064aebe203c96784f4b1e3f85cd29036dd
Reviewed-on: https://chromium-review.googlesource.com/1187495
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

[modify] https://crrev.com/9265b86d939391bad804288cd132120051efa9b7/net/bluetooth/hci_debugfs.c
[modify] https://crrev.com/9265b86d939391bad804288cd132120051efa9b7/drivers/mfd/ab8500-debugfs.c
[modify] https://crrev.com/9265b86d939391bad804288cd132120051efa9b7/include/linux/seq_file.h

Project Member

Comment 44 by bugdroid1@chromium.org, Nov 1

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

commit ab875c4206062aaa8e141d3522a2825c1d90d5e9
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@gmail.com>
Date: Thu Nov 01 09:17:32 2018

BACKPORT: drm/i915/psr: Split sink status into a separate debugfs node

This allows to read i915_edp_psr_status from tests without triggering
any AUX communication. Take this opportunity to move this under the
eDP-1 connector directory as the status we print is of the sink.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Jos Roberto de Souza <jose.souza@intel.com>
Suggested-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180705003121.2478-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit 5b7b30864d1d18605e9ad81f2cd1eee6927399df)
from v4.17-rc3

Conflicts:
	[Context delta (Nathan)]
	drivers/gpu/drm/i915/i915_debugfs.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/ab875c4206062aaa8e141d3522a2825c1d90d5e9/drivers/gpu/drm/i915/i915_debugfs.c

Project Member

Comment 45 by bugdroid1@chromium.org, Nov 1

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

commit 35b67aadb8adb491084db0968e09f99191d2f815
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Thu Nov 01 09:17:33 2018

BACKPORT: drm/i915/psr: Remove few mod parameters option.

Reduce the module parameter to enable or disable.

The link stand by vs full link off was used only once.

And it was actually masking another bug fixed by commit
'84bb2916a683 ("drm/i915/psr: Check for SET_POWER_CAPABLE
bit at PSR init time.")'

So, let's remove these options for now. End goal is to
fully remove the mod param, moving it to a debugfs
interface in upcoming patches.

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Tarun Vyas <tarun.vyas@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/20180712052715.8177-1-rodrigo.vivi@intel.com
(cherry picked from commit 9306b62b43c460923ba4a32b66aeb7d0e4c02adf)
from v4.17-rc3

Conflicts:
	[Context delta (Nathan)]
	drivers/gpu/drm/i915/i915_params.c
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

Signed-off-by: Nathan Ciobanu <nathan.d.ciobanu@intel.com>
Change-Id: Ice4f46690a063f279edc63ff2dda10d7e3783237
Reviewed-on: https://chromium-review.googlesource.com/1187497
Tested-by: Casey G Bowman <casey.g.bowman@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

[modify] https://crrev.com/35b67aadb8adb491084db0968e09f99191d2f815/drivers/gpu/drm/i915/i915_params.c
[modify] https://crrev.com/35b67aadb8adb491084db0968e09f99191d2f815/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 46 by bugdroid1@chromium.org, Nov 1

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

commit 01173ba405f140ff7a89af9a5d671004830efea6
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date: Thu Nov 01 09:17:34 2018

UPSTREAM: drm/i915: Fix psr sink status report.

First of all don't try to read dpcd if PSR is not even supported.

But also, if read failed return -EIO instead of reporting via a
backchannel.

v2: fix dev_priv: At this level m->private is the connector. (CI/DK)
    don't convert dpcd read errors to EIO. (DK)

Fixes: 5b7b30864d1d ("drm/i915/psr: Split sink status into a separate debugfs node")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Jos Roberto de Souza <jose.souza@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/20180720003155.16290-1-rodrigo.vivi@intel.com
(cherry picked from commit 7a72c78bdd0a1ea1d879610542679cc680398220)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
(cherry picked from commit 656921a51244b72cd1105df61b0af15825bddb72)
from v4.18-rc7

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/01173ba405f140ff7a89af9a5d671004830efea6/drivers/gpu/drm/i915/i915_debugfs.c

Project Member

Comment 47 by bugdroid1@chromium.org, Nov 1

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

commit 955c7f19453276f813dc8845ea65a08b357bc7d6
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:35 2018

BACKPORT: FROMGIT: drm/i915/psr: Print PSR_STATUS when PSR idle wait times out.

Knowing the status of the PSR HW state machine is useful for debug,
especially since we are seeing errors with PSR2 in CI.

Cc: Jos Roberto de Souza <jose.souza@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180821221156.2442-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit 63ec132d5b60a0d504a82ac0356557112dfbb114
git://anongit.freedesktop.org/drm-tip drm-tip)

Adapted the arguments for __intel_wait_for_register in the call
made from intel_psr_wait_for_idle to match the chromeos-4.4 context.

Conflicts:
	[context delta]
	drivers/gpu/drm/i915/intel_drv.h

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/955c7f19453276f813dc8845ea65a08b357bc7d6/drivers/gpu/drm/i915/intel_sprite.c
[modify] https://crrev.com/955c7f19453276f813dc8845ea65a08b357bc7d6/drivers/gpu/drm/i915/intel_drv.h
[modify] https://crrev.com/955c7f19453276f813dc8845ea65a08b357bc7d6/drivers/gpu/drm/i915/intel_psr.c

Project Member

Comment 48 by bugdroid1@chromium.org, Nov 1

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

commit 07d504f5ca29afa68cc7d46e304edc3ffb7f3749
Author: Azhar Shaikh <azhar.shaikh@intel.com>
Date: Thu Nov 01 09:17:36 2018

BACKPORT: FROMGIT: drm/i915/psr: Add PSR mode/revision to debugfs

Log the PSR mode/revision (PSR1 or PSR2) in the debugfs file
i915_edp_psr_status.

Suggested-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com>
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1534958628-193724-1-git-send-email-azhar.shaikh@intel.com
(cherry picked from commit 0577ab482f46653d6210aeb1d7dc57aa5e2dbfc3)

Conflicts:
	[context delta]
	drivers/gpu/drm/i915/i915_debugfs.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

[modify] https://crrev.com/07d504f5ca29afa68cc7d46e304edc3ffb7f3749/drivers/gpu/drm/i915/i915_debugfs.c

Project Member

Comment 49 by bugdroid1@chromium.org, Nov 1

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

commit 9564bfcb07d46592c01dbbf24cfbdf9bac206bcc
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:38 2018

BACKPORT: FROMGIT: drm/i915/psr: Remove wait_for_idle() for PSR2

CI runs show PSR2 does not go to IDLE with selective update enabled on
all PSR exit triggers. Specifically, logs indicate the hardware enters
"SLEEP Selective Update" and not "IDLE Reset state', like the kernel
expects, when vblank interrupts are enabled. This check was added for PSR1
but incorrectly extended to PSR2, remove the check as it breaks tests
and prints out misleading error messages.

v2: Split out non-code changes (Rodrigo)

Cc: Tarun Vyas <tarun.vyas@intel.com>
Cc: Jos Roberto de Souza <jose.souza@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Fixes: c43dbcbbcc8c ("drm/i915/psr: Lockless version of psr_wait_for_idle")
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180824230844.12428-1-dhinakaran.pandiyan@intel.com
(cherry picked from commit fd255f6e3704d183f6f5011efd01fcda70372cab
from git://anongit.freedesktop.org/drm-tip drm-tip)

Conflicts:
	[Context delta]
	drivers/gpu/drm/i915/intel_psr.c

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Project Member

Comment 50 by bugdroid1@chromium.org, Nov 1

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

commit 789b8a771ee8250b1db3d0c32a7011d799b811d9
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date: Thu Nov 01 09:17:39 2018

FROMGIT: drm/i915/psr: Rewrite comments in intel_psr_wait_for_idle()

Added bspec reference, aligned text and documented the function.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180824230844.12428-2-dhinakaran.pandiyan@intel.com
(cherry picked from commit 65df9c7947d70a8d78b2af5a1a835c713110d21e
from git://anongit.freedesktop.org/drm-tip drm-tip)

BUG=chromium:870499
TEST=$(watch -c -d -n0.3 cat /run/debugfs_gpu/i915_edp_psr_status)
     and ensure that PSR is supported, enabled and active when there
     is no activity on the screen (eDP)

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

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

Following up on RBB issues. Is this issue fixed? Can we mark as such?
Labels: -ReleaseBlock-Beta
#51: I think I got as many patches as I could backport in a a reasonable amount of time. Any newer PSR patches would require a massive dependency backport to support upstream code changes. As far as I'm concerned this issue can be closed. 

Sign in to add a comment