Attached is patch to fix this, so sorry about that, i must have lost my agp change along the way when working on the patchset. This patch is not extensively tested, i will do more testing tomorrow on more gpu, might even found an nvidia agp i can try. Again sorry for breaking this.
Thanks for the fix up. I was wondering if this purposed change could be done instead. Its the same as your fix up except that you pass in the ttm_buffer_object for tt_create. The reason is I really like to have the ability to have more than one back end to grab a bunch pf pages from. Currently its AGP or something else. On some of my embedded devices the AGP space is not very large and can be exhausted very quickly. Those embedded devices have DMA engines I could use instead.
This change violate the layer separation ttm wish to preserve see : http://www.mail-archive.com/dri-devel@lists.freedesktop.org/msg16443.html
You can achieve what you want by either adding a new domain so you would have system, vram, agp, pcidma and object can be bound to one and only one. Or you can hack your own agp ttm backend that could bind bo to agp or pci or both at the same time depending on what you want to achieve.
The question is how does one know which domain you want in tt_create. Currenty drivers are using there dev_priv but if you have have more than one option available how does one choose? Would you be okay with passing in a domain flag?