1. 05 5月, 2016 1 次提交
  2. 04 5月, 2016 1 次提交
    • D
      drm/gem: support BO freeing without dev->struct_mutex · 9f0ba539
      Daniel Vetter 提交于
      Finally all the core gem and a lot of drivers are entirely free of
      dev->struct_mutex depencies, and we can start to have an entirely
      lockless unref path.
      
      To make sure that no one who touches the core code accidentally breaks
      existing drivers which still require dev->struct_mutex I've made the
      might_lock check unconditional.
      
      While at it de-inline the ref/unref functions, they've become a bit
      too big.
      
      v2: Make it not leak like a sieve.
      
      v3: Review from Lucas:
      - drop != NULL in pointer checks.
      - fixup copypasted kerneldoc to actually match the functions.
      
      v4:
      Add __drm_gem_object_unreference as a fastpath helper for drivers who
      abolished dev->struct_mutex, requested by Chris.
      
      v5: Fix silly mistake in drm_gem_object_unreference_unlocked caught by
      intel-gfx CI - I checked for gem_free_object instead of
      gem_free_object_unlocked ...
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Alex Deucher <alexdeucher@gmail.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Reviewed-by: Lucas Stach <l.stach@pengutronix.de> (v3)
      Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v4)
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1462178451-1765-1-git-send-email-daniel.vetter@ffwll.ch
      9f0ba539
  3. 02 5月, 2016 4 次提交
  4. 28 4月, 2016 1 次提交
  5. 27 4月, 2016 4 次提交
  6. 22 4月, 2016 2 次提交
  7. 20 4月, 2016 4 次提交
  8. 15 4月, 2016 1 次提交
  9. 14 4月, 2016 1 次提交
  10. 12 4月, 2016 1 次提交
  11. 05 4月, 2016 3 次提交
  12. 31 3月, 2016 2 次提交
  13. 30 3月, 2016 1 次提交
  14. 29 3月, 2016 2 次提交
  15. 08 3月, 2016 2 次提交
  16. 03 3月, 2016 5 次提交
  17. 01 3月, 2016 2 次提交
  18. 19 2月, 2016 1 次提交
    • M
      drm/atomic: Allow for holes in connector state, v2. · 5fff80bb
      Maarten Lankhorst 提交于
      Because we record connector_mask using 1 << drm_connector_index now
      the connector_mask should stay the same even when other connectors
      are removed. This was not the case with MST, in that case when removing
      a connector all other connectors may change their index.
      
      This is fixed by waiting until the first get_connector_state to allocate
      connector_state, and force reallocation when state is too small.
      
      As a side effect connector arrays no longer have to be preallocated,
      and can be allocated on first use which means a less allocations in
      the page flip only path.
      
      Changes since v1:
      - Whitespace. (Ville)
      - Call ida_remove when destroying the connector. (Ville)
      - u32 alloc -> int. (Ville)
      
      Fixes: 14de6c44 ("drm/atomic: Remove drm_atomic_connectors_for_crtc.")
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NLyude <cpaul@redhat.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      5fff80bb
  19. 16 2月, 2016 1 次提交
  20. 12 2月, 2016 1 次提交
    • R
      drm/dp: Add a drm_aux-dev module for reading/writing dpcd registers. · e94cb37b
      Rafael Antognolli 提交于
      This module is heavily based on i2c-dev. Once loaded, it provides one
      dev node per DP AUX channel, named drm_dp_auxN, where N is an integer.
      
      It's possible to know which connector owns this aux channel by looking
      at the respective sysfs /sys/class/drm_aux_dev/drm_dp_auxN/connector, if
      the connector device pointer was correctly set in the aux helper struct.
      
      Two main operations are provided on the registers read and write. The
      address of the register to be read or written is given using lseek. The
      seek position is updated upon read or write.
      
      v2:
       - lseek is used to select the register to read/write
       - read/write are used instead of ioctl
       - no blocking_notifier is used, just a direct callback
      
      v3:
       - use drm_dp_aux_dev prefix for public functions
       - chardev is named drm_dp_auxN
       - read/write don't allocate a buffer anymore, and transfer up to 16 bytes a
         time
       - remove notifier list from the implementation
       - option on menuconfig is now a boolean
       - add inline stub functions to avoid breakage when this option is disabled
      
      v4:
       - fix build system changes - actually disable this module when not selected.
      
      v5:
       - Use kref to avoid device closing while still in use
       - Don't use list, use an idr for storing aux_dev
       - Remove "connector" attribute
       - set aux.dev to the connector drm_connector device, instead of
         drm_device
      
      v6:
       - Use atomic_t for usage count
       - Use a mutex instead of spinlock for idr lock
       - Destroy chardev immediately on unregister
       - other minor suggestions from Ville
      
      v7:
       - style fixes
       - error handling fixes
      
      v8:
       - more error handling fixes
      
      v9:
       - remove module_init and module_exit, and add drm_dp_aux_dev_init/exit
       to drm_kms_helper_init/exit.
      Signed-off-by: NRafael Antognolli <rafael.antognolli@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1453417821-2811-3-git-send-email-rafael.antognolli@intel.com
      e94cb37b