linux/drivers/gpu/drm/i915
Daniel Vetter eae307a530 drm/i915: rip out crtc prepare/commit indirection
Just impendance matching with the the crtc helper stuff.

... and somehow the design of this all ended up in this commit here,
too ;-)

The big plan is that this new set of crtc display_funcs take full
responsibility of modeset operations for the entire display output
pipeline (by calling down into object-specific callbacks and
functions). The platform-specific callbacks simply know best what the
proper order is.

This has the drawback that we can't do minimal change-overs any more
if a modeset just disables one encoder in a cloned configuration
(because we will only expose a disable/enable action that takes
down/sets up the entire crtc including all encoders). Imo that's the
only sane way to do it though:
- The use-case for this is pretty minimal, even when presenting (at
  least sane people) should use a dual-screen output so that you can
  see your notes on your panel. Clone mode is imo BS.
- With all the clone mode constrains, shared resources, and special
  ordering requirements (which differ even on the same platform
  sometimes for different outputs) there's no way we'd get this right
  for all cases. Especially since this is a under-used feature.
- And to top it off: On haswell even dp link re-training requires us
  to take down the entire display pipe - otherwise the chip dies.

So the only sane way is to do a full modeset on every crtc where the
output config changes in any way.

To support global modeset (i.e. set the configuration for all crtcs at
once) we'd then add one more function to allocate global and shared
objects in the best ways (e.g. fdi links, pch plls, ...). The crtc
functions would then simply use the pre-allocated stuff (and shouldn't
be able to fail, ever). We could even do all the object pinning in
there (and maybe try to defragment the global gtt if we fail)!

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-09-06 07:53:10 +02:00
..
Makefile drm/i915: Support for ns2501-DVO 2012-07-25 18:23:48 +02:00
dvo.h drm/i915: simplify dvo dpms interface 2012-08-17 10:10:02 +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
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.c drm/i915: Lazily apply the SNB+ seqno w/a 2012-08-10 11:11:32 +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_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.h drm/i915: improve i915_wait_request_begin trace 2012-05-25 09:55:15 +02:00
i915_trace_points.c drm/i915: [sparse] trivial sparse fixes 2012-04-18 10:34:49 +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: write eld info for HDMI audio 2012-08-17 10:10:04 +02:00
intel_display.c drm/i915: rip out crtc prepare/commit indirection 2012-09-06 07:53:10 +02:00
intel_dp.c Linux 3.6-rc2 2012-08-17 09:01:08 +02:00
intel_drv.h drm/i915: drop intel_encoder argument to load_detect_pipe functions 2012-08-17 10:10:02 +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: add port parameter to intel_hdmi_init 2012-07-25 18:23:47 +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: simplify possible_clones computation 2012-07-25 18:23:46 +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.c Linux 3.6-rc2 2012-08-17 09:01:08 +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_sprite.c drm/i915: mask tiled bit when updating ILK sprites 2012-07-20 12:21:40 +02:00
intel_tv.c drm/i915: drop intel_encoder argument to load_detect_pipe functions 2012-08-17 10:10:02 +02:00