1. 14 9月, 2015 1 次提交
  2. 08 9月, 2015 5 次提交
  3. 12 8月, 2015 1 次提交
  4. 11 8月, 2015 1 次提交
  5. 04 8月, 2015 2 次提交
  6. 03 8月, 2015 1 次提交
    • L
      i915: temporary fix for DP MST docking station NULL pointer dereference · 27667f47
      Linus Torvalds 提交于
      Ted Ts'o reports that his Lenovo T540p ThinkPad crashes at boot if
      attached to the docking station.  This is a regression that he was able
      to bisect to commit 8c7b5ccb: "drm/i915: Use atomic helpers for
      computing changed flags:"
      
      The reason seems to be the new call to drm_atomic_helper_check_modeset()
      added to intel_modeset_compute_config(), which in turn calls
      update_connector_routing(), and somehow ends up picking a NULL crtc for
      the connector state, causing the subsequent drm_crtc_index() to OOPS.
      
      Daniel Vetter says that the fundamental issue seems to be confusion in
      the encoder selection, and this isn't the right fix, but while he chases
      down the proper fix, this at least avoids the NULL pointer dereference
      and makes Ted's docking station work again.
      Reported-bisected-and-tested-by: NTheodore Ts'o <tytso@mit.edu>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Mani Nikula <jani.nikula@linux.intel.com>
      Cc: Dave Airlie <airlied@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      27667f47
  7. 27 7月, 2015 4 次提交
  8. 22 7月, 2015 1 次提交
    • D
      drm: Roll out drm_for_each_connector more · 9a9f5ce8
      Daniel Vetter 提交于
      Now that we also grab the connection_mutex and so fixed the race with
      atomic modeset we can use the iterator there too.
      
      The other special case is drm_connector_unplug_all which would have a
      locking inversion with the sysfs store/show functions if we'd grab the
      mode_config.mutex around the unplug. We could just grab
      connection_mutex instead, but that's a bit too much a dirty trick for
      my taste. Also it's only used by udl, which doesn't do any other kind
      of connector hotplugging, so should be race-free. Hence just stick
      with a comment for now.
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      9a9f5ce8
  9. 16 7月, 2015 1 次提交
  10. 07 7月, 2015 1 次提交
    • D
      drm: Update plane->fb also for page_flip · 3cb43cc0
      Daniel Vetter 提交于
      The legacy page_flip driver entry point is the only one left which
      requires drivers to update plane->fb themselves. All the other entry
      hooks will patch things up for the driver as needed since no one seems
      to reliable get this right, see e.g. drm_mode_set_config_internal or
      the plane->fb/old_fb handling in drm_mode_atomic_ioctl.
      
      Therefore unify things, which allows us to ditch a TODO from
      drm_atomic_helper_page_flip.
      
      This should also help the atomic transition in i915 since we keep a
      bit of legacy cruft only around because of this special behaviour in
      ->page_flip.
      
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      3cb43cc0
  11. 22 6月, 2015 1 次提交
  12. 19 6月, 2015 1 次提交
  13. 04 6月, 2015 1 次提交
  14. 26 5月, 2015 2 次提交
  15. 21 5月, 2015 3 次提交
    • A
      drm: bridge: Allow daisy chaining of bridges · 862e686c
      Archit Taneja 提交于
      Allow drm_bridge objects to link to each other in order to form an encoder
      chain. The requirement for creating a chain of bridges comes because the
      MSM drm driver uses up its encoder and bridge objects for blocks within
      the SoC itself. There isn't anything left to use if the SoC display output
      is connected to an external encoder IC. Having an additional bridge
      connected to the existing bridge helps here. In general, it is possible for
      platforms to have  multiple devices between the encoder and the
      connector/panel that require some sort of configuration.
      
      We create drm bridge helper functions corresponding to each op in
      'drm_bridge_funcs'. These helpers call the corresponding
      'drm_bridge_funcs' op for the entire chain of bridges. These helpers are
      used internally by drm_atomic_helper.c and drm_crtc_helper.c.
      
      The drm_bridge_enable/pre_enable helpers execute enable/pre_enable ops of
      the bridge closet to the encoder, and proceed until the last bridge in the
      chain is enabled. The same holds for drm_bridge_mode_set/mode_fixup
      helpers. The drm_bridge_disable/post_disable helpers disable the last
      bridge in the chain first, and proceed until the first bridge in the chain
      is disabled.
      
      drm_bridge_attach() remains the same. As before, the driver calling this
      function should make sure it has set the links correctly. The order in
      which the bridges are connected to each other determines the order in which
      the calls are made. One requirement is that every bridge in the chain
      should point the parent encoder object. This is required since bridge
      drivers expect a valid encoder pointer in drm_bridge. For example, consider
      a chain where an encoder's output is connected to bridge1, and bridge1's
      output is connected to bridge2:
      
      	/* Like before, attach bridge to an encoder */
      	bridge1->encoder = encoder;
      	ret = drm_bridge_attach(dev, bridge1);
      	..
      
      	/*
      	 * set the first bridge's 'next' bridge to bridge2, set its encoder
      	 * as bridge1's encoder
      	 */
      	bridge1->next = bridge2
      	bridge2->encoder = bridge1->encoder;
      	ret = drm_bridge_attach(dev, bridge2);
      
      	...
      	...
      
      This method of bridge chaining isn't intrusive and existing drivers that
      use drm_bridge will behave the same way as before. The bridge helpers also
      cleans up the atomic and crtc helper files a bit.
      Reviewed-by: NJani Nikula <jani.nikula@linux.intel.com>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Reviewed-by: NDaniel Vetter <daniel@ffwll.ch>
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      862e686c
    • M
      drm/atomic: add all affected planes in drm_atomic_helper_check_modeset · 57744aa7
      Maarten Lankhorst 提交于
      Drivers may need to recalculate plane state when a modeset occurs,
      not reliably adding them might cause hard to debug bugs.
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      57744aa7
    • M
      drm/atomic: add commit_planes_on_crtc helper · de28d021
      Maarten Lankhorst 提交于
      drm_atomic_helper_commit_planes calls all atomic_begin's first,
      then updates all planes, finally calling atomic_flush.
      
      Some drivers may want to things like disabling irq's
      from their atomic_begin, in which case a second call to atomic_begin
      will splat. By using commit_planes_on_crtc on each crtc in the
      atomic state they'll evade that issue.
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      [danvet: Extend kerneldoc a bit as discussed with Maarten on irc.]
      [danvet: Squash in fixup to check for crtc_funcs in all places.
      Reported by Dan Carpenter.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      de28d021
  16. 18 5月, 2015 1 次提交
  17. 13 5月, 2015 2 次提交
  18. 08 5月, 2015 1 次提交
  19. 04 5月, 2015 1 次提交
  20. 16 4月, 2015 1 次提交
  21. 12 4月, 2015 1 次提交
  22. 03 4月, 2015 1 次提交
    • T
      drm/atomic: Add helpers for state-subclassing drivers · f5e7840b
      Thierry Reding 提交于
      Drivers that subclass CRTC, plane or connector state need to carefully
      duplicate the code that the atomic helpers have. This is bound to cause
      breakage eventually because it requires auditing all drivers and update
      them when code is added to the helpers.
      
      In order to avoid that, implement new helpers that perform the required
      steps when copying and destroying state. These new helpers are exported
      so that state-subclassing drivers can use them. The default helpers are
      implemented using them as well, providing a single location that needs
      to be changed when adding to base atomic states.
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      f5e7840b
  23. 27 3月, 2015 1 次提交
    • D
      drm/atomic-helpers: Properly avoid full modeset dance · 4218a32f
      Daniel Vetter 提交于
      Legacy setCrtc has a nice fastpath for just updating the frontbuffer
      when the output routing doesn't change. Which I of course tried to
      keep working, except that I fumbled the job: The helpers correctly
      compute ->mode_changed, CRTC updates get correctly skipped but
      connector functions are called unconditionally.
      
      Fix this.
      
      v2: For the disable sided connector->state->crtc might be NULL.
      Instead look at the old_connector_state->crtc, but still use the new
      crtc state for that old crtc. Reported by Thierry.
      Reported-and-Tested-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> (v1)
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk> (v1)
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      4218a32f
  24. 17 3月, 2015 2 次提交
  25. 11 3月, 2015 1 次提交
  26. 10 3月, 2015 1 次提交
  27. 05 3月, 2015 1 次提交