linux-hardened/drivers/gpu/drm/i915
Paulo Zanoni dce56b3c62 drm/i915: save some time when waiting the eDP timings
The eDP spec defines some points where after you do action A, you have
to wait some time before action B. The thing is that in our driver
action B does not happen exactly after action A, but we still use
msleep() calls directly. What this patch does is that we record the
timestamp of when action A happened, then, just before action B, we
look at how much time has passed and only sleep the remaining amount
needed.

With this change, I am able to save about 5-20ms (out of the total
200ms) of the backlight_off delay and completely skip the 1ms
backlight_on delay. The 600ms vdd_off delay doesn't happen during
normal usage anymore due to a previous patch.

v2: - Rename ironlake_wait_jiffies_delay to intel_wait_until_after and
      move it to intel_display.c
    - Fix the msleep call: diff is in jiffies
v3: - Use "tmp_jiffies" so we don't need to worry about the value of
      "jiffies" advancing while we're doing the math.
v4: - Rename function again.
    - Move function to i915_drv.h.
    - Store last_power_cycle at edp_panel_off too.
    - Use msecs_to_jiffies_timeout, then replace the msleep with an
      open-coded version that avoids the extra +1 jiffy.
    - Try to add units to every variable name so we don't confuse
      jiffies with milliseconds.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-24 17:22:46 +01:00
..
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
dvo_ch7xxx.c drm/i915: dvo_ch7xxx: fix vsync polarity setting 2013-07-25 16:10:22 +02:00
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c drm/i915/ns2501: Rip out the reenable hack 2013-11-04 16:32:31 +01:00
dvo_sil164.c
dvo_tfp410.c
i915_debugfs.c drm/i915/vlv: Add drpc debugfs support for valleyview 2014-01-10 18:00:14 +01:00
i915_dma.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2014-01-20 10:21:54 +10:00
i915_drv.c i915: send D1 opregion notification 2014-01-22 10:34:36 +01:00
i915_drv.h drm/i915: save some time when waiting the eDP timings 2014-01-24 17:22:46 +01:00
i915_gem.c drm/i915: Wait for completion of pending flips when starved of fences 2014-01-22 10:34:40 +01:00
i915_gem_context.c Merge commit origin/master into drm-intel-next 2014-01-16 22:06:30 +01:00
i915_gem_debug.c drm/i915: Fix #endif comment 2013-08-09 10:45:52 +02:00
i915_gem_dmabuf.c drm/i915: Pin pages whilst allocating for dma-buf vmap() 2013-11-29 15:51:20 +01:00
i915_gem_evict.c drm/i915: Repeat evictions whilst pageflip completions are outstanding 2014-01-22 10:34:41 +01:00
i915_gem_execbuffer.c drm/i915: Clarify relocation errnos 2014-01-22 09:58:25 +01:00
i915_gem_gtt.c Merge commit origin/master into drm-intel-next 2014-01-16 22:06:30 +01:00
i915_gem_stolen.c drm/i915: grab a pages pin count for preallocate stolen 2013-12-18 13:25:29 +01:00
i915_gem_tiling.c drm/i915: prevent tiling changes on framebuffer backing storage 2013-10-16 22:04:52 +02:00
i915_gpu_error.c drm/i915: Record BB_ADDR for every ring 2013-12-11 23:52:12 +01:00
i915_ioc32.c
i915_irq.c drm/i915: clean up HPD IRQ debug printing 2014-01-24 17:22:44 +01:00
i915_reg.h drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
i915_suspend.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
i915_sysfs.c drm/i915: add some runtime PM get/put calls 2013-12-10 22:50:17 +01:00
i915_trace.h drm/i915: Add a tracepoint for using a semaphore 2013-10-01 07:45:24 +02:00
i915_trace_points.c
i915_ums.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
intel_acpi.c ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro 2013-11-14 23:17:21 +01:00
intel_bios.c drm/i915: parse backlight modulation frequency from the BIOS VBT 2013-12-16 10:02:48 +01:00
intel_bios.h drm/i915: parse backlight modulation frequency from the BIOS VBT 2013-12-16 10:02:48 +01:00
intel_crt.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_ddi.c Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2014-01-20 10:21:54 +10:00
intel_display.c drm/i915: Set crtc->new_config to NULL for pipes that are about to be disabled 2014-01-24 17:22:43 +01:00
intel_dp.c drm/i915: save some time when waiting the eDP timings 2014-01-24 17:22:46 +01:00
intel_drv.h drm/i915: save some time when waiting the eDP timings 2014-01-24 17:22:46 +01:00
intel_dsi.c drm/i915: Parametrize the dphy and other spec specific parameters 2013-12-11 23:52:20 +01:00
intel_dsi.h drm/i915: Parametrize the dphy and other spec specific parameters 2013-12-11 23:52:20 +01:00
intel_dsi_cmd.c drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_cmd.h drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_pll.c drm/i915: Try harder to get best m, n, p values with minimal error 2013-12-11 23:52:18 +01:00
intel_dvo.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_fbdev.c drm/i915: remove duplicate MODULE_LICENSE definition 2014-01-07 10:20:47 +01:00
intel_hdmi.c drm/i915: Don't cast away const from infoframe buffer 2013-12-10 14:49:04 +01:00
intel_i2c.c drm/i915/vlv: split CCK and DDR freq usage 2013-11-05 19:28:47 +01:00
intel_lvds.c drm/i915: Make downclock deduction common for all panels 2013-12-10 13:26:15 +01:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c drm/i915: Eliminate lots of WARNs when there's no backlight present 2014-01-22 10:34:38 +01:00
intel_overlay.c drm/i915: No panel fitter on 830M or non-mobile gen2/3 platforms 2014-01-10 18:03:17 +01:00
intel_panel.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
intel_pm.c drm/i915: Don't use i915_preliminary_hw_support to mean pre-production 2014-01-24 17:22:44 +01:00
intel_ringbuffer.c drm/i915: Fix disabled semaphores 2014-01-22 09:58:26 +01:00
intel_ringbuffer.h drm/i915: Write RING_TAIL once per-request 2013-09-10 15:35:58 +02:00
intel_sdvo.c drm/i915: Don't cast away const from infoframe buffer 2013-12-10 14:49:04 +01:00
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sideband.c drm/i915: Use FLISDSI interface for band gap reset 2013-12-11 23:52:17 +01:00
intel_sprite.c Revert "drm/i915: Mask reserved bits in display/sprite address registers" 2014-01-24 17:22:00 +01:00
intel_tv.c drm/i915/tv: add ->get_config callback 2013-11-18 22:24:33 +01:00
intel_uncore.c drm/i915: Allow reading the TIMESTAMP register on Gen8. 2014-01-22 10:48:09 +01:00
Kconfig i915, fbdev: Fix Kconfig typo 2013-11-21 21:59:02 +01:00
Makefile drm/i915: only build i915_debugfs.c when CONFIG_DEBUG_FS is enabled 2013-12-16 16:53:32 +01:00