1. 07 8月, 2013 1 次提交
  2. 28 6月, 2013 1 次提交
  3. 02 5月, 2013 1 次提交
    • D
      drm/ast: deal with bo reserve fail in dirty update path · 306373b6
      Dave Airlie 提交于
      Port over the mgag200 fix to ast as it suffers the same issue.
      
          On F19 testing, it was noticed we get a lot of errors in dmesg
          about being unable to reserve the buffer when plymouth starts,
          this is due to the buffer being in the process of migrating,
          so it makes sense we can't reserve it.
      
          In order to deal with it, this adds delayed updates for the dirty
          updates, when the bo is unreservable, in the normal console case
          this shouldn't ever happen, its just when plymouth or X is
          pushing the console bo to system memory.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      306373b6
  4. 21 1月, 2013 1 次提交
    • D
      drm: only take the crtc lock for ->cursor_set · bfb89928
      Daniel Vetter 提交于
      First convert ->cursor_set to only take the crtc lock, since that
      seems to be the function with the least amount of state - the core
      ioctl function doesn't check anything which can change at runtime, so
      we don't have any object lifetime issues to contend.
      
      The only thing which is important is that the driver's implementation
      doesn't touch any state outside of that single crtc which is not yet
      properly protected by other locking:
      
      - ast: access the global ast->cache_kmap. Luckily we only have on crtc
        on this driver, so this is fine. Add a comment.
      
      - gma500: calls gma_power_begin|and and psb_gtt_pin|unpin, both which
        have their own locking to protect their state. Everything else is
        crtc-local.
      
      - i915: touches a bit of global gem state, all protected by the One
        Lock to Rule Them All (dev->struct_mutex).
      
      - nouveau: Pre-nv50 is all nice, nv50+ uses the evo channels to queue
        up all display changes. And some of these channels are device
        global. But this is fine now since the previous patch introduced an
        evo channel mutex.
      
      - radeon: Uses some indirect register access for cursor updates, but
        with the previous patches to protect these indirect 2-register
        access patterns with a spinlock, this should be fine now, too.
      
      - vmwgfx: I have no idea how that works - update_cursor_position
        doesn't take any per-crtc argument and I haven't figured out any
        other place where this could be set in some form of a side-channel.
        But vmwgfx definitely has more than one crtc (or at least can
        register more than one), so I have no idea how this is supposed to
        not fail with the current code already. Hence take the easy way out
        and simply acquire all locks (which requires dropping the crtc lock
        the core acquired for us). That way it's not worse off for
        consistency than the old code.
      Reviewed-by: NRob Clark <rob@ti.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      bfb89928
  5. 03 10月, 2012 1 次提交
  6. 24 8月, 2012 1 次提交
  7. 17 5月, 2012 1 次提交
    • D
      drm: Initial KMS driver for AST (ASpeed Technologies) 2000 series (v2) · 312fec14
      Dave Airlie 提交于
      This is the initial driver for the Aspeed Technologies chips found in
      servers. This driver supports the AST 2000, 2100, 2200, 2150 and 2300. It
      doesn't support the AST11xx due to lack of hw to test it on, and them requiring
      different codepaths.
      
      This driver is intended to be used with xf86-video-modesetting in userspace.
      
      This driver has a slightly different design than other KMS drivers, but
      future server chips will probably share similiar setup. As these GPUs commonly
      have low video RAM, it doesn't make sense to put the kms console in VRAM
      always. This driver places the kms console into system RAM, and does dirty
      updates to a copy in video RAM. When userspace sets a new scanout buffer,
      it forcefully evicts the video RAM console, and X can create a framebuffer
      that can use all of of video RAM.
      
      This driver uses TTM but in a very simple fashion to control the eviction
      to system RAM of the console, and multiple servers.
      
      v2: add s/r support, fix Kconfig.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      312fec14