From 72cfc797b51e59ecf8a2787c6a176838241cc94b Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 14 Jun 2005 22:34:11 +0000 Subject: =?UTF-8?q?Adds=20support=20for=20PCI=20cards=20to=20MGA=20DRM=20T?= =?UTF-8?q?his=20patch=20adds=20serveral=20new=20ioctls=20and=20a=20new=20?= =?UTF-8?q?query=20to=20get=5Fparam=20query=20to=20=20=20=20=20support=20P?= =?UTF-8?q?CI=20MGA=20cards.=20Two=20ioctls=20were=20added=20to=20implemen?= =?UTF-8?q?t=20interrupt=20based=20waiting.=20With=20this=20=20=20=20=20ch?= =?UTF-8?q?ange,=20the=20client-side=20driver=20no=20longer=20needs=20to?= =?UTF-8?q?=20map=20the=20primary=20DMA=20=20=20=20=20region=20or=20the=20?= =?UTF-8?q?MMIO=20region.=20Previously,=20end-of-frame=20waiting=20was=20d?= =?UTF-8?q?one=20by=20=20=20=20=20busy=20waiting=20in=20the=20client-side?= =?UTF-8?q?=20driver=20until=20one=20of=20the=20MMIO=20registers=20=20=20?= =?UTF-8?q?=20=20(the=20current=20DMA=20pointer)=20matched=20a=20pointer?= =?UTF-8?q?=20to=20the=20end=20of=20primary=20DMA=20=20=20=20=20space.=20B?= =?UTF-8?q?y=20using=20interrupts,=20the=20busy=20waiting=20and=20the=20ex?= =?UTF-8?q?tra=20mappings=20are=20=20=20=20=20removed.=20A=20third=20ioctl?= =?UTF-8?q?=20was=20added=20to=20bootstrap=20DMA.=20This=20ioctl,=20which?= =?UTF-8?q?=20is=20used=20by=20the=20=20=20=20=20X-server,=20moves=20a=20*?= =?UTF-8?q?LOT*=20of=20code=20from=20the=20X-server=20into=20the=20kernel.?= =?UTF-8?q?=20This=20=20=20=20=20allows=20the=20kernel=20to=20do=20whateve?= =?UTF-8?q?r=20needs=20to=20be=20done=20to=20setup=20DMA=20buffers.=20=20?= =?UTF-8?q?=20=20=20The=20entire=20process=20and=20the=20locations=20of=20?= =?UTF-8?q?the=20buffers=20are=20hidden=20from=20=20=20=20=20user-mode.=20?= =?UTF-8?q?Additionally,=20a=20get=5Fparam=20query=20was=20added=20to=20di?= =?UTF-8?q?fferentiate=20between=20G4x0=20=20=20=20=20cards=20and=20G550?= =?UTF-8?q?=20cards.=20A=20gap=20was=20left=20in=20the=20numbering=20seque?= =?UTF-8?q?nce=20so=20that,=20=20=20=20=20if=20needed,=20G450=20cards=20co?= =?UTF-8?q?uld=20be=20distinguished=20from=20G400=20cards.=20According=20?= =?UTF-8?q?=20=20=20=20to=20Ville=20Syrj=C3=A4l=C3=A4,=20the=20G4x0=20card?= =?UTF-8?q?s=20and=20the=20G550=20cards=20handle=20=20=20=20=20anisotropic?= =?UTF-8?q?=20filtering=20differently.=20This=20seems=20the=20most=20compa?= =?UTF-8?q?tible=20way=20=20=20=20=20to=20let=20the=20client-side=20driver?= =?UTF-8?q?=20know=20which=20card=20it's=20own.=20Doing=20this=20very=20?= =?UTF-8?q?=20=20=20=20small=20change=20now=20eliminates=20the=20need=20to?= =?UTF-8?q?=20bump=20the=20DRM=20minor=20version=20=20=20=20=20twice.=20ht?= =?UTF-8?q?tp://marc.theaimsgroup.com/=3Fl=3Ddri-devel&m=3D106625815319773?= =?UTF-8?q?&w=3D2=20A=20number=20of=20ioctl=20handlers=20in=20linux-core?= =?UTF-8?q?=20were=20also=20modified=20so=20that=20they=20=20=20=20=20coul?= =?UTF-8?q?d=20be=20called=20in-kernel.=20In=20these=20cases,=20the=20in-k?= =?UTF-8?q?ernel=20callable=20=20=20=20=20version=20kept=20the=20existing?= =?UTF-8?q?=20name=20(e.g.,=20drm=5Fagp=5Facquire)=20and=20the=20ioctl=20?= =?UTF-8?q?=20=20=20=20handler=20added=20=5Fioctl=20to=20the=20name=20(e.g?= =?UTF-8?q?.,=20drm=5Fagp=5Facquire=5Fioctl).=20This=20patch=20also=20repl?= =?UTF-8?q?aces=20the=20drm=5Fagp=5Fdo=5Frelease=20function=20with=20=20?= =?UTF-8?q?=20=20=20drm=5Fagp=5Frelease.=20drm=5Fagp=5Frelease=20(drm=5Fco?= =?UTF-8?q?re=5Fagp=5Frelease=20in=20the=20previous=20=20=20=20=20patch)?= =?UTF-8?q?=20is=20very=20similar=20to=20drm=5Fagp=5Fdo=5Frelease,=20and?= =?UTF-8?q?=20I=20saw=20no=20reason=20to=20=20=20=20=20have=20both.=20This?= =?UTF-8?q?=20commit=20*breaks=20the=20build*=20on=20BSD.=20Eric=20said=20?= =?UTF-8?q?that=20he=20would=20make=20the=20=20=20=20=20required=20updates?= =?UTF-8?q?=20to=20the=20BSD=20side=20soon.=20Xorg=20bug:=203259=20Reviewe?= =?UTF-8?q?d=20by:=20Eric=20Anholt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linux-core/drm_drv.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'linux-core/drm_drv.c') diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c index 5a39e34e..39c893ce 100644 --- a/linux-core/drm_drv.c +++ b/linux-core/drm_drv.c @@ -72,8 +72,8 @@ drm_ioctl_desc_t drm_ioctls[] = { [DRM_IOCTL_NR(DRM_IOCTL_UNBLOCK)] = {drm_noop, 1, 1}, [DRM_IOCTL_NR(DRM_IOCTL_AUTH_MAGIC)] = {drm_authmagic, 1, 1}, - [DRM_IOCTL_NR(DRM_IOCTL_ADD_MAP)] = {drm_addmap, 1, 1}, - [DRM_IOCTL_NR(DRM_IOCTL_RM_MAP)] = {drm_rmmap, 1, 0}, + [DRM_IOCTL_NR(DRM_IOCTL_ADD_MAP)] = {drm_addmap_ioctl, 1, 1}, + [DRM_IOCTL_NR(DRM_IOCTL_RM_MAP)] = {drm_rmmap_ioctl, 1, 0}, [DRM_IOCTL_NR(DRM_IOCTL_SET_SAREA_CTX)] = {drm_setsareactx, 1, 1}, [DRM_IOCTL_NR(DRM_IOCTL_GET_SAREA_CTX)] = {drm_getsareactx, 1, 0}, @@ -105,10 +105,10 @@ drm_ioctl_desc_t drm_ioctls[] = { [DRM_IOCTL_NR(DRM_IOCTL_CONTROL)] = {drm_control, 1, 1}, #if __OS_HAS_AGP - [DRM_IOCTL_NR(DRM_IOCTL_AGP_ACQUIRE)] = {drm_agp_acquire, 1, 1}, - [DRM_IOCTL_NR(DRM_IOCTL_AGP_RELEASE)] = {drm_agp_release, 1, 1}, - [DRM_IOCTL_NR(DRM_IOCTL_AGP_ENABLE)] = {drm_agp_enable, 1, 1}, - [DRM_IOCTL_NR(DRM_IOCTL_AGP_INFO)] = {drm_agp_info, 1, 0}, + [DRM_IOCTL_NR(DRM_IOCTL_AGP_ACQUIRE)] = {drm_agp_acquire_ioctl, 1, 1}, + [DRM_IOCTL_NR(DRM_IOCTL_AGP_RELEASE)] = {drm_agp_release_ioctl, 1, 1}, + [DRM_IOCTL_NR(DRM_IOCTL_AGP_ENABLE)] = {drm_agp_enable_ioctl, 1, 1}, + [DRM_IOCTL_NR(DRM_IOCTL_AGP_INFO)] = {drm_agp_info_ioctl, 1, 0}, [DRM_IOCTL_NR(DRM_IOCTL_AGP_ALLOC)] = {drm_agp_alloc, 1, 1}, [DRM_IOCTL_NR(DRM_IOCTL_AGP_FREE)] = {drm_agp_free, 1, 1}, [DRM_IOCTL_NR(DRM_IOCTL_AGP_BIND)] = {drm_agp_bind, 1, 1}, @@ -130,7 +130,7 @@ drm_ioctl_desc_t drm_ioctls[] = { * * Frees every resource in \p dev. * - * \sa drm_device and setup(). + * \sa drm_device */ int drm_takedown(drm_device_t * dev) { @@ -190,7 +190,7 @@ int drm_takedown(drm_device_t * dev) dev->agp->memory = NULL; if (dev->agp->acquired) - drm_agp_do_release(dev); + drm_agp_release(dev); dev->agp->acquired = 0; dev->agp->enabled = 0; @@ -365,7 +365,7 @@ EXPORT_SYMBOL(drm_init); * * Cleans up all DRM device, calling takedown(). * - * \sa drm_init(). + * \sa drm_init */ static void __exit drm_cleanup(drm_device_t * dev) { -- cgit v1.2.3