1. 08 3月, 2017 9 次提交
    • V
      drm/i915: Nuke debug messages from the pipe update critical section · c3f8ad57
      Ville Syrjälä 提交于
      printks are slow so we should not be doing them from the vblank evade
      critical section. These could explain why we sometimes seem to
      blow past our 100 usec deadline.
      
      The problem has been there ever since commit bfd16b2a ("drm/i915:
      Make updating pipe without modeset atomic.") but it may not have
      been readily visible until commit e1edbd44 ("drm/i915: Complain
      if we take too long under vblank evasion.") increased our chances
      of noticing it.
      
      Cc: stable@vger.kernel.org
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Fixes: bfd16b2a ("drm/i915: Make updating pipe without modeset atomic.")
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170307205419.19447-1-ville.syrjala@linux.intel.comReviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      c3f8ad57
    • D
      Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued · 7ffe939d
      Daniel Vetter 提交于
      Backmerge drm-next to get at all the good stuff in drm-misc. We need
      that because:
      
      - drm_connector_list_iter conversion for i915 needs the core patches.
      - Maarten's patches to use the new atomic state iterators also need
        the core patches.
      - We need the new link status property to complete the DP retraining
        work, merging through 2 branches wasn't a good idea and we had to
        partially backtrack.
      - Chris needs reservation_object_trylock and we want to roll out
        kref_read everywhere.
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      7ffe939d
    • D
      Merge branch 'linux-4.12' of git://github.com/skeggsb/linux into drm-next · 6796b129
      Dave Airlie 提交于
      - Re-architecture of the code to handle proprietary fw, more abstracted
      to support the multitude of differences that NVIDIA introduce
      - Support in the said code for GP10x ACR and GR fw, giving acceleration
      support \o/
      - Fix for GTX 970 GPUs that are in an odd MMU configuration
      
      * 'linux-4.12' of git://github.com/skeggsb/linux: (60 commits)
        drm/nouveau/fb/gf100-: rework ram detection
        drm/nouveau/fb/gm200: split ram implementation from gm107
        drm/nouveau/fb/gf108: split implementation from gf100
        drm/nouveau/fb/gf100-: modify constructors to allow more customisation
        drm/nouveau/kms/nv50: use drm core i2c-over-aux algorithm
        drm/nouveau/i2c/g94-: return REPLY_M value on reads
        drm/nouveau/i2c: modify aux interface to return length actually transferred
        drm/nouveau/gp10x: enable secboot and GR
        drm/nouveau/gr/gp102: initial support
        drm/nouveau/falcon: support for gp10x msgqueue
        drm/nouveau/secboot: add gp102/gp104/gp106/gp107 support
        drm/nouveau/secboot: put HS code loading code into own file
        drm/nouveau/secboot: support for r375 ACR
        drm/nouveau/secboot: support for r367 ACR
        drm/nouveau/secboot: support for r364 ACR
        drm/nouveau/secboot: workaround bug when starting SEC2 firmware
        drm/nouveau/secboot: support standard NVIDIA HS binaries
        drm/nouveau/secboot: support for unload blob bootloader
        drm/nouveau/secboot: let callers interpret return value of blobs
        drm/nouveau/secboot: support for different load and unload falcons
        ...
      6796b129
    • D
      Merge tag 'drm-intel-next-2017-03-06' of git://anongit.freedesktop.org/git/drm-intel into drm-next · 2e161017
      Dave Airlie 提交于
      4 weeks worth of stuff since I was traveling&lazy:
      
      - lspcon improvements (Imre)
      - proper atomic state for cdclk handling (Ville)
      - gpu reset improvements (Chris)
      - lots and lots of polish around fences, requests, waiting and
        everything related all over (both gem and modeset code), from Chris
      - atomic by default on gen5+ minus byt/bsw (Maarten did the patch to
        flip the default, really this is a massive joint team effort)
      - moar power domains, now 64bit (Ander)
      - big pile of in-kernel unit tests for various gem subsystems (Chris),
        including simple mock objects for i915 device and and the ggtt
        manager.
      - i915_gpu_info in debugfs, for taking a snapshot of the current gpu
        state. Same thing as i915_error_state, but useful if the kernel didn't
        notice something is stick. From Chris.
      - bxt dsi fixes (Umar Shankar)
      - bxt w/a updates (Jani)
      - no more struct_mutex for gem object unreference (Chris)
      - some execlist refactoring (Tvrtko)
      - color manager support for glk (Ander)
      - improve the power-well sync code to better take over from the
        firmware (Imre)
      - gem tracepoint polish (Tvrtko)
      - lots of glk fixes all around (Ander)
      - ctx switch improvements (Chris)
      - glk dsi support&fixes (Deepak M)
      - dsi fixes for vlv and clanups, lots of them (Hans de Goede)
      - switch to i915.ko types in lots of our internal modeset code (Ander)
      - byt/bsw atomic wm update code, yay (Ville)
      
      * tag 'drm-intel-next-2017-03-06' of git://anongit.freedesktop.org/git/drm-intel: (432 commits)
        drm/i915: Update DRIVER_DATE to 20170306
        drm/i915: Don't use enums for hardware engine id
        drm/i915: Split breadcrumbs spinlock into two
        drm/i915: Refactor wakeup of the next breadcrumb waiter
        drm/i915: Take reference for signaling the request from hardirq
        drm/i915: Add FIFO underrun tracepoints
        drm/i915: Add cxsr toggle tracepoint
        drm/i915: Add VLV/CHV watermark/FIFO programming tracepoints
        drm/i915: Add plane update/disable tracepoints
        drm/i915: Kill level 0 wm hack for VLV/CHV
        drm/i915: Workaround VLV/CHV sprite1->sprite0 enable underrun
        drm/i915: Sanitize VLV/CHV watermarks properly
        drm/i915: Only use update_wm_{pre,post} for pre-ilk platforms
        drm/i915: Nuke crtc->wm.cxsr_allowed
        drm/i915: Compute proper intermediate wms for vlv/cvh
        drm/i915: Skip useless watermark/FIFO related work on VLV/CHV when not needed
        drm/i915: Compute vlv/chv wms the atomic way
        drm/i915: Compute VLV/CHV FIFO sizes based on the PM2 watermarks
        drm/i915: Plop vlv/chv fifo sizes into crtc state
        drm/i915: Plop vlv wm state into crtc_state
        ...
      2e161017
    • C
      drm/i915: Use pagecache write to prepopulate shmemfs from pwrite-ioctl · 7c55e2c5
      Chris Wilson 提交于
      Before we instantiate/pin the backing store for our use, we
      can prepopulate the shmemfs filp efficiently using a write into the
      pagecache. We avoid the penalty of instantiating all the pages, important
      if the user is just writing to a few and never uses the object on the GPU,
      and using a direct write into shmemfs allows it to avoid the cost of
      retrieving a page (mostly the clear-before-use, but in theory we could
      curtail swapin) before it is overwritten.
      
      This can be extended later to provide additional specialisation for
      other backends (other than shmemfs). For now it provides a defense
      against very large write-only allocations from exhausting all of system
      memory.
      
      v2: Smelling fixes.
      
      Fixes: fe115628 ("drm/i915: Implement pwrite without struct-mutex")
      References: https://bugs.freedesktop.org/show_bug.cgi?id=99107Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.william.auld@gmail.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Cc: <stable@vger.kernel.org> # v4.10+
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170307120338.7277-2-chris@chris-wilson.co.uk
      7c55e2c5
    • C
      drm/i915: Store a permanent error in obj->mm.pages · 4e5462ee
      Chris Wilson 提交于
      Once the object has been truncated, it is unrecoverable. To facilitate
      detection of this state store the error in obj->mm.pages.
      
      This is required for the next patch which should be applied to v4.10
      (via stable), so we also need to mark this patch for backporting. In
      that regard, let's consider this to be a fix/improvement too.
      
      v2: Avoid dereferencing the ERR_PTR when freeing the object.
      
      Fixes: 1233e2db ("drm/i915: Move object backing storage manipulation to its own locking")
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: <stable@vger.kernel.org> # v4.10+
      Link: http://patchwork.freedesktop.org/patch/msgid/20170307132031.32461-1-chris@chris-wilson.co.ukReviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      4e5462ee
    • P
      drm/i915: move the {skl, bxt}_{i, uni}nit_cdclk declarations · e1cd3325
      Paulo Zanoni 提交于
      Move the {skl,bxt}_{i,uni}nit_cdclk declarations to the place where
      the intel_cdclk.c functions are declared since these functions have
      moved there.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1487712207-17181-1-git-send-email-paulo.r.zanoni@intel.com
      e1cd3325
    • P
      drm/i915: remove potentially confusing IS_G4X checks · 6b9e441d
      Paulo Zanoni 提交于
      The IS_G4X macro is defined as IS_G45 || IS_GM45. We have two points
      in our code where we have an if statement checking for GM45 followed
      by an else if statement checking for IS_G4X. This can be confusing
      since the IS_G4X check won't be catching the previously-checked GM45.
      Someone quickly trying to check which functions run on each platform
      may end up getting confused while reading the code.
      
      Fix the potential confusion by limiting the else if statements to only
      check for the platform that was not already checked earlier in the if
      ladder.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1487620842-22893-3-git-send-email-paulo.r.zanoni@intel.com
      6b9e441d
    • C
      drm/i915: Flush idle work when changing missed-irq fault injection · 64486ae7
      Chris Wilson 提交于
      In order for the missed-irq update to take effect, the device must be
      idle. So when the user updates the fault injection via debugfs, idle the
      device.
      
      v2: Idle is explicitly required for setting test_irq, and good behaviour
      for clearing the missed_irq.
      v3: Use matching types; expanding to more than ulong rings is left as an
      exercise to the reader.
      
      Testcase: igt/drv_missed_irq
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170307155908.14576-1-chris@chris-wilson.co.uk
      64486ae7
  2. 07 3月, 2017 31 次提交