linux/drivers/gpu/drm/i915
Ville Syrjälä 3aa18df8f2 drm/i915: Fix scanoutpos calculations
The reported scanout position must be relative to the end of vblank.
Currently we manage to fumble that in a few ways.

First we don't consider the case when vtotal != vbl_end. While that
isn't very common (happens maybe only w/ old panel fitting hardware),
we can fix it easily enough.

The second issue is that on pre-CTG hardware we convert the pixel count
to horizontal/vertical components at the very beginning, and then forget
to adjust the horizontal component to be relative to vbl_end. So instead
we should keep our numbers in the pixel count domain while we're
adjusting the position to be relative to vbl_end. Then when we do the
conversion in the end, both vertical _and_ horizontal components will
come out correct.

v2: Change position to int from u32 to avoid sign issues

Cc: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: mario.kleiner.de@gmail.com
Tested-by: mario.kleiner.de@gmail.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-10-14 17:11:48 +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
dvo_sil164.c
dvo_tfp410.c
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
i915_debugfs.c drm/i915: Kconfig option to disable the legacy fbdev support 2013-10-11 23:37:23 +02:00
i915_dma.c drm/i915: rename intel_fb.c to intel_fbdev.c 2013-10-11 23:37:33 +02:00
i915_drv.c drm/i915: Remove gen specific checks in MMIO 2013-10-10 12:47:10 +02:00
i915_drv.h drm/i915: Kconfig option to disable the legacy fbdev support 2013-10-11 23:37:23 +02:00
i915_gem_context.c drm/i915: Convert active API to VMA 2013-10-01 07:45:21 +02: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 mapping the dma-buf 2013-09-03 19:17:58 +02:00
i915_gem_evict.c drm/i915: trace vm eviction instead of everything 2013-10-01 07:45:20 +02:00
i915_gem_execbuffer.c drm/i915: Convert active API to VMA 2013-10-01 07:45:21 +02:00
i915_gem_gtt.c drm/i915: Use kcalloc more 2013-10-01 07:45:01 +02:00
i915_gem_stolen.c Linux 3.12-rc2 2013-09-24 09:32:53 +02:00
i915_gem_tiling.c drm/i915: Use kcalloc more 2013-10-01 07:45:01 +02:00
i915_gem.c drm/i915: check that the i965g/gm 4G limit is really obeyed 2013-10-10 12:47:05 +02:00
i915_gpu_error.c drm/i915: Educate users in dmesg about reporting gpu hangs 2013-10-10 14:49:17 +02:00
i915_ioc32.c
i915_irq.c drm/i915: Fix scanoutpos calculations 2013-10-14 17:11:48 +02:00
i915_reg.h drm/i915: Fix VLV frame counter registers 2013-10-11 23:34:07 +02:00
i915_suspend.c drm/i915: don't save/restore CACHE_MODE_0 on gen7+ 2013-10-11 23:32:32 +02:00
i915_sysfs.c drm/i915: Finish enabling rps before use by sysfs or debugfs 2013-10-10 14:23:39 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Add a tracepoint for using a semaphore 2013-10-01 07:45:24 +02:00
i915_ums.c drm/i915: scrap register address storage 2013-06-10 19:54:14 +02:00
intel_acpi.c i915: fix ACPI _DSM warning 2013-08-05 19:04:05 +02:00
intel_bios.c drm/i915: Rip out SUPPORTS_EDP 2013-10-01 07:45:07 +02:00
intel_bios.h drm/i915: use the HDMI DDI buffer translations from VBT 2013-10-01 07:45:04 +02:00
intel_crt.c drm/i915: destroy connector sysfs files earlier 2013-10-01 07:45:48 +02:00
intel_ddi.c drm/i915: don't leak dp_connector at intel_ddi_init 2013-10-10 12:47:13 +02:00
intel_display.c drm/i915: Use vlv_clock() in vlv_crtc_clock_get() 2013-10-14 16:59:31 +02:00
intel_dp.c drm/i915/dp: update training set in a burst write with training pattern set 2013-10-10 12:47:12 +02:00
intel_drv.h drm/i915: rename intel_fb.c to intel_fbdev.c 2013-10-11 23:37:33 +02: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: Use adjusted_mode in DSI PLL calculations 2013-09-16 23:36:38 +02:00
intel_dsi.c drm/i915: destroy connector sysfs files earlier 2013-10-01 07:45:48 +02:00
intel_dsi.h drm/i915: add VLV DSI PLL Calculations 2013-09-04 17:34:48 +02:00
intel_dvo.c drm/i915: destroy connector sysfs files earlier 2013-10-01 07:45:48 +02:00
intel_fbdev.c drm/i915: rename intel_fb.c to intel_fbdev.c 2013-10-11 23:37:33 +02:00
intel_hdmi.c drm/i915: destroy connector sysfs files earlier 2013-10-01 07:45:48 +02:00
intel_i2c.c drm/i915: Program GMBUS Frequency based on the CDCLK for VLV. 2013-10-01 07:45:41 +02:00
intel_lvds.c drm/i915: destroy connector sysfs files earlier 2013-10-01 07:45:48 +02: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: Add breadcrumbs for why the backlight is being set 2013-10-14 10:02:36 +02:00
intel_overlay.c drm/i915: use pointer = k[cmz...]alloc(sizeof(*pointer), ...) pattern 2013-10-01 07:45:01 +02:00
intel_panel.c drm/i915: Add breadcrumbs for why the backlight is being set 2013-10-14 10:02:36 +02:00
intel_pm.c drm/i915: Avoid tweaking RPS before it is enabled 2013-10-10 23:12:05 +02:00
intel_ringbuffer.c drm/i915: Remove gen specific checks in MMIO 2013-10-10 12:47:10 +02:00
intel_ringbuffer.h drm/i915: Write RING_TAIL once per-request 2013-09-10 15:35:58 +02:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: destroy connector sysfs files earlier 2013-10-01 07:45:48 +02:00
intel_sideband.c drm/i915/vlv: add doc names to sideband file 2013-10-11 23:33:44 +02:00
intel_sprite.c drm/i915: Rename primary_disabled to primary_enabled 2013-10-10 12:47:14 +02:00
intel_tv.c drm/i915: Rename intel_flush_display_plane to intel_flush_primary_plane 2013-10-10 12:47:02 +02:00
intel_uncore.c drm/i915: Remove gen specific checks in MMIO 2013-10-10 12:47:10 +02:00
Kconfig drm/i915: Kconfig option to disable the legacy fbdev support 2013-10-11 23:37:23 +02:00
Makefile drm/i915: rename intel_fb.c to intel_fbdev.c 2013-10-11 23:37:33 +02:00