1. 22 Sep, 2016 4 commits
    • Paulo Zanoni's avatar
      drm/i915: don't forget to set intel_crtc->dspaddr_offset on SKL+ · 4c0b8a8b
      Paulo Zanoni authored
      We never remembered to set it (so it was zero), but this was not a
      problem in the past due to the way handled the hardware registers.
      Unfortunately we changed how we set the hardware and forgot to set
      intel_crtc->dspaddr_offset.
      
      This started to reflect on a few kms_frontbuffer_tracking subtests
      that relied on page flips with CRTCs that don't point to the x:0,y:0
      coordinates of the frontbuffer. After the page flip the CRTC was
      showing the x:0,y:0 coordinate of the frontbuffer instead of
      x:500,y:500. This problem is present even if we don't enable FBC or
      PSR.
      
      While trying to bisect it I realized that the first bad commit
      actually just gives me a black screen for the mentioned tests instead
      of showing the wrong x:0,y:0 offsets. A few commits later the black
      screen problem goes away and we get to the point where the code is
      today, but I'll consider the black screen as the first bad commit
      since it's the point where the IGT subtests start to fail.
      
      Fixes: 6687c906 ("drm/i915: Rewrite fb rotation GTT handling")
      Testcase: kms_frontbuffer_tracking/fbc-1p-primscrn-shrfb-pgflip-blt
      Testcase: kms_frontbuffer_tracking/fbc-1p-primscrn-shrfb-evflip-blt
      Testcase: kms_frontbuffer_tracking/fbc-1p-shrfb-fliptrack
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
      Cc: drm-intel-fixes@lists.freedesktop.org
      Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1471644203-23463-1-git-send-email-paulo.r.zanoni@intel.com
      4c0b8a8b
    • Paulo Zanoni's avatar
      drm/i915/fbc: disable FBC on FIFO underruns · 61a585d6
      Paulo Zanoni authored
      Ever since I started working on FBC I was already aware that FBC can
      really amplify the FIFO underrun symptoms. On systems where FIFO
      underruns were harmless error messages, enabling FBC would cause the
      underruns to give black screens.
      
      We recently tried to enable FBC on Haswell and got reports of a system
      that would hang after some hours of uptime, and the first bad commit
      was the one that enabled FBC. We also observed that this system had
      FIFO underrun error messages on its dmesg. Although we don't have any
      evidence that fixing the underruns would solve the bug and make FBC
      work properly on this machine, IMHO it's better if we minimize the
      amount of possible problems by just giving up FBC whenever we detect
      an underrun.
      
      v2: New version, different implementation and commit message.
      v3: Clarify the fact that we run from an IRQ handler (Chris).
      v4: Also add the underrun_detected check at can_choose() to avoid
          misleading dmesg messages (DK).
      v5: Fix Engrish, use READ_ONCE on the unlocked read (Chris).
      
      Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
      Cc: Lyude <cpaul@redhat.com>
      Cc: stevenhoneyman@gmail.com <stevenhoneyman@gmail.com>
      Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1473773937-19758-1-git-send-email-paulo.r.zanoni@intel.com
      61a585d6
    • Pandiyan, Dhinakaran's avatar
      drm/i915/dp: DP audio API changes for MST · f9318941
      Pandiyan, Dhinakaran authored
      DP MST provides the capability to send multiple video and audio streams
      through a single port. This requires the API's between i915 and audio
      drivers to distinguish between multiple audio capable displays that can be
      connected to a port. Currently only the port identity is shared in the
      APIs. This patch adds support for MST with an additional parameter
      'int pipe'. The existing parameter 'port' does not change it's meaning.
      
      pipe =
      	MST	: display pipe that the stream originates from
      	Non-MST	: -1
      
      Affected APIs:
      struct i915_audio_component_ops
      -       int (*sync_audio_rate)(struct device *, int port, int rate);
      +	int (*sync_audio_rate)(struct device *, int port, int pipe,
      +	     int rate);
      
      -       int (*get_eld)(struct device *, int port, bool *enabled,
      -                       unsigned char *buf, int max_bytes);
      +       int (*get_eld)(struct device *, int port, int pipe,
      +		       bool *enabled, unsigned char *buf, int max_bytes);
      
      struct i915_audio_component_audio_ops
      -       void (*pin_eld_notify)(void *audio_ptr, int port);
      +       void (*pin_eld_notify)(void *audio_ptr, int port, int pipe);
      
      This patch makes dummy changes in the audio drivers (thanks Libin) for
      build to succeed. The audio side drivers will send the right 'pipe' values
      for MST in patches that will follow.
      
      v2:
      Renamed the new API parameter from 'dev_id' to 'pipe'. (Jim, Ville)
      Included Asoc driver API compatibility changes from Jeeja.
      Added WARN_ON() for invalid pipe in get_saved_encoder(). (Takashi)
      Added comment for av_enc_map[] definition. (Takashi)
      
      v3:
      Fixed logic error introduced while renaming 'dev_id' as 'pipe' (Ville)
      Renamed get_saved_encoder() to get_saved_enc() to reduce line length
      
      v4:
      Rebased.
      Parameter check for pipe < -1 values in get_saved_enc() (Ville)
      Switched to for_each_pipe() in get_saved_enc() (Ville)
      Renamed 'pipe' to 'dev_id' in audio side code (Takashi)
      
      v5:
      Included a comment for the dev_id arg. (Libin)
      Signed-off-by: default avatarDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1474488168-2343-1-git-send-email-dhinakaran.pandiyan@intel.com
      f9318941
    • Jani Nikula's avatar
      drm/i915: keep declarations in i915_drv.h · efab0698
      Jani Nikula authored
      Fix sparse warnings:
      
      drivers/gpu/drm/i915/i915_drv.c:1179:5: warning: symbol
      'i915_driver_load' was not declared. Should it be static?
      
      drivers/gpu/drm/i915/i915_drv.c:1267:6: warning: symbol
      'i915_driver_unload' was not declared. Should it be static?
      
      drivers/gpu/drm/i915/i915_drv.c:2444:25: warning: symbol 'i915_pm_ops'
      was not declared. Should it be static?
      
      Fixes: 42f5551d ("drm/i915: Split out the PCI driver interface to i915_pci.c")
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1473946137-1931-3-git-send-email-jani.nikula@intel.com
      efab0698
  2. 21 Sep, 2016 11 commits
  3. 20 Sep, 2016 3 commits
  4. 19 Sep, 2016 8 commits
  5. 16 Sep, 2016 4 commits
  6. 15 Sep, 2016 10 commits