Am Fr, den 15.10.2004 schrieb Keith Whitwell um 15:50: > Felix Kühling wrote: > > Am Fr, den 15.10.2004 schrieb Vladimir Dergachev um 5:27: > > > >>On Fri, 15 Oct 2004, Felix [ISO-8859-1] Kühling wrote: > >> > >> > >>>Am Fr, den 15.10.2004 schrieb Jon Smirl um 3:58: > >>> > >>>>On Fri, 15 Oct 2004 03:55:37 +0200, Felix Kühling <[EMAIL PROTECTED]> wrote: > >>>> > >>>>>I'm trying to get Shadow status working in the savage driver. I'd like > >>>>>to put the status page into locked shared memory and tell the Savage > >>>>>chips about its physical address. I used a drmAddMap call copied from > >>>>>the MGA driver that looked like it did what I wanted. But I had to find > >>>>>out that the handle returned by drmAddMap is a kernel virtual address, > >>>>>not a physical address. Later I saw that the status page seems to be > >>>>>unused in the MGA driver. The code to get the physical address from the > >>>>>kernel virtual address is #if-ed out, probably for portability reasons. > >>>> > >>>>Does the code in drm_pci.c apply? It's only used by the via driver. > >>>>I'm not sure what it does. > >>> > >>>I guess if I was only going to use that memory in kernel drm_pci_alloc > >>>would be fine. But I want to map the status page at least in the > >>>Xserver, maybe also in clients. > >> > >>Take a look at km or v4l drivers - maybe there is something you can use. > >> > >>With 2.4 I used rvmalloc - I don't recall whether there is a standard > >>mechanism for this in 2.6. > > > > > > The point is that I'm not just looking for a way to get a physical > > address in Linux. In that case I'd just use virt_to_bus on the map > > handle. Since I only need a single page I also don't need to worry about > > allocating consistent memory. However, I want to use the mechanisms > > available in the DRM abstraction layer so that the savage driver stays > > (at least theoretically) portable to BSD and so that I can use > > drmMap/drmMapBufs to map the status page in the Xserver and/or in DRI > > clients. > > I'm not sure that such a mechanism exists. If it doesn't, I think the onus > falls on the porter to provide one, if a port is ever attempted.
I see two alternatives for providing what I need. 1. A new map type _DRM_PCI (or _DRM_CONSISTENT if you prefer that in contrast to _DRM_SCATTER_GATHER) that allocates pages with drm_alloc_pages and returns the physical address as handle. 2. A new map flag for the _DRM_SHM map type, say _DRM_CONSISTENT that makes it allocate with drm_alloc_pages and return the physical address as handle. I think the first one sounds cleaner. If we can agree on this I'd prepare a patch for the linux-core implementation and the corresponding headers in Xorg for review.(*) When BSD gets ported to the core/personality model it would need to get the new PCI map type too in order to support any drivers that use it. > > Keith Regards, Felix (*) In fact I'm starting right now. -- | Felix Kühling <[EMAIL PROTECTED]> http://fxk.de.vu | | PGP Fingerprint: 6A3C 9566 5B30 DDED 73C3 B152 151C 5CC1 D888 E595 | ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl -- _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel