Hi all, The goal of this series is to Enable PSR by default, but in order to do that first it was necessary to fix few display PM initialization that was broken after fastboot got enabled by default. Also it was needed to make sink crc more reliable. So, divided by topic: Patches 1-7: IPS reorg/rework Patches 8-16: DRRS reorg and PSR and DRRS initialization rework. Patches 17-26: PSR Fixes Patches 27-30: Let Sink CRC more reliable Patch 31: Enable PSR by default. --- Why all in one single series --- I didn't split the series in different series because there were dependencies and because they were touching same part of the code. So the rebase in order is less painful for me than if the patches started getting merged out of order. --- Why sysfs toggles are here --- There is a work in progress to add more sysfs interface but with the requirement to let them organized and documented. But this sysfs toggles were helping me during debugs and testings a lot so I decided to send them out even before we finish the design review on the sysfs interfaces etc. They also help to justify the ips mutex locks. ;) But I totally understand if the aren't merged at this point. --- Remaining Known issues --- 1. Features disabled after suspend: There is also a remaining known issue that is the initilization of these features now rely on the atomic modeset and the atomic modeset on resume is commiting a zeroed state so the features gets disabled with suspend/resume and stays disabled until the next full modeset. Anyway let's start the review and get this merged and work to fix atomic commit after suspend/resume in parallel. 2. Automated tests as is in this series stil fail on SKL because the aux failure. There is aux retries patches on the mailing list to work around this issue and also an investigation in progress to see if aux mutex could help here. 3. Few kms_frontbuffer tests are failing even with PSR disabled so I'm just ignoring psr-1p-primscrn-cur-indfb-* test results for now. --- Validated Hardware --- manual checks, kms_psr_sink_crc and kms_frontbuffer_tracking were used for validation on different platforms with different kinds of panels: - Lenovo Yoga 3 (BDW) - Lenovo T450s (BDW) - BDW SDP GT3 - BDW SDP ULT - VLV/BYT - SKL - KBL So I'm confident we can enable PSR back by default now. All comments, ideas, suggestions and even bikesheddings are pretty welcome. Thanks, Rodrigo. Rodrigo Vivi (31): drm/i915: Rename IPS ready variable at pipe config. drm/i915: Move IPS related stuff to intel_ips.c drm/i915: Add IPS DockBook. drm/i915: Handle actual IPS enabled state. drm/i915: Fix IPS initialization. drm/i915: Fix IPS disable sequence. drm/i915: IPS Sysfs interface. drm/i915: Add psr_ready on pipe_config drm/i915: Only enable DRRS if PSR won't be enabled on this pipe. drm/i915: Detatch i915.enable_psr from psr_ready drm/i915: Use intel_crtc instead of intel_dp on PSR enable/disable functions. drm/i915: Fix PSR initialization. drm/i915: Organize Makefile new display pm group drm/i915: Create intel_drrs.c drm/i915: Use intel_crtc instead of intel_dp on DRRS enable/disable functions. drm/i915: Fix DRRS initialization. drm/i915: Add sys PSR toggle interface. drm/i915: Force PSR exit when IRQ_HPD is detected on eDP. drm/i915: Remove duplicated dpcd write on hsw_psr_enable_sink. drm/i915: PSR: Let's rely more on frontbuffer tracking. drm/i915: PSR: Mask LPSP hw tracking back again. drm/i915: Delay first PSR activation. drm/i915: Reduce PSR re-activation time for VLV/CHV. drm/i915: PSR: Don't Skip aux handshake on DP_PSR_NO_TRAIN_ON_EXIT. drm/i915: Send TP1 TP2/3 even when panel claims no NO_TRAIN_ON_EXIT. drm/i915: Fix idle_frames counter. drm/i915: Allow 1 vblank to let Sink CRC calculation to start or stop. drm/i915: Make Sink crc calculation waiting for counter to reset. drm/i915: Stop tracking last calculated Sink CRC. drm/i915: Rely on TEST_SINK_START instead of tracking Sink CRC state on dev_priv. drm/i915: Enable PSR by default. Documentation/DocBook/gpu.tmpl | 5 + drivers/gpu/drm/i915/Makefile | 8 +- drivers/gpu/drm/i915/i915_debugfs.c | 16 +- drivers/gpu/drm/i915/i915_drv.h | 9 +- drivers/gpu/drm/i915/i915_params.c | 4 +- drivers/gpu/drm/i915/i915_sysfs.c | 165 +++++++++++ drivers/gpu/drm/i915/intel_ddi.c | 6 +- drivers/gpu/drm/i915/intel_display.c | 190 +++--------- drivers/gpu/drm/i915/intel_dp.c | 477 +++---------------------------- drivers/gpu/drm/i915/intel_drrs.c | 416 +++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_drv.h | 47 +-- drivers/gpu/drm/i915/intel_frontbuffer.c | 4 +- drivers/gpu/drm/i915/intel_ips.c | 259 +++++++++++++++++ drivers/gpu/drm/i915/intel_psr.c | 201 ++++++++----- 14 files changed, 1116 insertions(+), 691 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_drrs.c create mode 100644 drivers/gpu/drm/i915/intel_ips.c -- 2.4.3 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx