1. 22 Jul, 2015 3 commits
    • Daniel Vetter's avatar
      drm/probe-helper: Grab mode_config.mutex in poll_init/enable · 8c4ccc4a
      Daniel Vetter authored
      So on first looks this seems superflous since drivers should ensure
      correct ordering to not make this a problem. Otoh ordering constraints
      between hdp, fbdev load and enabling polling are already tricky on
      some hardware and it helps to be more robust.
      
      But the real goal is to just shut up a locking WARN_ON I'd like to
      add, which means init code gets some additional locks just for
      uniformity.
      
      v2: Also grab the lock for the public poll_enable, not just poll_init
      which is used for resume, with the same justification.
      Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      8c4ccc4a
    • Daniel Vetter's avatar
      drm: Add modeset object iterators · 6295d607
      Daniel Vetter authored
      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: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      6295d607
    • Daniel Vetter's avatar
      drm: Simplify drm_for_each_legacy_plane arguments · 4ea50e99
      Daniel Vetter authored
      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: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      4ea50e99
  2. 17 Jul, 2015 4 commits
  3. 15 Jul, 2015 16 commits
  4. 14 Jul, 2015 17 commits