1. 09 11月, 2013 6 次提交
  2. 02 11月, 2013 1 次提交
  3. 29 10月, 2013 2 次提交
    • D
      drm/i915: Fix the PPT fdi lane bifurcate state handling on ivb · 1fbc0d78
      Daniel Vetter 提交于
      Originally I've thought that this is leftover hw state dirt from the
      BIOS. But after way too much helpless flailing around on my part I've
      noticed that the actual bug is when we change the state of an already
      active pipe.
      
      For example when we change the fdi lines from 2 to 3 without switching
      off outputs in-between we'll never see the crucial on->off transition
      in the ->modeset_global_resources hook the current logic relies on.
      
      Patch version 2 got this right by instead also checking whether the
      pipe is indeed active. But that in turn broke things when pipes have
      been turned off through dpms since the bifurcate enabling is done in
      the ->crtc_mode_set callback.
      
      To address this issues discussed with Ville in the patch review move
      the setting of the bifurcate bit into the ->crtc_enable hook. That way
      we won't wreak havoc with this state when userspace puts all other
      outputs into dpms off state. This also moves us forward with our
      overall goal to unify the modeset and dpms on paths (which we need to
      have to allow runtime pm in the dpms off state).
      
      Unfortunately this requires us to move the bifurcate helpers around a
      bit.
      
      Also update the commit message, I've misanalyzed the bug rather badly.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70507Tested-by: NJan-Michael Brummer <jan.brummer@tabos.org>
      Cc: stable@vger.kernel.org
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1fbc0d78
    • V
      drm/i915: Clamp cursor coordinates to int16_t range · 92e76c8c
      Ville Syrjälä 提交于
      We store cursor_x/y as int16_t internally, but the user provided
      coordinates are int32_t. Clamp the coordinates so that they don't
      overflow the int16_t. Since the cursor is only 64x64 in size, the
      clamping can't cause any visual changes.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      92e76c8c
  4. 28 10月, 2013 2 次提交
    • V
      drm/i915: Add support for pipe_bpp readout · 4f56d12e
      Ville Syrjälä 提交于
      On CTG+ read out the pipe bpp setting from hardware and fill it into
      pipe config. Also check it appropriately.
      
      v2: Don't do the pipe_bpp extraction inside the PCH only code block on
          ILK+.
          Avoid the PIPECONF read as we already have read it for the
          PIPECONF_EANBLE check.
      
      Note: This is already in drm-intel-next-queued as
      commit 42571aef
      Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Date:   Fri Sep 6 23:29:00 2013 +0300
      
          drm/i915: Add support for pipe_bpp readout
      
      but is needed for the following bugfix.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4f56d12e
    • I
      drm/i915: use power get/put instead of set for power on after init · baa70707
      Imre Deak 提交于
      Currently we make sure that all power domains are enabled during driver
      init and turn off unneded ones only after the first modeset. Similarly
      during suspend we enable all power domains, which will remain on through
      the following resume until the first modeset.
      
      This logic is supported by intel_set_power_well() in the power domain
      framework. It would be nice to simplify the API, so that we only have
      get/put functions and make it more explicit on the higher level how this
      "power well on during init" logic works. This will make it also easier
      if in the future we want to shorten the time the power wells are on.
      
      For this add a new device private flag tracking whether we have the
      power wells on because of init/suspend and use only
      intel_display_power_get()/put(). As nothing else uses
      intel_set_power_well() we can remove it.
      
      This also fixes
      
      commit 6efdf354
      Author: Imre Deak <imre.deak@intel.com>
      Date:   Wed Oct 16 17:25:52 2013 +0300
      
          drm/i915: enable only the needed power domains during modeset
      
      where removing intel_set_power_well() resulted in not releasing the
      reference on the power well that was taken during init and thus leaving
      the power well on all the time. Regression reported by Paulo.
      
      v2:
      - move the init_power_on flag to the power_domains struct (Daniel)
      
      v3:
      - add note about this being a regression fix too (Paulo)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      baa70707
  5. 22 10月, 2013 2 次提交
  6. 21 10月, 2013 1 次提交
    • C
      drm/i915: Whitespace alignment fix for block header in display error state · 1cf84bb6
      Chris Wilson 提交于
      The current output looks like:
      
      Num Pipes: 2
      Pipe [0]:
        SRC: 027f01df
      Plane [0]:
        CNTR: d9000000
        STRIDE: 00001400
        SIZE: 031f04ff
        POS: 00000000
        ADDR: 00020000
      Cursor [0]:
        CNTR: 00000000
        POS: 00000000
        BASE: 00000000
      Pipe [1]:
        SRC: 04ff031f
      Plane [1]:
        CNTR: 01000000
        STRIDE: 00000000
        SIZE: 018f02cf
        POS: 00000000
        ADDR: 00000000
      Cursor [1]:
        CNTR: 00000000
        POS: 00000000
        BASE: 00000000
        CPU transcoder: A
        CONF: 00000000
        HTOTAL: 031f027f
        HBLANK: 03170287
        HSYNC: 02ef028f
        VTOTAL: 020c01df
        VBLANK: 020401e7
        VSYNC: 01eb01e9
        CPU transcoder: B
        CONF: 80000000
        HTOTAL: 059f04ff
        HBLANK: 059f04ff
        HSYNC: 054f052f
        VTOTAL: 0336031f
        VBLANK: 0336031f
        VSYNC: 03280322
      
      which lacks the important visual clue to demarque the transcoder blocks
      from the last cursor.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1cf84bb6
  7. 18 10月, 2013 4 次提交
  8. 17 10月, 2013 4 次提交
    • D
      drm/i915: prevent tiling changes on framebuffer backing storage · 80075d49
      Daniel Vetter 提交于
      Assuming that all framebuffer related metadata is invariant simplifies
      our userspace input data checking. And current userspace always first
      updates the tiling of an object before creating a framebuffer with it.
      
      This allows us to upconvert a check in pin_and_fence to a WARN.
      
      In the future it should also be helpful to know which buffer objects
      are potential scanout targets for e.g. frontbuffer rendering tracking
      and similar things.
      
      Note that SNA shipped for one prerelease with code which will be
      broken through this patch. But users shouldn't notice since it's
      purely an optimization and will transparently fall back to allocating
      a new fb. i-g-t also had offending code (now fixed), but we don't
      really care about breaking the test-suite.
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Grumpily-reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      80075d49
    • D
      drm/i915: grab dev->struct_mutex around framebuffer_init · dd4916c5
      Daniel Vetter 提交于
      We look at gem state (like obj->tiling/obj->stride), we better have
      the relevant locks.
      
      Right now this doesn't matter much since most of these checks are
      a curtesy to safe buggy userspace, but I'd like to freeze the tiling
      once we have framebuffer objects attached. And then locking matters.
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      dd4916c5
    • A
      drm/i915: preserve dispaly init order on ByT · 585a94b8
      Artem Bityutskiy 提交于
      This patch changes HDMI port registration order for the BayTrail platform.
      
      The story is that in kernel version 3.11 i915 supported only one HDMI port -
      the HDMIB port. So this port ended up being HDMI-1 in user-space.
      
      But commit '6f6005a5 drm/i915: expose HDMI connectors on port C on BYT'
      introduced HDMIC port support. And added HDMIC  registration prior to HDMIB,
      so HDMIB became HDMI-2 and HDMIC became HDMI-1.
      
      Well, this is fine as far as the kernel is concerned. i915 does not give any
      guarantees to the numbering, and has never given them.
      
      However, this breaks wayland setup in Tizen IVI. We have only one single HDMI
      port on our hardware, and it is connected to HDMIB. Our configuration relies on
      the fact that it is HDMI-1.
      
      Well, certainly this is user-space problem which was exposed with Jesse's
      patch. However, there is a reason why we have to do this assumption - we use
      touchscreen monitors and we have to associate event devices with the monitors,
      and this is not easy to do dynamically, so we just have a static setup.
      
      Anyway, while the user-space setup will have to be fixed regardless, let's
      chane the HDMI port registration order so that HDMIB stays HDMI-1, just like it
      was in 3.11. Simply because there is no strong reason for changing the order in
      the kernel, and it'll help setups like ours in sense that we'll have more time
      for fixing the issue properly.
      
      Also amend the commentary which looks a bit out-of-date.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      [danvet: Drop the commment, SDVOC is gone and we have a proper HDMIC
      define now.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      585a94b8
    • D
      drm/i915: Use pipe_name() instead of the pipe number · 6f2bcceb
      Damien Lespiau 提交于
      Yet other direct usages of the pipe number instead of pipe_name().
      We've been tracking them lately but managed to miss these last ones.
      
      v2: Catch them all! (Ville)
      
      Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> (v1)
      Signed-off-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6f2bcceb
  9. 16 10月, 2013 1 次提交
  10. 14 10月, 2013 2 次提交
  11. 12 10月, 2013 3 次提交
  12. 11 10月, 2013 2 次提交
  13. 10 10月, 2013 10 次提交