1. 07 9月, 2010 1 次提交
    • C
      drm/kms: Add a module parameter to disable polling · e58f637b
      Chris Wilson 提交于
      Polling for a VGA device on an old system can be quite expensive,
      causing latencies on the order of 600ms. As we hold the mode mutex for
      this time and also need the same mutex to move the cursor, we trigger a
      user-visible stall.
      
      The real solution would involve improving the granulatity of the
      locking and so perhaps performing some of the probing not under the lock
      or some other updates can be done under different locks. Also reducing the
      cost of probing for a non-existent monitor would be worthwhile. However,
      exposing a parameter to disable polling is a simple workaround in the
      meantime.
      
      In order to accommodate users turning polling on and off at runtime, the
      polling is potentially re-enabled on every probe. This is coupled to
      the user calling xrandr, which seems to be a vaild time to reset the
      polling timeout since the information on the connection has just been
      updated. (The presumption being that all connections are probed in a
      single xrandr pass, which is currently valid.)
      
      References:
      
        Bug 29536 - 2.6.35 causes ~600ms latency every 10s
        https://bugs.freedesktop.org/show_bug.cgi?id=29536
      
        Bug 16265 - Why is kslowd accumulating so much CPU time?
        https://bugzilla.kernel.org/show_bug.cgi?id=16265Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reported-and-tested-by: NBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      e58f637b
  2. 10 8月, 2010 1 次提交
  3. 09 8月, 2010 1 次提交
    • T
      drm: fix fallouts from slow-work -> wq conversion · 9a919c46
      Tejun Heo 提交于
      Commit 991ea75c (drm: use workqueue instead of slow-work), which made
      drm to use wq instead of slow-work, didn't account for the return
      value difference between delayed_slow_work_enqueue() and
      queue_delayed_work().  The former returns 0 on success and -errno on
      failures while the latter never fails and only uses the return value
      to indicate whether the work was already pending or not.
      
      This misconversion triggered spurious error messages.  Remove the now
      unnecessary return value check and error message.
      
      Markus: caught another incorrect conversion in drm_kms_helper_poll_enable()
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NMarkus Trippelsdorf <markus@trippelsdorf.de>
      Tested-by: NMarkus Trippelsdorf <markus@trippelsdorf.de>
      Cc: David Airlie <airlied@linux.ie>
      Cc: dri-devel@lists.freedesktop.org
      9a919c46
  4. 23 7月, 2010 1 次提交
  5. 16 7月, 2010 1 次提交
  6. 13 7月, 2010 1 次提交
  7. 07 7月, 2010 1 次提交
  8. 01 6月, 2010 1 次提交
  9. 18 5月, 2010 1 次提交
    • D
      drm/fbdev: rework output polling to be back in the core. (v4) · eb1f8e4f
      Dave Airlie 提交于
      After thinking it over a lot it made more sense for the core to deal with
      the output polling especially so it can notify X.
      
      v2: drop plans for fake connector - per Michel's comments - fix X patch sent to xorg-devel, add intel polled/hpd setting, add initial nouveau polled/hpd settings.
      
      v3: add config lock take inside polling, add intel/nouveau poll init/fini calls
      
      v4: config lock was a bit agressive, only needed around connector list reading.
      otherwise it could re-enter.
      
      glisse: discard drm_helper_hpd_irq_event
      
      v3: Reviewed-by: Michel Dänzer <michel@daenzer.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      eb1f8e4f
  10. 07 4月, 2010 2 次提交
    • D
      drm/kms/fb: move to using fb helper crtc grouping instead of core crtc list · 8be48d92
      Dave Airlie 提交于
      This move to using the list of crtcs in the fb helper and cleans up the
      whole picking code, now we store the crtc/connectors we want directly
      into the modeset and we use the modeset directly to set the mode.
      
      Fixes from James Simmons and Ben Skeggs.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      8be48d92
    • D
      drm/fb: fix fbdev object model + cleanup properly. · 38651674
      Dave Airlie 提交于
      The fbdev layer in the kms code should act like a consumer of the kms services and avoid having relying on information being store in the kms core structures in order for it to work.
      
      This patch
      
      a) removes the info pointer/psuedo palette from the core drm_framebuffer structure and moves it to the fbdev helper layer, it also removes the core drm keeping a list of kernel kms fbdevs.
      b) migrated all the fb helper functions out of the crtc helper file into the fb helper file.
      c) pushed the fb probing/hotplug control into the driver
      d) makes the surface sizes into a structure for ease of passing
      This changes the intel/radeon/nouveau drivers to use the new helper.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      38651674
  11. 15 3月, 2010 1 次提交
  12. 11 2月, 2010 1 次提交
  13. 13 1月, 2010 2 次提交
  14. 11 1月, 2010 2 次提交
  15. 08 1月, 2010 1 次提交
  16. 09 12月, 2009 1 次提交
    • Z
      drm: disable all the possible outputs/crtcs before entering KMS mode · b16d9acb
      Zhao Yakui 提交于
      Sometimes we will use a crtc for integerated LVDS, which is different with
      that assigned by BIOS. If we want to get flicker-free transitions,
      then we could read out the current state for it and set our current state
      accordingly.
      
      But it is true that if we aren't reading current state out, we do need
      to turn everything off before modesetting.  Otherwise the clocks can get very
      angry and we get things worse than a flicker at boot.
      In fact we also do the similar thing in UMS mode. We will disable all the
      possible outputs/crtcs for the first modesetting.
      
      So we disable all the possible outputs/crtcs before entering the KMS mode.
      Before we configure connector/encoder/crtc, the function of
      drm_helper_disable_unused_function can disable all the possible outputs/crtcs.
      Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Reviewed-by: NEric Anholt <eric@anholt.net>
      Reviewed-by: NRafal Milecki <zajec5@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      b16d9acb
  17. 24 11月, 2009 1 次提交
  18. 10 11月, 2009 1 次提交
  19. 26 9月, 2009 1 次提交
  20. 25 9月, 2009 1 次提交
    • D
      drm/kms: start adding command line interface using fb. · d50ba256
      Dave Airlie 提交于
      [note this requires an fb patch posted to linux-fbdev-devel already]
      
      This uses the normal video= command line option to control the kms
      output setup at boot time. It is used to override the autodetection
      done by kms.
      
      video= normally takes a framebuffer as the first parameter, in kms
      it will take a connector name, DVI-I-1, or LVDS-1 etc. If no output
      connector is specified the mode string will apply to all connectors.
      
      The mode specification used will match down the probed modes, and if
      no mode is found it will add a CVT mode that matches.
      
      video=1024x768 - all connectors match a 1024x768 mode or add a CVT on
      video=VGA-1:1024x768, VGA-1 connector gets mode only.
      
      The same strings as used in current fb modedb.c are used, except I've
      added three more letters, e, D, d, e = enable, D = enable Digital,
      d = disable, which allow a connector to be forced into a certain state.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d50ba256
  21. 18 9月, 2009 1 次提交
  22. 08 9月, 2009 1 次提交
  23. 07 9月, 2009 2 次提交
  24. 02 9月, 2009 3 次提交
  25. 31 8月, 2009 2 次提交
  26. 04 8月, 2009 2 次提交
  27. 11 7月, 2009 1 次提交
  28. 04 6月, 2009 1 次提交
    • K
      drm: Hook up DPMS property handling in drm_crtc.c. Add drm_helper_connector_dpms. · c9fb15f6
      Keith Packard 提交于
      Making the drm_crtc.c code recognize the DPMS property and invoke the
      connector->dpms function doesn't remove any capability from the driver while
      reducing code duplication.
      
      That just highlighted the problem with the existing DPMS functions which
      could turn off the connector, but failed to turn off any relevant crtcs. The
      new drm_helper_connector_dpms function manages all of that, using the
      drm_helper-specific crtc and encoder dpms functions, automatically computing
      the appropriate DPMS level for each object in the system.
      
      This fixes the current troubles in the i915 driver which left PLLs, pipes
      and planes running while in DPMS_OFF mode or even while they were unused.
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c9fb15f6
  29. 24 4月, 2009 1 次提交
  30. 03 4月, 2009 2 次提交
  31. 25 2月, 2009 1 次提交