1. 07 6月, 2016 1 次提交
  2. 31 5月, 2016 1 次提交
  3. 17 5月, 2016 1 次提交
  4. 02 5月, 2016 1 次提交
  5. 31 3月, 2016 1 次提交
  6. 16 2月, 2016 1 次提交
  7. 11 12月, 2015 2 次提交
    • V
      drm: Drop drm_helper_probe_single_connector_modes_nomerge() · 6af3e656
      Ville Syrjälä 提交于
      Now that the mode type bit merge logic is fixed to only merge
      between new probed modes, hopefully we can eliminat the special
      case for qxl and virtio. That is make the merge the mode type
      bits from all matching new probed modes, just like every other
      driver.
      
      qxl and virtio got excluded from the merging in
      commit 3fbd6439 ("drm: copy mode type in drm_mode_connector_list_update()")
      commit abce1ec9 ("Revert "drm: copy mode type in drm_mode_connector_list_update()"")
      commit b87577b7 ("drm: try harder to avoid regression when merging mode bits")
      
      Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Adam Jackson <ajax@redhat.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      [danvet: Resolve conflicts with doc updates.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6af3e656
    • V
      drm: Pass 'name' to drm_encoder_init() · 13a3d91f
      Ville Syrjälä 提交于
      Done with coccinelle for the most part. However, it thinks '...' is
      part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
      in its place and got rid of it with sed afterwards.
      
      @@
      identifier dev, encoder, funcs;
      @@
       int drm_encoder_init(struct drm_device *dev,
                            struct drm_encoder *encoder,
                            const struct drm_encoder_funcs *funcs,
                            int encoder_type
      +                     ,const char *name, int DOTDOTDOT
                            )
      { ... }
      
      @@
      identifier dev, encoder, funcs;
      @@
       int drm_encoder_init(struct drm_device *dev,
                            struct drm_encoder *encoder,
                            const struct drm_encoder_funcs *funcs,
                            int encoder_type
      +                     ,const char *name, int DOTDOTDOT
                            );
      
      @@
      expression E1, E2, E3, E4;
      @@
       drm_encoder_init(E1, E2, E3, E4
      +                 ,NULL
                        )
      
      v2: Add ', or NULL...' to @name kernel doc (Jani)
          Annotate the function with __printf() attribute (Jani)
      Signed-off-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/1449670818-2966-1-git-send-email-ville.syrjala@linux.intel.com
      13a3d91f
  8. 08 12月, 2015 1 次提交
  9. 24 11月, 2015 1 次提交
  10. 07 10月, 2015 1 次提交
  11. 01 10月, 2015 1 次提交
  12. 24 9月, 2015 1 次提交
  13. 11 9月, 2015 1 次提交
    • J
      drm/qxl: validate monitors config modes · bd3e1c7c
      Jonathon Jongsma 提交于
      Due to some recent changes in
      drm_helper_probe_single_connector_modes_merge_bits(), old custom modes
      were not being pruned properly. In current kernels,
      drm_mode_validate_basic() is called to sanity-check each mode in the
      list. If the sanity-check passes, the mode's status gets set to to
      MODE_OK. In older kernels this check was not done, so old custom modes
      would still have a status of MODE_UNVERIFIED at this point, and would
      therefore be pruned later in the function.
      
      As a result of this new behavior, the list of modes for a device always
      includes every custom mode ever configured for the device, with the
      largest one listed first. Since desktop environments usually choose the
      first preferred mode when a hotplug event is emitted, this had the
      result of making it very difficult for the user to reduce the size of
      the display.
      
      The qxl driver did implement the mode_valid connector function, but it
      was empty. In order to restore the old behavior where old custom modes
      are pruned, we implement a proper mode_valid function for the qxl
      driver. This function now checks each mode against the last configured
      custom mode and the list of standard modes. If the mode doesn't match
      any of these, its status is set to MODE_BAD so that it will be pruned as
      expected.
      Signed-off-by: NJonathon Jongsma <jjongsma@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      bd3e1c7c
  14. 05 6月, 2015 1 次提交
  15. 15 11月, 2014 2 次提交
  16. 05 11月, 2014 1 次提交
  17. 22 10月, 2014 1 次提交
  18. 03 9月, 2014 1 次提交
  19. 19 6月, 2014 1 次提交
  20. 04 6月, 2014 1 次提交
    • D
      drm/qxl: use surface_id 0 for primary surface on all monitors · 52571ad5
      David Mansfield 提交于
      spice-server and downstream code expect that the primary surface
      will always have surface_id = 0, while in reality, once allocated, the
      surface_id in qxl.ko is NEVER 0.  In a dual head environment, all
      monitors render portions of the primary surface.
      
      However, when the monitor config events are generated and sent,
      the primary surface is only mapped to the correct identifier
      (i.e. 0) for the primary head (where crtc index is 0).
      
      The fix is to look at the "primary" flag in the bo and always
      use id 0, irrespective of which head is being configured.
      
      [airlied: qxl hw really needs to be fixed to scanout surfaces]
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      52571ad5
  21. 01 5月, 2014 1 次提交
  22. 02 4月, 2014 1 次提交
    • M
      drm: Replace crtc fb with primary plane fb (v3) · f4510a27
      Matt Roper 提交于
      Now that CRTC's have a primary plane, there's no need to track the
      framebuffer in the CRTC.  Replace all references to the CRTC fb with the
      primary plane's fb.
      
      This patch was generated by the Coccinelle semantic patching tool using
      the following rules:
      
              @@ struct drm_crtc C; @@
              -   (C).fb
              +   C.primary->fb
      
              @@ struct drm_crtc *C; @@
              -   (C)->fb
              +   C->primary->fb
      
      v3: Generate patch via coccinelle.  Actual removal of crtc->fb has been
          moved to a subsequent patch.
      
      v2: Fixup several lingering crtc->fb instances that were missed in the
          first patch iteration.  [Rob Clark]
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      f4510a27
  23. 14 1月, 2014 1 次提交
  24. 23 12月, 2013 1 次提交
  25. 18 12月, 2013 1 次提交
  26. 06 11月, 2013 1 次提交
    • D
      qxl: add a connector property to denote hotplug should rescan modes. · 4695b039
      Dave Airlie 提交于
      So GNOME userspace has an issue with when it rescans for modes on hotplug
      events, if the monitor has no EDID it assumes that nothing has changed on
      EDID as with real hw we'd never have new modes without a new EDID, and they
      kind off rely on the behaviour now, however with virtual GPUs we would
      like to rescan the modes and get a new preferred mode on hotplug events
      to handle dynamic guest resizing (where you resize the host window and the
      guest resizes with it).
      
      This is a simple property we can make userspace watch for to trigger new
      behaviour based on it, and can be used to replaced EDID hacks in virtual
      drivers.
      
      Acked-by: Marc-André Lureau <marcandre.lureau@gmail.com> (on irc)
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      4695b039
  27. 23 10月, 2013 4 次提交
  28. 24 7月, 2013 1 次提交
    • D
      qxl: convert qxl driver to proper use for reservations · 8002db63
      Dave Airlie 提交于
      The recent addition of lockdep support to reservations and their subsequent
      use by TTM showed up a number of potential problems with the way qxl was using
      TTM objects.
      
      a) it was allocating objects, and reserving them later without validating
      underneath the reservation, which meant in extreme conditions the objects could
      be evicted before the reservation ever used them.
      
      b) it was reserving objects straight after allocating them, but with no
      ability to back off should the reservations fail. It now allocates the necessary
      objects then does a complete reservation pass on them to avoid deadlocks.
      
      c) it had two lists per release tracking objects, unnecessary complicating
      the reservation process.
      
      This patch removes the dual object tracking, adds reservations ticket support
      to the release and fence object handling. It then ports the internal fb
      drawing code and the userspace facing ioctl to use the new interfaces properly,
      along with cleanup up the error path handling in some codepaths.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      8002db63
  29. 05 7月, 2013 4 次提交
  30. 28 6月, 2013 1 次提交
  31. 17 6月, 2013 1 次提交
  32. 17 5月, 2013 1 次提交