linux/drivers/gpu/drm/i915
Pradeep Bhat 4f9db5b51c drm/i915: Parse EDID probed modes for DRRS support
This patch and finds out the lowest refresh rate supported for the resolution
same as the fixed_mode.
It also checks the VBT fields to see if panel supports seamless DRRS or not.
Based on above data it marks whether eDP panel supports seamless DRRS or not.
This information is needed for supporting seamless DRRS switch for certain
power saving usecases. This patch is tested by enabling the DRM logs and
user should see whether Seamless DRRS is supported or not.

v2: Daniel's review comments
Modified downclock deduction based on intel_find_panel_downclock

v3: Chris's review comments
Moved edp_downclock_avail and edp_downclock to intel_panel

v4: Jani's review comments.
Changed name of the enum edp_panel_type to drrs_support type.
Change is_drrs_supported to drrs_support of type enum drrs_support_type.

v5: Incorporated Jani's review comments
Modify intel_dp_drrs_initialize to return downclock mode. Support for Gen7
and above.

v6: Incorporated Chris's review comments.
Changed initialize to init in intel_drrs_initialize

v7: Incorporated Jani's review comments.
Removed edp_downclock and edp_downclock_avail. Return NULL explicitly.
Make drrs_state and unnamed struct. Move Gen based check inside drrs_init.

v8: Made changes to track PSR enable/disable throughout system use (instead
of just in the init sequence) for disabling/enabling DRRS. Jani's review
comments.

v9: PSR tracking will be done as part of idleness detection patch. Removed
PSR state tracker in i915_drrs. Jani's review comments.

v10: Added log for DRRS not supported in drrs_init

v11: Modification in drrs_init. suggested by Jani

Signed-off-by: Pradeep Bhat <pradeep.bhat@intel.com>
Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-04-10 10:54:44 +02:00
..
dvo_ch7xxx.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_ch7017.c
dvo_ivch.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_ns2501.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_sil164.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_tfp410.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
i915_cmd_parser.c drm/i915: Add more registers to the whitelist for mesa 2014-04-09 21:54:05 +02:00
i915_debugfs.c Merge remote-tracking branch 'airlied/drm-next' into HEAD 2014-04-09 14:33:47 +02:00
i915_dma.c drm/i915: Add a CMD_PARSER_VERSION getparam 2014-04-01 22:58:15 +02:00
i915_drv.c Merge remote-tracking branch 'airlied/drm-next' into HEAD 2014-04-09 14:33:47 +02:00
i915_drv.h drm/i915/chv: Add IS_CHERRYVIEW() macro 2014-04-09 21:54:33 +02:00
i915_gem_context.c drm/i915: Make contexts non-snooped on non-LLC platforms 2014-04-09 14:37:10 +02:00
i915_gem_debug.c drm/i915: prefer struct drm_i915_private to drm_i915_private_t 2014-03-31 15:34:21 +02:00
i915_gem_dmabuf.c drm/i915: dma_buf_vunmap is presumed not to fail, don't let it 2014-04-09 15:03:05 +02:00
i915_gem_evict.c drm/i915: prefer struct drm_i915_private to drm_i915_private_t 2014-03-31 15:34:21 +02:00
i915_gem_execbuffer.c drm/i915: Unref context on failed eb_create 2014-04-09 14:37:11 +02:00
i915_gem_gtt.c Merge remote-tracking branch 'airlied/drm-next' into HEAD 2014-04-09 14:33:47 +02:00
i915_gem_gtt.h drm/i915: Split out GTT specific header file 2014-04-01 22:58:07 +02:00
i915_gem_stolen.c drm/i915: restrict vt-d stolen memory workaround to pre-gen8 2014-03-31 10:45:34 +02:00
i915_gem_tiling.c drm/i915: prefer struct drm_i915_private to drm_i915_private_t 2014-03-31 15:34:21 +02:00
i915_gem.c drm/i915: add flags to i915_ring_stop 2014-04-09 15:07:42 +02:00
i915_gpu_error.c drm/i915: Dump the whole context object. 2014-04-09 14:37:13 +02:00
i915_ioc32.c
i915_irq.c drm/i915: Rename GEN8_PIPE_FLIP_DONE to PRIMARY_FLIP_DONE 2014-04-09 15:15:16 +02:00
i915_params.c drm/i915: Add debug module option for VTd validation 2014-04-03 11:23:11 +02:00
i915_reg.h drm/i915: Add more registers to the whitelist for mesa 2014-04-09 21:54:05 +02:00
i915_suspend.c drm/i915: Kill most of the FBC register save/restore 2014-01-25 21:17:03 +01:00
i915_sysfs.c drm/i915: remove rps local variables 2014-03-20 14:46:07 +01:00
i915_trace_points.c
i915_trace.h drm/i915: Do not dereference pointers from ring buffer in evict event 2014-03-19 08:17:29 +01:00
i915_ums.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
intel_acpi.c Merge branch 'acpi-dsm' 2014-01-12 23:45:52 +01:00
intel_bios.c drm/i915: Adding VBT fields to support eDP DRRS feature 2014-04-01 22:58:30 +02:00
intel_bios.h drm/i915: Adding VBT fields to support eDP DRRS feature 2014-04-01 22:58:30 +02:00
intel_crt.c Skip intel_crt_init for Dell XPS 8700 2014-04-04 09:30:53 +02:00
intel_ddi.c drm/i915: fix WARNs when reading DDI state while suspended 2014-04-01 22:53:45 +02:00
intel_display.c drm/i915: Remove misleading debug message 2014-04-09 15:16:36 +02:00
intel_dp.c drm/i915: Parse EDID probed modes for DRRS support 2014-04-10 10:54:44 +02:00
intel_drv.h drm/i915: Parse EDID probed modes for DRRS support 2014-04-10 10:54:44 +02:00
intel_dsi_cmd.c drm/i915: Send DPI command explicitely in LP mode 2014-04-09 21:54:30 +02:00
intel_dsi_cmd.h drm/i915: Send DPI command explicitely in LP mode 2014-04-09 21:54:30 +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_dsi.c drm/i915: Enable RANDOM resolution support for MIPI panels 2014-04-09 21:54:31 +02:00
intel_dsi.h drm/i915: Parameterize the Clockstop and escape_clk_div 2014-04-09 21:54:29 +02:00
intel_dvo.c drm/i915: Make encoder cloning more flexible 2014-03-10 21:33:26 +01:00
intel_fbdev.c Merge tag 'drm-intel-fixes-2014-04-04' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-04-05 16:14:21 +10:00
intel_hdmi.c drm/i915: move infoframe setting to after pll enable v3 2014-04-09 14:48:19 +02:00
intel_i2c.c drm/i915: Disable dp aux irq on g4x 2014-02-07 16:40:07 +01:00
intel_lvds.c Merge tag 'drm-intel-next-2014-03-21' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-04-03 07:51:54 +10:00
intel_modes.c
intel_opregion.c Merge tag 'drm-intel-fixes-2014-02-06' of ssh://git.freedesktop.org/git/drm-intel into drm-next 2014-02-11 12:57:27 +10:00
intel_overlay.c Merge tag 'drm-intel-fixes-2014-04-04' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-04-05 16:14:21 +10:00
intel_panel.c Linux 3.14-rc7 2014-03-18 19:12:31 +10:00
intel_pm.c Revert "drm/i915: fix infinite loop at gen6_update_ring_freq" 2014-04-10 09:01:40 +02:00
intel_ringbuffer.c drm/i915: add flags to i915_ring_stop 2014-04-09 15:07:42 +02:00
intel_ringbuffer.h drm/i915: Move all ring resets before setting the HWS page 2014-04-03 17:16:45 +02:00
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sdvo.c drm/i915/sdvo: fix questionable return value check 2014-03-21 16:13:14 +01:00
intel_sideband.c drm/i915: Warn when DPIO read returns 0xffffffff 2014-04-03 11:28:39 +02:00
intel_sprite.c drm/i915: Shuffle sprite register writes into a tighter group 2014-01-24 17:22:53 +01:00
intel_tv.c drm/i915/tv: fix gen4 composite s-video tv-out 2014-03-28 18:33:16 +01:00
intel_uncore.c drm/i915: Use a macro to express the range of valid gens for reg_read 2014-04-01 22:58:23 +02:00
Kconfig drm/i915: Deprecate UMS harder 2014-04-01 22:58:24 +02:00
Makefile Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next 2014-03-18 09:43:56 +01:00