1. 09 Nov, 2017 1 commit
    • Chris Wilson's avatar
      drm/i915: Filter out spurious execlists context-switch interrupts · 5d266692
      Chris Wilson authored
      Back in commit a4b2b015 ("drm/i915: Don't mark an execlists
      context-switch when idle") we noticed the presence of late
      context-switch interrupts. We were able to filter those out by looking
      at whether the ELSP remained active, but in commit beecec90
      ("drm/i915/execlists: Preemption!") that became problematic as we now
      anticipate receiving a context-switch event for preemption while ELSP
      may be empty. To restore the spurious interrupt suppression, add a
      counter for the expected number of pending context-switches and skip if
      we do not need to handle this interrupt to make forward progress.
      
      v2: Don't forget to switch on for preempt.
      v3: Reduce the counter to a on/off boolean tracker. Declare the HW as
      active when we first submit, and idle after the final completion event
      (with which we confirm the HW says it is idle), and track each source
      of activity separately. With a finite number of sources, it should aide
      us in debugging which gets stuck.
      
      Fixes: beecec90 ("drm/i915/execlists: Preemption!")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Michal Winiarski <michal.winiarski@intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171023213237.26536-3-chris@chris-wilson.co.ukReviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
      (cherry picked from commit 4a118ecb)
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      5d266692
  2. 06 Nov, 2017 1 commit
  3. 04 Nov, 2017 2 commits
  4. 03 Nov, 2017 3 commits
    • Akshu Agrawal's avatar
      drm/amd/amdgpu: Enabling ACP clock in hw_init (v2) · 37c5f2c9
      Akshu Agrawal authored
      Enabling of ACP in hw_init does away with requirement of order
      of probe on designware_i2s and acp dma driver. designware_i2s
      reads i2s registers and this use to fail if acp dma driver was not probed
      prior to it.
      
      BUG=:b:62103837
      TEST=modprobe snd-soc-acp-pcm
      modprobe snd-soc-acp-rt5645-mach
      aplay -l
      **** List of PLAYBACK Hardware Devices ****
      card 0: acprt5650 [acprt5650], device 0: RT5645_AIF1 rt5645-aif1-0 []
        Subdevices: 1/1
          Subdevice #0: subdevice #0
      
      v2: use proper device in dev_err to fix warnings (Alex)
      Signed-off-by: default avatarAkshu Agrawal <akshu.agrawal@amd.com>
      Reviewed-on: https://chromium-review.googlesource.com/670207Reviewed-by: default avatarJason Clinton <jclinton@chromium.org>
      Reviewed-on: https://chromium-review.googlesource.com/676628Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      37c5f2c9
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2017-10-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-next · 36a5fdf7
      Dave Airlie authored
      This time really the last i915 batch for v4.15:
      
      - PSR state tracking in crtc state (Ville)
      - Fix eviction when the GGTT is idle but full (Chris)
      - BDW DP aux channel timeout fix (James)
      - LSPCON detection fixes (Shashank)
      - Use for_each_pipe to iterate over pipes (Mika Kahola)
      - Replace *_reference/unreference() or *_ref/unref with _get/put() (Harsha)
      - Refactoring and preparation for DDI encoder type cleanup (Ville)
      - Broadwell DDI FDI buf translation fix (Chris)
      - Read CSB and CSB write pointer from HWSP in GVT-g VM if available (Weinan)
      - GuC/HuC firmware loader refactoring (Michal)
      - Make shrinking more effective and not stall so much (Chris)
      - Cannonlake PLL fixes (Rodrigo)
      - DP MST connector error propagation fixes (James)
      - Convert timers to use timer_setup (Kees Cook)
      - Skylake plane enable/disable unification (Juha-Pekka)
      - Fix to actually free driver internal objects when requested (Chris)
      - DDI buf trans refactoring (Ville)
      - Skip waking the device to service pwrite (Chris)
      - Improve DSI VBT backlight parsing abstraction (Madhav)
      - Cannonlake VBT DDC pin mapping fix (Rodrigo)
      
      * tag 'drm-intel-next-2017-10-23' of git://anongit.freedesktop.org/drm/drm-intel: (87 commits)
        drm/i915: Update DRIVER_DATE to 20171023
        drm/i915/cnl: Map VBT DDC Pin to BSpec DDC Pin.
        drm/i915: Let's use more enum intel_dpll_id pll_id.
        drm/i915: Use existing DSI backlight ports info
        drm/i915: Parse DSI backlight/cabc ports.
        drm/i915: Skip waking the device to service pwrite
        drm/i915/crt: split compute_config hook by platforms
        drm/i915: remove g4x lowfreq_avail and has_pipe_cxsr
        drm/i915: Drop the redundant hdmi prefix/suffix from a lot of variables
        drm/i915: Unify error handling for missing DDI buf trans tables
        drm/i915: Centralize the SKL DDI A/E vs. B/C/D buf trans handling
        drm/i915: Kill off the BXT buf_trans default_index
        drm/i915: Pass encoder type to cnl_ddi_vswing_sequence() explicitly
        drm/i915: Integrate BXT into intel_ddi_dp_voltage_max()
        drm/i915: Pass the level to intel_prepare_hdmi_ddi_buffers()
        drm/i915: Pass the encoder type explicitly to skl_set_iboost()
        drm/i915: Extract intel_ddi_get_buf_trans_hdmi()
        drm/i915: Relocate intel_ddi_get_buf_trans_*() functions
        drm/i915: Flush the idle-worker for debugfs/i915_drop_caches
        drm/i915: adjust get_crtc_fence_y_offset() to use base.y instead of crtc.y
        ...
      36a5fdf7
    • Arnd Bergmann's avatar
      drm/amdgpu/virt: don't dereference undefined 'module' struct · e477e940
      Arnd Bergmann authored
      Accessing the THIS_MODULE directly is only possible when modules
      are enabled, otherwise we get a build failure:
      
      drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c: In function 'amdgpu_virt_init_data_exchange':
      drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:331:20: error: dereferencing pointer to incomplete type 'struct module'
      
      Further, THIS_MODULE is NULL when the driver is built-in, so the
      code would likely cause a NULL pointer dereference.
      
      This adds an #ifdef check to avoid the compile-time error, plus
      a NULL pointer check before dereferencing THIS_MODULE. It might
      be better to find a way to avoid using the module version
      altogether.
      
      Fixes: 2dc8f81e ("drm/amdgpu: SR-IOV data exchange between PF&VF")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
      Reviewed-By: default avatarXiangliang Yu <Xiangliang.Yu@amd.com>
      e477e940
  5. 02 Nov, 2017 33 commits