linux/drivers/gpu/drm/i915
Daniel Vetter e8cb455876 drm/i915/dp: convert to encoder disable/enable
DP is the first encoder which isn't simple. As

commit d240f20f54
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Fri Aug 13 15:43:26 2010 -0700

    drm/i915: make sure eDP PLL is enabled at the right time

discovered, we need to enable the eDP PLL for the cpu port _before_ we
enable the pipes and planes. After a few more commits the current
solution is to enable the PLL in the dp mode_set function (because
this is the only encoder callback the crtc helper code calls before it
calls the crtc's commit function).

Now I suspect that we actually should enable/disable the entire cpu
eDP port before/after planes, but thanks to how the crtc helper code
assumes that you can disable an encoder without disabling it's crtc
right away, this won't work.

The result is that the current prepare/commit hooks don't touch the
eDP PLL, but instead it get's frobbed in dp_mode_set and in the dp
dpms function. Hence we need to keep things (at least for now)
bug-for-bug compatible by using our own special dp dpms function and
keep everything else more-or-less as-is (just using our own
infrastrucutre now).

This mess can only be cleaned up once we control the entire modeset
sequence and can move things around freely.

v2: Squash unsupported dpms modes to OFF at the beginning of the DP
dpms function.

v3: Need to set the dpms state to off in dp_disable, otherwise this
breaks the newly added WARNs ...

v4: Rebased against edp panel off sequence changes in 3.6-rc2

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-09-06 07:54:21 +02:00
..
dvo_ch7xxx.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_ch7017.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_ivch.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_ns2501.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_sil164.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo_tfp410.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
dvo.h drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
i915_debugfs.c drm/i915: don't grab dev->struct_mutex for userspace forcewak 2012-08-12 11:28:49 +02:00
i915_dma.c drm/i915: implement dma buf begin_cpu_access (v2) 2012-08-17 10:10:06 +02:00
i915_drv.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
i915_drv.h drm/i915: add crtc->enable/disable vfuncs insted of dpms 2012-09-06 07:52:00 +02:00
i915_gem_context.c drm/i915: remove unused variable 2012-08-05 22:39:53 +02:00
i915_gem_debug.c drm/i915: stop using dev->agp->base 2012-06-12 22:18:06 +02:00
i915_gem_dmabuf.c drm/i915: implement dma buf begin_cpu_access (v2) 2012-08-17 10:10:06 +02:00
i915_gem_evict.c drm/i915: Segregate memory domains in the GTT using coloring 2012-07-26 12:56:25 +02:00
i915_gem_execbuffer.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
i915_gem_gtt.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
i915_gem_stolen.c drm/i915: Split the stolen handling for GEM out of i915_dma.c 2012-05-03 11:18:11 +02:00
i915_gem_tiling.c drm/i915: Only the zap the VMA after updating the tiling parameters 2012-05-03 11:18:07 +02:00
i915_gem.c drm/i915: Lazily apply the SNB+ seqno w/a 2012-08-10 11:11:32 +02:00
i915_ioc32.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_irq.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
i915_reg.h drm/i915: ironlake_write_eld code cleanup 2012-08-17 10:10:04 +02:00
i915_suspend.c Linux 3.5-rc7 2012-07-20 00:53:28 -04:00
i915_sysfs.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
i915_trace.h drm/i915: improve i915_wait_request_begin trace 2012-05-25 09:55:15 +02:00
intel_acpi.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +02:00
intel_bios.c drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_bios.h drm/i915/bios: cleanup return type of intel_parse_bios() 2012-06-27 10:17:51 +01:00
intel_crt.c drm/i915: Allow VGA on CRTC 2 2012-08-17 10:10:06 +02:00
intel_ddi.c drm/i915/hdmi: convert to encoder->disable/enable 2012-09-06 07:53:37 +02:00
intel_display.c drm/i915/hdmi: convert to encoder->disable/enable 2012-09-06 07:53:37 +02:00
intel_dp.c drm/i915/dp: convert to encoder disable/enable 2012-09-06 07:54:21 +02:00
intel_drv.h drm/i915/hdmi: convert to encoder->disable/enable 2012-09-06 07:53:37 +02:00
intel_dvo.c drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +02:00
intel_fb.c drm/i915: Zero initialize mode_cmd 2012-07-05 13:27:58 +02:00
intel_hdmi.c drm/i915/hdmi: convert to encoder->disable/enable 2012-09-06 07:53:37 +02:00
intel_i2c.c drm/i915: ensure i2c adapter is all set before adding it 2012-08-13 19:04:24 +02:00
intel_lvds.c drm/i915/lvds: convert to encoder disable/enable 2012-09-06 07:54:15 +02:00
intel_modes.c drm/i915: kill intel_ddc_probe 2012-07-20 12:21:39 +02:00
intel_opregion.c drm/i915: [sparse] __iomem fixes for opregion 2012-05-03 11:18:00 +02:00
intel_overlay.c drm/i915: rip out the overlay pipe A workaround 2012-08-17 10:10:01 +02:00
intel_panel.c drm/i915: Fix blank panel at reopening lid 2012-08-11 21:15:16 +02:00
intel_pm.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
intel_ringbuffer.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
intel_ringbuffer.h drm/i915: Lazily apply the SNB+ seqno w/a 2012-08-10 11:11:32 +02:00
intel_sdvo_regs.h drm/i915: properly handle interlaced bit for sdvo dtd conversion 2012-05-24 17:53:52 +02:00
intel_sdvo.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
intel_sprite.c drm/i915: mask tiled bit when updating ILK sprites 2012-07-20 12:21:40 +02:00
intel_tv.c drm/i915/tv: convert to encoder enable/disable 2012-09-06 07:54:10 +02:00
Makefile drm/i915: Support for ns2501-DVO 2012-07-25 18:23:48 +02:00