1. 09 2月, 2016 1 次提交
  2. 05 1月, 2016 2 次提交
  3. 15 12月, 2015 1 次提交
  4. 11 12月, 2015 5 次提交
  5. 08 12月, 2015 8 次提交
  6. 25 11月, 2015 1 次提交
  7. 24 11月, 2015 2 次提交
  8. 19 10月, 2015 1 次提交
  9. 05 10月, 2015 1 次提交
  10. 25 9月, 2015 2 次提交
  11. 11 9月, 2015 1 次提交
    • D
      drm: Nuke drm_framebuffer->helper_private · c86fb9d9
      Daniel Vetter 提交于
      It's completely unused and there's really no reason for this:
      - drm_framebuffer structures are invariant after creation, no need for
        helpers to manipulate them.
      - drm_framebuffer structures should just be embedded (and that's what
        all the drivers do).
      
      Stumbled over this since some folks are apparently concerned with the
      overhead of struct drm_framebuffer and this is an easy 8 byte saving.
      
      More could be gained by ditching the legacy fields and recomputing
      stuff from the fourcc value. But that would require some drm-wide
      cocci and real justification.
      
      Cc: gary.k.smith@intel.com
      Reviewed-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      c86fb9d9
  12. 08 9月, 2015 1 次提交
  13. 12 8月, 2015 1 次提交
  14. 11 8月, 2015 1 次提交
  15. 27 7月, 2015 2 次提交
  16. 22 7月, 2015 6 次提交
    • D
      drm: gc now dead mode_group code · 3fdefa39
      Daniel Vetter 提交于
      Two nice things here:
      - drm_dev_register will truly register everything in the right order
        if the driver doesn't have a ->load callback. Before this we had to
        init the primary mode_group after the device nodes where already
        registered.
      
      - Less things to keep track of when reworking the connector locking,
        yay!
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      3fdefa39
    • D
      drm: Amend connector list locking rules · cff20ba2
      Daniel Vetter 提交于
      Now that dp mst hotplug takes all locks we can amend the locking rules
      for the iterators. This is needed before we can roll these out in the
      atomic code to avoid getting burried in WARNINGs.
      
      v2: Rebase onto the extracted list locking assert and add a comment to
      explain the rules.
      
      v3: Fixup German->English translation fail in the comment.
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      cff20ba2
    • D
      drm: Check locking in drm_for_each_fb · 4676ba0b
      Daniel Vetter 提交于
      Ever since framebuffers are reference counted we have a special lock
      for the global fb list. Make sure users of that list do hold that
      lock when using the new iterators.
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      4676ba0b
    • D
      drm: Check locking in drm_for_each_connector · 7a3f3d66
      Daniel Vetter 提交于
      Because of DP MST connectors can now be hotplugged and we must hold
      the right lock when walking the connector lists.  Enforce this by
      checking the locking in our shiny new list walking macros.
      
      v2: Extract the locking check into a small static inline helper to
      help readability. This will be more important when we make the
      read list access rules more complicated in later patches. Inspired by
      comments from Chris. Unfortunately, due to header loops around the
      definition of struct drm_device the function interface is a bit funny.
      
      v3: Encoders aren't hotadded/removed. For each dp mst encoder we
      statically create one fake encoder per pipe so that we can support as
      many mst sinks as the hw can (Dave).
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Dave Airlie <airlied@redhat.com>
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      7a3f3d66
    • D
      drm: Add modeset object iterators · 6295d607
      Daniel Vetter 提交于
      And roll them out across drm_* files. The point here isn't code
      prettification (it helps with that too) but that some of these lists
      aren't static any more. And having macros will gives us a convenient
      place to put locking checks into.
      
      I didn't add an iterator for props since that's only used by a
      list_for_each_entry_safe in the driver teardown code.
      
      Search&replace was done with the below cocci spatch. Note that there's
      a bunch more places that didn't match and which would need some manual
      changes, but I've intentially left these out for this mostly automated
      patch.
      
      iterator name drm_for_each_crtc;
      struct drm_crtc *crtc;
      struct drm_device *dev;
      expression head;
      @@
      - list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
      + drm_for_each_crtc (crtc, dev) {
      ...
      }
      
      @@
      iterator name drm_for_each_encoder;
      struct drm_encoder *encoder;
      struct drm_device *dev;
      expression head;
      @@
      - list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
      + drm_for_each_encoder (encoder, dev) {
      ...
      }
      
      @@
      iterator name drm_for_each_fb;
      struct drm_framebuffer *fb;
      struct drm_device *dev;
      expression head;
      @@
      - list_for_each_entry(fb, &dev->mode_config.fb_list, head) {
      + drm_for_each_fb (fb, dev) {
      ...
      }
      
      @@
      iterator name drm_for_each_connector;
      struct drm_connector *connector;
      struct drm_device *dev;
      expression head;
      @@
      - list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
      + drm_for_each_connector (connector, dev) {
      ...
      }
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      6295d607
    • D
      drm: Simplify drm_for_each_legacy_plane arguments · 4ea50e99
      Daniel Vetter 提交于
      No need to pass the planelist when everyone just uses
      dev->mode_config.plane_list anyway.
      
      I want to add a pile more of iterators with unified (obj, dev)
      arguments. This is just prep.
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      4ea50e99
  17. 25 6月, 2015 1 次提交
    • D
      drm/dp/mst: close deadlock in connector destruction. · 6b8eeca6
      Dave Airlie 提交于
      I've only seen this once, and I failed to capture the
      lockdep backtrace, but I did some investigations.
      
      If we are calling into the MST layer from EDID probing,
      we have the mode_config mutex held, if during that EDID
      probing, the MST hub goes away, then we can get a deadlock
      where the connector destruction function in the driver
      tries to retake the mode config mutex.
      
      This offloads connector destruction to a workqueue,
      and avoid the subsequenct lock ordering issue.
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      6b8eeca6
  18. 26 5月, 2015 2 次提交
  19. 22 5月, 2015 1 次提交