1. 02 4月, 2014 3 次提交
  2. 13 3月, 2014 2 次提交
  3. 19 2月, 2014 1 次提交
    • A
      drm: add DRM_CAPs for cursor size · 8716ed4e
      Alex Deucher 提交于
      Some hardware may not support standard 64x64 cursors.  Add
      a drm cap to query the cursor size from the kernel.  Some examples
      include radeon CIK parts (128x128 cursors) and armada (32x64 or 64x32).
      This allows things like device specific ddxes to remove asics specific
      logic and also allows xf86-video-modesetting to work properly with hw
      cursors on this hardware. Default to 64 if the driver doesn't specify
      a size.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      8716ed4e
  4. 13 2月, 2014 1 次提交
  5. 21 1月, 2014 1 次提交
  6. 20 1月, 2014 1 次提交
  7. 14 1月, 2014 2 次提交
  8. 06 11月, 2013 1 次提交
  9. 22 10月, 2013 1 次提交
    • D
      drm/sysfs: sort out minor and connector device object lifetimes. · 5bdebb18
      Dave Airlie 提交于
      So drm was abusing device lifetimes, by having embedded device structures
      in the minor and connector it meant that the lifetime of the internal drm
      objects (drm_minor and drm_connector) were tied to the lifetime of the device
      files in sysfs, so if something kept those files opened the current code
      would kfree the objects and things would go downhill from there.
      
      Now in reality there is no need for these lifetimes to be so intertwined,
      especailly with hotplugging of devices where we wish to remove the sysfs
      and userspace facing pieces before we can unwind the internal objects due
      to open userspace files or mmaps, so split the objects out so the struct
      device is no longer embedded and do what fbdev does and just allocate
      and remove the sysfs inodes separately.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      5bdebb18
  10. 12 10月, 2013 1 次提交
    • R
      DRM: Armada: Add Armada DRM driver · 96f60e37
      Russell King 提交于
      This patch adds support for the pair of LCD controllers on the Marvell
      Armada 510 SoCs.  This driver supports:
      - multiple contiguous scanout buffers for video and graphics
      - shm backed cacheable buffer objects for X pixmaps for Vivante GPU
        acceleration
      - dual lcd0 and lcd1 crt operation
      - video overlay on each LCD crt via DRM planes
      - page flipping of the main scanout buffers
      - DRM prime for buffer export/import
      
      This driver is trivial to extend to other Armada SoCs.
      
      Included in this commit is the core driver with no output support; output
      support is platform and encoder driver dependent.
      Tested-by: NSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      96f60e37
  11. 01 10月, 2013 10 次提交
  12. 02 9月, 2013 1 次提交
  13. 30 8月, 2013 4 次提交
  14. 21 8月, 2013 5 次提交
  15. 19 8月, 2013 2 次提交
  16. 28 6月, 2013 2 次提交
    • D
      Revert "drm: kms_helper: don't lose hotplug event" · d482e5fa
      Dave Airlie 提交于
      This reverts commit 160954b7.
      
      This was rearming the workqueue with a 0 timeout, causing
      a WARN_ON, and possible loop.
      
      Daniel writes:
      "I've looked a bit into this and I think we need to have a separate
      work struct for recovering these lost hotplug events since the
      continuous self-rearming case is a real risk (e.g. if a connector
      flip-flops all the time). At least I don't see a sane way to block out
      re-arming with the current code in a simple way. So reverting the
      offender seems like the right thing and I'll go back to the drawing
      board for 3.12."
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d482e5fa
    • D
      drm: add hotspot support for cursors. · 4c813d4d
      Dave Airlie 提交于
      So it looks like for virtual hw cursors on QXL we need to inform
      the "hw" device what the cursor hotspot parameters are. This
      makes sense if you think the host has to draw the cursor and interpret
      clicks from it. However the current modesetting interface doesn't support
      passing the hotspot information from userspace.
      
      This implements a new cursor ioctl, that takes the hotspot info as well,
      userspace can try calling the new interface and if it gets -ENOSYS it means
      its on an older kernel and can just fallback.
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      4c813d4d
  17. 27 6月, 2013 1 次提交
    • D
      drm: kms_helper: don't lose hotplug event · 160954b7
      Daniel Vetter 提交于
      There's a race window (small for hpd, 10s large for polled outputs)
      where userspace could sneak in with an unrelated connnector probe
      ioctl call and eat the hotplug event (since neither the hpd nor the
      poll code see a state change).
      
      To avoid this, check whether the connector state changes in all other
      ->detect calls (in the current helper code that's only probe_single)
      and if that's the case, fire off a hotplug event. Note that we can't
      directly call the hotplug event handler, since that expects that no
      locks are held (due to reentrancy with the fb code to update the kms
      console).
      
      Also, this requires that drivers using the probe_single helper
      function set up the poll work. All current drivers do that already,
      and with the reworked hpd handling there'll be no downside to
      unconditionally setting up the poll work any more.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      160954b7
  18. 25 6月, 2013 1 次提交
    • D
      drm: fix fb leak in setcrtc · 5cef29aa
      Daniel Vetter 提交于
      Drivers are allowed (actually have to) disable unrelated crtcs in
      their ->set_config callback (when we steal all the connectors from
      that crtc). If they do that they'll clear crtc->fb to NULL.
      
      Which results in a refcount leak, since the drm core is keeping track
      of that reference.
      
      To fix this track the old fb of all crtcs and adjust references for
      all of them. Of course, since we only hold an additional reference for
      the fb for the current crtc we need to increase refcounts before we
      drop the old one.
      
      This approach has the benefit that it inches us a bit closer to an
      atomic modeset world, where we want to update the config of all crtcs
      in one step.
      
      This regression has been introduce in the framebuffer refcount
      conversion, specifically in
      
      commit b0d12325
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Tue Dec 11 01:07:12 2012 +0100
      
          drm: refcounting for crtc framebuffers
      Reported-by: NRussell King <linux@arm.linux.org.uk>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      5cef29aa