1. 09 4月, 2013 3 次提交
  2. 07 4月, 2013 2 次提交
    • B
      drm/i915: PCH_NOP · 40c7ead9
      Ben Widawsky 提交于
      Given certain fusing options discussed in the previous patch, it's
      possible to end up with platforms that normally have PCH but that PCH
      doesn't actually exist. In many cases, this is easily remedied with
      setting 0 pipes. This covers the other corners.
      
      Requiring this is a symptom of improper code splitting (using
      HAS_PCH_SPLIT instead of proper GEN checking, basically). I do not want
      to fix this.
      
      v2: Remove PCH reflck after change in previous patch (Daniel)
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      40c7ead9
    • B
      drm/i915: Support PCH no display · e3c74757
      Ben Widawsky 提交于
      GEN supports a fusing option which subtracts the PCH display (making the
      CPU display also useless). In this configuration MMIO which gets decoded
      to a certain range will hang the CPU.
      
      For us, this is sort of the equivalent of having no pipes, and we can
      easily modify some code to not do certain things with no pipes.
      
      v2: Moved the num pipes check up in the call chain, and removed extra
      checks noted by Daniel. For more details, see:
      http://lists.freedesktop.org/archives/intel-gfx/2013-March/025746.html
      
      v3: Drop the intel_setup_overlay check (Daniel)
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e3c74757
  3. 06 4月, 2013 7 次提交
  4. 03 4月, 2013 18 次提交
  5. 02 4月, 2013 2 次提交
  6. 28 3月, 2013 8 次提交
    • D
      drm/i915: fixup fb bpp computation in pipe_config_set_bpp · d42264b1
      Daniel Vetter 提交于
      Ville pointed out that my assumption that no unsupported pixel format
      can get past the pipe config computation stage to the platform
      update_plane callbacks is wrong. The reason is that this function
      still checks the old fb->depth value instead of the new pixel_format.
      
      While checking with all the other places that use this I've noticed
      that intel_framebuffer_init already has all the platform checks we
      need, so replace those checks with a WARN_ON.
      
      Since fb->depth isn't set for YUV pixel formats and since we already
      can't create an fb with an rgb layout not support on the running
      platform I /think/ this patch doesn't fix any bug.
      
      But it surely looks better!
      
      v2: BGR formats are also only gen4+, so add the corresponding WARN_ON,
      too (Ville).
      
      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>
      d42264b1
    • D
      drm/i915: check fb->pixel_format instead of bits_per_pixel · 72f4901e
      Daniel Vetter 提交于
      We've mostly switched over to the new more flexible schema, but
      there's one check left in the modeset code.
      
      Motivated by a question from Ville whether there's really no way an
      unsupported pixel_format can escape into our platform update_plane
      callbacks.
      
      v2: Ville noticed that the fb->depth check is redudant when we already
      check fb->pixel_format.
      
      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>
      72f4901e
    • D
      drm/i915: fix up _wait_for macro · 1d5bfac9
      Daniel Vetter 提交于
      As Thomas Gleixner spotted, it's rather horrible racy:
      - We can miss almost a full tick, so need to compensate by 1 jiffy.
      - We need to re-check the condition when having timed-out, since a
        the last check could have been before the timeout expired. E.g. when
        we've been preempted or a long irq happened.
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Reported-by: NJack Winter <jbh@alchemy.lu>
      Cc: Jack Winter <jbh@alchemy.lu>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1d5bfac9
    • D
      drm/i915: fold wait_for_atomic_us into wait_for_atomic · 6effa33b
      Daniel Vetter 提交于
      Since
      
      commit bcf9dcc1
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Sun Jul 15 09:42:38 2012 +0100
      
          drm/i915: Workaround hang with BSD and forcewake on SandyBridge
      
      and
      
      commit 0cc2764c
      Author: Ben Widawsky <ben@bwidawsk.net>
      Date:   Sat Sep 1 22:59:48 2012 -0700
      
          drm/i915: use cpu_relax() in wait_for_atomic
      
      these two macros are essentially the same, so unify them. We keep the
      _us version since it's a nice documentation for smaller timeouts.
      
      v2: Fixup time unit conversion, _wait_for takes ms (Ville).
      
      Cc: Jack Winter <jbh@alchemy.lu>
      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>
      6effa33b
    • P
      drm/i915: remove "inline" keyword from ironlake_disable_display_irq · 0ff9800a
      Paulo Zanoni 提交于
       - It's a static function
       - I just added a few more users to it
       - Its sister ironlake_enable_display_irq is not marked as inline
       - The compiler will still inline if it thinks it should do
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0ff9800a
    • D
      drm/i915: clean up pipe bpp confusion · 5d2d38dd
      Daniel Vetter 提交于
      - gen4 and earlier (save for g4x) only really have a 8bpc pipe, with
        the possibility to dither to 6bpc using the panel fitter
      - g4x has hdmi, but no 12 bpc pipe ... !? Clamp hdmi accordingly.
      - TV/SDVO out are the only connectors available on platforms with
        a pipe bpp != 8, add code to force the pipe to 8bpc unconditionally.
      
      <rant>
      The dither handling on gmch platforms is one giant disaster. I'm hoping
      somewhat that vlv enabling will fix this up, but given that the 6bpc
      handling for edp was simply added with another quick hack, I don't have
      high hopes ...
      </rant>
      
      v2: Neither vlv nor g4x have 12bpc pipes. Still set pipe_bpp to 12*3,
      but let the crtc code clamp things down to 10bpc on these platforms.
      
      v3: Fix a bpc vs. bpp mixup in the gen4 and earlier pipe_bpp limiter
      code.
      
      v4: Drop the hunk in intel_hdmi.c about g4x/vlv 12bpc, it was wrong.
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      5d2d38dd
    • D
      drm/i915: clean up plane bpp confusion · baba133a
      Daniel Vetter 提交于
      - There is no 16bpc linear color format in our hw. gen4+ has a 16 bpc
        float layout, but we don't really support it.
      - 10bpc is a gen4+ feature, fix up the support for it.
      - Update_plane should never see a wrong fb bpp value, BUG in the
        corresponding cases.
      
      v2: Rebase on top of Ville's plane pixel layout changes.
      
      v3: Actually drop the old gen4 check for 10bpc planes, spotted
      by Ville Syrjälä.
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      baba133a
    • D
      drm/i915: convert DP autodither code to new infrastructure · 36008365
      Daniel Vetter 提交于
      The old code only handled either 6bpc or 8bpc. Since it's easy to do,
      reorganize the code to be a bit more generic so that it can also handle
      10bpc and 12bpc. Note that we still start with 8bpc, so there's no
      functional change.
      
      Also, since we no don't need to compute the 6BPC flag in the mode_valid
      callback, we can consolidate things a bit. That requires though that
      the link bw computation is moved up in the compute_config callback.
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      36008365