[Openchrome-devel] [PATCH] TTM/GEM patch v2

James Simmons jsimmons
Mon Jan 31 08:01:33 PST 2011


Hi all!

	This weekend I just finished up the second version of the TTM/GEM 
patch for the VIA chipset. Changes from the last patch are:

1) I fixed the module unloading bug and so far I no oops :-) You can 
   also restart your X server with no problems.

2) Moved all resource handling to TTM. This includes the MMIO region used
   internally.

3) GEM creation ioctl was added. I tested with some basic test apps with 
   libkms. Currently the Xorg drivers doesn't use this new api but it 
   would be pretty easy to add.

4) Rework the detection of resources. If no AGP is present or no VRAM 
   allocated the driver should continue to work. Only the MMIO region is
   required.

5) Reworked the VRAM detection code to use the north bridge to detect the 
   amount of RAM as well as the type. We need to know the type when 
   dealing with bandwidth issues for the display.

Please test the patch at 

http://www.infradead.org/~jsimmons/via-ttm.diff

It is against the branch drm-next.

http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=shortlog;h=drm-next

I especially want to make sure the memory detection code is correct. Thank 
you.

-------------------------------------------------------------------------------------

The TTM/GEM is usable but is missing some features. Here is what is 
left to do on for the TTM/GEM layer:

TODO:

1) Accelerated bmove.

2) Fence object handling. This will be needed for the 3D handling.

3) Add support for VIA PCI DMA Gart

-----------------------------------------------------------------------

Outside of TTM/GEM work we also have KMS support to start and having xorg 
via driver support GEM and KMS. At this point we have 3 options for the
kms_branch for the xorg driver.

1) Merge current code into trunk but kept kms branch for continued work.
   Then add GEM hooks into kms branch. Merge again into trunk once stable.
   Start KMS work kernel side and support on xorg side then merge kms 
   branch into trunk once stable. 

2) Add support for GEM api into kms branch first then merge into trunk.
   Start KMS work kernel side and support on xorg side then merge kms 
   branch into trunk once stable.

3) Start KMS work kernel side and support on xorg side. At the same time 
   add in GEM support for kms branch. Once stable merge back into trunk.
    
Personally I lean toward option 2. The KMS handling will be a bit tricker 
if we want to maitain backwards compatiablity. No easy way to detect if 
modeset is avaliable that I know of on top of my head.




More information about the Openchrome-devel mailing list