1. 01 Jul, 2013 3 commits
    • Konrad Rzeszutek Wilk's avatar
      drm/i915: make compact dma scatter lists creation work with SWIOTLB backend. · 1625e7e5
      Konrad Rzeszutek Wilk authored
      Git commit 90797e6d
      ("drm/i915: create compact dma scatter lists for gem objects") makes
      certain assumptions about the under laying DMA API that are not always
      correct.
      
      On a ThinkPad X230 with an Intel HD 4000 with Xen during the bootup
      I see:
      
      [drm:intel_pipe_set_base] *ERROR* pin & fence failed
      [drm:intel_crtc_set_config] *ERROR* failed to set mode on [CRTC:3], err = -28
      
      Bit of debugging traced it down to dma_map_sg failing (in
      i915_gem_gtt_prepare_object) as some of the SG entries were huge (3MB).
      
      That unfortunately are sizes that the SWIOTLB is incapable of handling -
      the maximum it can handle is a an entry of 512KB of virtual contiguous
      memory for its bounce buffer. (See IO_TLB_SEGSIZE).
      
      Previous to the above mention git commit the SG entries were of 4KB, and
      the code introduced by above git commit squashed the CPU contiguous PFNs
      in one big virtual address provided to DMA API.
      
      This patch is a simple semi-revert - were we emulate the old behavior
      if we detect that SWIOTLB is online. If it is not online then we continue
      on with the new compact scatter gather mechanism.
      
      An alternative solution would be for the the '.get_pages' and the
      i915_gem_gtt_prepare_object to retry with smaller max gap of the
      amount of PFNs that can be combined together - but with this issue
      discovered during rc7 that might be too risky.
      Reported-and-Tested-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      CC: Chris Wilson <chris@chris-wilson.co.uk>
      CC: Imre Deak <imre.deak@intel.com>
      CC: Daniel Vetter <daniel.vetter@ffwll.ch>
      CC: David Airlie <airlied@linux.ie>
      CC: <dri-devel@lists.freedesktop.org>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      1625e7e5
    • Rui Guo's avatar
      drm/i915: Fix PCH detect with multiple ISA bridges in VM · 6a9c4b35
      Rui Guo authored
      In some virtualized environments (e.g. XEN), there is irrelevant ISA bridge in
      the system. To work reliably, we should scan trhough all the ISA bridge
      devices and check for the first match, instead of only checking the first one.
      Signed-off-by: default avatarRui Guo <firemeteor@users.sourceforge.net>
      [danvet: Fixup conflict with the num_pch_pll removal. And add
      subsystem header to the commit message headline.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      6a9c4b35
    • Paulo Zanoni's avatar
      drm/i915: rename intel_dp_destroy to intel_dp_connector_destroy · 73845adf
      Paulo Zanoni authored
      Because it's the function that destroys the connector, not the
      encoder. And we already have intel_dp_encoder_destroy.
      
      This has annoyed me for a long time.
      Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: default avatarZoltan Nyul <zoltan.nyul@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      73845adf
  2. 28 Jun, 2013 37 commits