1. 06 2月, 2014 3 次提交
    • R
      drm/msm/mdp4: pageflip fixes · b69720c0
      Rob Clark 提交于
      Backport a few fixes found in the course of getting mdp5 working.
      There is a window of time after pageflip is requested, before we
      start scanning out the new fb (ie. while we are waiting for gpu).
      During that time we need to continue holding a reference to the
      still-current scanout fb, to avoid the backing gem bo's from being
      destroyed.
      
      Possibly a common mdp_crtc parent class could be useful to share
      some of this logic between mdp4_crtc and mdp5_crtc.  OTOH, this
      all can be removed from the driver once atomic is in place, as
      plane/crtc updates get deferred until all fb's are ready before
      calling in to .page_flip(), etc.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      b69720c0
    • R
      drm/msm/mdp5: fix ref leaks in error paths · 37033a76
      Rob Clark 提交于
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      37033a76
    • R
      drm/msm: fix inconsequential typo · 7896052d
      Rob Clark 提交于
      Small typo I noticed in the mdp4_plane code.. no consequence because
      PIPE_SRC_XY and PIPE_DST_XY have same register layout.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      7896052d
  2. 14 1月, 2014 1 次提交
  3. 10 1月, 2014 13 次提交
    • R
      drm/msm: add a330/apq8x74 · 55459968
      Rob Clark 提交于
      Add support for adreno 330.  Not too much different, just a few
      differences in initial configuration plus setting OCMEM base.
      Userspace support is already in upstream mesa.
      
      Note that the existing DT code is simply using the bindings from
      downstream android kernel, to simplify porting of this driver to
      existing devices.  These do not constitute any committed/stable
      DT ABI.  The addition of proper DT bindings will be a subsequent
      patch, at which point (as best as possible) I will try to support
      either upstream bindings or what is found in downstream android
      kernel, so that existing device DT files can be used.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      55459968
    • R
      drm/msm: add mdp5/apq8x74 · 06c0dd96
      Rob Clark 提交于
      Add support for the new MDP5 display controller block.  The mapping
      between parts of the display controller and KMS is:
      
        plane   -> PIPE{RGBn,VIGn}             \
        crtc    -> LM (layer mixer)            |-> MDP "device"
        encoder -> INTF                        /
        connector -> HDMI/DSI/eDP/etc          --> other device(s)
      
      Unlike MDP4, it appears we can get by with a single encoder, rather
      than needing a different implementation for DTV, DSI, etc.  (Ie. the
      register interface is same, just different bases.)
      
      Also unlike MDP4, all the IRQs for other blocks (HDMI, DSI, etc) are
      routed through MDP.
      
      And finally, MDP5 has this "Shared Memory Pool" (called "SMP"), from
      which blocks need to be allocated to the active pipes based on fetch
      stride.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      06c0dd96
    • R
      drm/msm: add hdmi support for apq8x74/mdp5 · dada25bd
      Rob Clark 提交于
      The HDMI block is basically the same between older SoC's with mdp4
      display controller, and newer ones with mdp5.
      
      So mostly this consists of better abstracting out the different sets of
      regulators, clks, etc.  In particular, for regulators and clks we can
      split it up by what is needed for hot plug detect to work, and what is
      needed to light up the display.
      
      Also, 8x74 has a new phy.. a very simple one, but split out into a
      different mmio space.  And with mdp5, the irq is shared with mdp, so we
      don't directly register our own irq handler.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      dada25bd
    • R
      drm/msm: move irq utils to mdp_kms · 9e0efa63
      Rob Clark 提交于
      We'll want basically the same thing for mdp5, so refactor it out so it
      can be shared.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      9e0efa63
    • R
      drm/msm: split out msm_kms.h · dd2da6e3
      Rob Clark 提交于
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      dd2da6e3
    • R
      drm/msm: mdp4_format -> mdp_format · 10a02eb6
      Rob Clark 提交于
      This can be shared between mdp4 and mdp5.  Both use the same set of
      parameters to describe the format to the hw.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      10a02eb6
    • R
      drm/msm: resync generated headers · facb4f4e
      Rob Clark 提交于
      resync to latest envytools db, add mdp5 registers
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      facb4f4e
    • R
      drm/msm: move mdp4 -> mdp/mdp4 · 2e54a92f
      Rob Clark 提交于
      There are some little bits and pieces that mdp4 and mdp5 can share, so
      move things around so that we can have both in a common parent
      directory.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      2e54a92f
    • R
      drm/msm: add support for msm8060ab/bstem · e529c7e6
      Rob Clark 提交于
      This adds the necessary configuration for the APQ8060A SoC (dual-core
      krait + a320 gpu) as found on the bstem board.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      e529c7e6
    • R
      drm/msm: add support for non-IOMMU systems · 871d812a
      Rob Clark 提交于
      Add a VRAM carveout that is used for systems which do not have an IOMMU.
      
      The VRAM carveout uses CMA.  The arch code must setup a CMA pool for the
      device (preferrably in highmem.. a 256m-512m VRAM pool in lowmem is not
      cool).  The user can configure the VRAM pool size using msm.vram module
      param.
      
      Technically, the abstraction of IOMMU behind msm_mmu is not strictly
      needed, but it simplifies the GEM code a bit, and will be useful later
      when I add support for a2xx devices with GPUMMU, so I decided to keep
      this part.
      
      It appears to be possible to configure the GPU to restrict access to
      addresses within the VRAM pool, but this is not done yet.  So for now
      the GPU will refuse to load if there is no sort of mmu.  Once address
      based limits are supported and tested to confirm that we aren't giving
      the GPU access to arbitrary memory, this restriction can be lifted
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      871d812a
    • R
      drm/msm: fix bus scaling · bf2b33af
      Rob Clark 提交于
      This got a bit broken with original patches when re-arranging things to
      move dependencies on mach-msm inside #ifndef OF.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      bf2b33af
    • R
      drm/msm: add missing MODULE_FIRMWARE()s · 3b57f23b
      Rob Clark 提交于
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      3b57f23b
    • R
      drm/msm: COMPILE_TEST support · 3083894f
      Rob Clark 提交于
      With a simple stub, we can get COMPILE_TEST support.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      3083894f
  4. 18 12月, 2013 2 次提交
  5. 02 11月, 2013 7 次提交
  6. 12 10月, 2013 1 次提交
    • D
      drm: Add separate Kconfig option for fbdev helpers · 92b6f89f
      Daniel Vetter 提交于
      For drivers which might want to disable fbdev legacy support.
      
      Select the new option in all drivers for now, so this shouldn't result
      in any change. Drivers need some work anyway to make fbdev support
      optional (if they have it implemented, that is), so the recommended
      way to expose this is by adding per-driver options. At least as long
      as most drivers don't support disabling the fbdev support.
      
      v2: Update for new drm drivers msm and rcar-du. Note that Rob's msm
      driver can already take advantage of this, which allows us to build
      msm without any fbdev depencies in the kernel!
      
      v3: Move the MODULE_* stuff from the fbdev helper file to
      drm_crtc_helper.c.
      
      Cc: David Herrmann <dh.herrmann@gmail.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Acked-by: NDave Airlie <airlied@linux.ie>
      Reviewed-by: NChon Ming Lee <chon.ming.lee@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      92b6f89f
  7. 28 9月, 2013 4 次提交
  8. 16 9月, 2013 1 次提交
  9. 12 9月, 2013 4 次提交
  10. 11 9月, 2013 3 次提交
    • R
      drm/msm: fix cmdstream size check · 19872533
      Rob Clark 提交于
      Need to check size+offset against bo size (duh!).. now we have a test
      case to make sure I've done it right:
      
      https://github.com/freedreno/msmtest/blob/master/submittest.c
      
      Also, use DRM_ERROR() for error case traces, which makes debugging
      userspace easier when enabling debug traces is too much.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      19872533
    • R
      drm/msm: hangcheck harder · 26791c48
      Rob Clark 提交于
      If gpu locks up with the rptr shortly beyond the wrap-around point in
      the ringbuffer, because the rptr was not reset (but wptr is, by virtue
      of resetting rb->cur), we could end up in a scenario where we think
      there is not enough space in the ringbuffer for the next cmds.  And
      since the CP won't reset rptr until after processing an IB, this leaves
      things in a sort of deadlock.
      
      So reset rptr too.  And a bit more spiffing up of hangcheck to make
      things easier to debug.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      26791c48
    • R
      drm/msm: handle read vs write fences · bf6811f3
      Rob Clark 提交于
      The userspace API already had everything needed to handle read vs write
      synchronization.  This patch actually bothers to hook it up properly, so
      that we don't need to (for example) stall on userspace read access to a
      buffer that gpu is also still reading.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      bf6811f3
  11. 02 9月, 2013 1 次提交