1. 18 Jun, 2015 2 commits
    • Mika Kuoppala's avatar
      drm/i915: Reset request handling for gen8+ · 7fd2d269
      Mika Kuoppala authored
      In order for gen8+ hardware to guarantee that no context switch
      takes place during engine reset and that current context is properly
      saved, the driver needs to notify and query hw before commencing
      with reset.
      
      There are gpu hangs where the engine gets so stuck that it never will
      report to be ready for reset. We could proceed with reset anyway, but
      with some hangs with skl, the forced gpu reset will result in a system
      hang. By inspecting the unreadiness for reset seems to correlate with
      the probable system hang.
      
      We will only proceed with reset if all engines report that they
      are ready for reset. If root cause for system hang is found and
      can be worked around with another means, we can reconsider if
      we can reinstate full reset for unreadiness case.
      
      v2: -EIO, Recovery, gen8 (Chris, Tomas, Daniel)
      v3: updated commit msg
      v4: timeout_ms, simpler error path (Chris)
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=89959
      References: https://bugs.freedesktop.org/show_bug.cgi?id=90854
      Testcase: igt/gem_concurrent_blit/prw-blt-overwrite-source-read-rcs-forked
      Testcase: igt/gem_concurrent_blit/gtt-blt-overwrite-source-read-rcs-forked
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Tomas Elf <tomas.elf@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      7fd2d269
    • Vandana Kannan's avatar
      drm/i915/bxt: eDP Panel Power sequencing · b0a08bec
      Vandana Kannan authored
      Changes for BXT - added a IS_BROXTON check to use the macro related to PPS
      registers for BXT.
      BXT does not have PP_DIV register. Making changes to handle this.
      Second set of PPS registers have been defined but will be used when VBT
      provides a selection between the 2 sets of registers.
      
      v2:
      [Jani] Added 2nd set of PPS registers and the macro
      Jani's review comments
      	- remove reference in i915_suspend.c
      	- Use BXT PP macro
      Squashing all PPS related patches into one.
      
      v3: Jani's review comments addressed
      	- Use pp_ctl instead of pp
      	- ironlake_get_pp_control() is not required for BXT
      	- correct the use of && in the print statement
      	- drop the shift in the print statement
      
      v4: Jani's comments
      	- modify ironlake_get_pp_control() - dont set unlock key for bxt
      
      v5: Sonika's comments addressed
      	- check alignment
      	- move pp_ctrl_reg write (after ironlake_get_pp_control())
      	to !IS_BROXTON case.
      	- check before subtracting 1 for t11_t12
      Signed-off-by: default avatarVandana Kannan <vandana.kannan@intel.com>
      Signed-off-by: default avatarA.Sunil Kamath <sunil.kamath@intel.com>
      Reviewed-by: default avatarSonika Jindal <sonika.jindal@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      b0a08bec
  2. 17 Jun, 2015 1 commit
    • Matt Roper's avatar
      drm/i915: Use helper to set CRTC state's mode · ce52299c
      Matt Roper authored
      We need to call drm_atomic_set_mode_for_crtc() rather than copying the
      mode in manually.  As of commit
      
              commit 99cf4a29
              Author: Daniel Stone <daniels@collabora.com>
              Date:   Mon May 25 19:11:51 2015 +0100
      
                  drm/atomic: Add current-mode blob to CRTC state
      
      the helper now also takes care of setting up the mode property blob for
      us; if we don't use the helper and never setup the mode blob, this will
      also trigger a failure in drm_atomic_crtc_check() when we have the
      DRIVER_ATOMIC flag set (i.e., when using the nuclear pageflip support
      via i915.nuclear_pageflip kernel command line parameter).
      
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      ce52299c
  3. 15 Jun, 2015 35 commits
  4. 12 Jun, 2015 2 commits
    • Maarten Lankhorst's avatar
      drm/i915: Only enable cursor if it can be enabled. · c0165304
      Maarten Lankhorst authored
      The cursor should only be enabled if it's visible. This fixes
      igt/kms_cursor_crc, which may otherwise produce the following
      warning:
      
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 3425 at drivers/gpu/drm/i915/intel_display.c:9995 intel_crtc_update_cursor+0x14c/0x4d0 [i915]()
      Missing switch case (0) in i9xx_update_cursor
      Modules linked in: i915
      CPU: 0 PID: 3425 Comm: kms_cursor_crc Tainted: G        W       4.1.0-rc7-patser+ #4079
      Hardware name: LENOVO 2349AV8/2349AV8, BIOS G1ETA5WW (2.65 ) 04/15/2014
       ffffffffc01aad10 ffff8800b083faa8 ffffffff817f7827 0000000080000001
       ffff8800b083faf8 ffff8800b083fae8 ffffffff81084955 ffff8800b083fad8
       ffff8800c4931148 0000000001200000 ffff8800c48b0000 0000000000000000
      Call Trace:
       [<ffffffff817f7827>] dump_stack+0x4f/0x7b
       [<ffffffff81084955>] warn_slowpath_common+0x85/0xc0
       [<ffffffff810849d1>] warn_slowpath_fmt+0x41/0x50
       [<ffffffffc0139f2c>] intel_crtc_update_cursor+0x14c/0x4d0 [i915]
       [<ffffffffc01497f4>] __intel_set_mode+0x6c4/0x750 [i915]
       [<ffffffffc0150143>] intel_crtc_set_config+0x473/0x5c0 [i915]
       [<ffffffff81467da9>] drm_mode_set_config_internal+0x69/0x120
       [<ffffffff8146c1b9>] drm_mode_setcrtc+0x189/0x540
       [<ffffffff8145c7e0>] drm_ioctl+0x1a0/0x6a0
       [<ffffffff810b3b41>] ? get_parent_ip+0x11/0x50
       [<ffffffff811e9c28>] do_vfs_ioctl+0x2f8/0x530
       [<ffffffff810d0f7d>] ? trace_hardirqs_on+0xd/0x10
       [<ffffffff812e7746>] ? selinux_file_ioctl+0x56/0x100
       [<ffffffff811e9ee1>] SyS_ioctl+0x81/0xa0
       [<ffffffff81801617>] system_call_fastpath+0x12/0x6f
      ---[ end trace abf0f71163290a96 ]---
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      c0165304
    • Maarten Lankhorst's avatar
      drm/i915: Set hwmode during readout. · b8b7fade
      Maarten Lankhorst authored
      This was introduced after converting hw readout to atomic,
      so it should have been part of the revert too.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90929Reported-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Tested-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      b8b7fade