[PATCH 14/14] drm: kill agp indirection mess
Kristian Høgsberg
krh at bitplanet.net
Tue Aug 24 08:05:04 PDT 2010
On Mon, Aug 23, 2010 at 4:53 PM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> There's no point in jumping through two indirections. So kill one
> and call the kernels agp functions directly.
>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/drm_agpsupport.c | 40 +++----------------------------------
> drivers/gpu/drm/drm_memory.c | 12 ++--------
> include/drm/drmP.h | 5 ----
> 3 files changed, 7 insertions(+), 50 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
> index ba38e01..252fdb9 100644
> --- a/drivers/gpu/drm/drm_agpsupport.c
> +++ b/drivers/gpu/drm/drm_agpsupport.c
> @@ -193,7 +193,7 @@ int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
> * \return zero on success or a negative number on failure.
> *
> * Verifies the AGP device is present and has been acquired, allocates the
> - * memory via alloc_agp() and creates a drm_agp_mem entry for it.
> + * memory via agp_allocate_memory() and creates a drm_agp_mem entry for it.
> */
> int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request)
> {
> @@ -211,7 +211,7 @@ int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request)
>
> pages = (request->size + PAGE_SIZE - 1) / PAGE_SIZE;
> type = (u32) request->type;
> - if (!(memory = drm_alloc_agp(dev, pages, type))) {
> + if (!(memory = agp_allocate_memory(dev->agp->bridge, pages, type))) {
> kfree(entry);
> return -ENOMEM;
> }
> @@ -423,38 +423,6 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev)
> return head;
> }
>
> -/** Calls agp_allocate_memory() */
> -DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data * bridge,
> - size_t pages, u32 type)
> -{
> - return agp_allocate_memory(bridge, pages, type);
> -}
> -
> -/** Calls agp_free_memory() */
> -int drm_agp_free_memory(DRM_AGP_MEM * handle)
> -{
> - if (!handle)
> - return 0;
> - agp_free_memory(handle);
> - return 1;
> -}
> -
> -/** Calls agp_bind_memory() */
> -int drm_agp_bind_memory(DRM_AGP_MEM * handle, off_t start)
> -{
> - if (!handle)
> - return -EINVAL;
> - return agp_bind_memory(handle, start);
> -}
> -
> -/** Calls agp_unbind_memory() */
> -int drm_agp_unbind_memory(DRM_AGP_MEM * handle)
> -{
> - if (!handle)
> - return -EINVAL;
> - return agp_unbind_memory(handle);
> -}
> -
> /**
> * Binds a collection of pages into AGP memory at the given offset, returning
> * the AGP memory structure containing them.
> @@ -474,7 +442,7 @@ drm_agp_bind_pages(struct drm_device *dev,
>
> DRM_DEBUG("\n");
>
> - mem = drm_agp_allocate_memory(dev->agp->bridge, num_pages,
> + mem = agp_allocate_memory(dev->agp->bridge, num_pages,
> type);
> if (mem == NULL) {
> DRM_ERROR("Failed to allocate memory for %ld pages\n",
> @@ -487,7 +455,7 @@ drm_agp_bind_pages(struct drm_device *dev,
> mem->page_count = num_pages;
>
> mem->is_flushed = true;
> - ret = drm_agp_bind_memory(mem, gtt_offset / PAGE_SIZE);
> + ret = agp_bind_memory(mem, gtt_offset / PAGE_SIZE);
> if (ret != 0) {
> DRM_ERROR("Failed to bind AGP memory: %d\n", ret);
> agp_free_memory(mem);
> diff --git a/drivers/gpu/drm/drm_memory.c b/drivers/gpu/drm/drm_memory.c
> index 70ca27e..c9b8050 100644
> --- a/drivers/gpu/drm/drm_memory.c
> +++ b/drivers/gpu/drm/drm_memory.c
> @@ -99,29 +99,23 @@ static void *agp_remap(unsigned long offset, unsigned long size,
> return addr;
> }
>
> -/** Wrapper around agp_allocate_memory() */
> -DRM_AGP_MEM *drm_alloc_agp(struct drm_device * dev, int pages, u32 type)
> -{
> - return drm_agp_allocate_memory(dev->agp->bridge, pages, type);
> -}
> -
> /** Wrapper around agp_free_memory() */
> void drm_free_agp(DRM_AGP_MEM * handle, int pages)
> {
> - drm_agp_free_memory(handle);
> + agp_free_memory(handle);
> }
> EXPORT_SYMBOL(drm_free_agp);
>
> /** Wrapper around agp_bind_memory() */
> int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start)
> {
> - return drm_agp_bind_memory(handle, start);
> + return agp_bind_memory(handle, start);
> }
>
> /** Wrapper around agp_unbind_memory() */
> int drm_unbind_agp(DRM_AGP_MEM * handle)
> {
> - return drm_agp_unbind_memory(handle);
> + return agp_unbind_memory(handle);
> }
> EXPORT_SYMBOL(drm_unbind_agp);
Any reason to keep these last three wrappers around?
Kristian
More information about the dri-devel
mailing list