[Intel-gfx] [PATCH 00/23] intel gtt rework, part 1: initialization
daniel.vetter at ffwll.ch
Wed Sep 1 13:29:47 PDT 2010
The goal of this rework is to
a) separate the fake agp driver from the hw access and
b) dig a direct path from gem to the intel gtt code
with the long-term goal to get rid of the fake agp driver for kms.
This series does this for the gtt setup code - except for the pte clearing
with the scratch page on initialization and pte restoring on resume, that
needs further work, first.
Patch series continuously tested on my ilk, i945gm and i855gm while
developing. IMHO the part most likely to suffer a regression is the
g33/pineview gtt size detection code.
Future patch series still to come like I'm currently planning them:
0. Deprecated the agp ioctls for kms. IIRC only xvmc on i915 ever used them
(together with pin/unpin, which can go, too) and I've fixed that for
intel 2.11 (2010Q1 release). So I think we can drop this in 2011Q1
without hurting anyone.
1. Abstract away the pte handling/memory mapping. The intel fake agp drivers is
the only user of quite a few generic agp helper things (dma remapping and
the memory mask stuff, mostly). So this has the potential to be rather messy.
2. Wire the new pte handling directly to i915 and move the high-level stuff
into the gem code. Sandybridge seems to have some new requirements here, can
someone please shed some light on this? Zhenyu Wang?
[3. Port my duct-tapish i8xx cache coherency stuff over to the new framework.]
After 2011Q1: Kill the fake agp driver for kms-only chips (ilk and newer).
Perhaps even separate out the non-gem ums driver and get rid of the fake agp
driver for kms completely somewhen later.
Comments, flames, ideas highly welcome.
daniel Vetter (23):
agp/intel: split out gmch/gtt probe, part 2
agp/intel: make intel-gtt.c into a real source file
intel-gtt: introduce drm/intel-gtt.h
intel-gtt: store a local pointer to the bridge pci dev
intel-gtt: new function intel_gtt_mappable_entries
intel-gtt: generic intel_fake_agp_fetch_size
intel-gtt: sane variable names for intel_gtt_stolen_entries
intel-gtt: drop unnecessary conditions in intel_gtt_stolen_entries
intel-gtt: adjust overhead entries in intel_gtt_stolen_entries
intel-gtt: s/i80/fake_agp for generic functions
intel-gtt: fix gtt_total_entries detection
intel-gtt: introduce intel_gtt_driver
intel-gtt: i915: use detected gtt size for mapping
intel-gtt: i965: use detected gtt size for mapping
intel-gtt: i830: adjust ioremap of regs and gtt to i9xx
intel-gtt: consolidate the gtt ioremap calls
intel-gtt: consolidate i830 setup
intel-gtt: consolidate i9xx setup
intel-gtt: call init_gtt_init in probe function
intel-gtt: use chipset generation number some more
drm/i915: drop prealloc_start from i915_dma gtt init
drm/i915: die, i915_probe_agp, die
drivers/char/agp/Makefile | 1 +
drivers/char/agp/intel-agp.c | 189 +------
drivers/char/agp/intel-agp.h | 41 +--
drivers/char/agp/intel-gtt.c | 1067 +++++++++++++++++++++------------------
drivers/gpu/drm/i915/i915_dma.c | 197 +-------
drivers/gpu/drm/i915/i915_drv.h | 8 +-
include/drm/intel-gtt.h | 20 +
7 files changed, 634 insertions(+), 889 deletions(-)
create mode 100644 include/drm/intel-gtt.h
More information about the Intel-gfx