[PATCH 1/6] drm: Inline AGP wrappers into their only callers

Daniel Vetter daniel at ffwll.ch
Tue Jan 12 14:01:11 UTC 2021


On Tue, Jan 12, 2021 at 10:56 AM Thomas Zimmermann <tzimmermann at suse.de> wrote:
>
> Hi
>
> Am 12.01.21 um 09:59 schrieb Daniel Vetter:
> > On Tue, Jan 12, 2021 at 09:10:30AM +0100, Thomas Zimmermann wrote:
> >> The AGP wrapper functions serve no purpose.
> >>
> >> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> >
> > They do, without them we fail compiling (I think at least) when agp isn't
>
> I thought so. But the only callers are in drm_agpsupport.c, which
> depends on CONFIG_AGP in the Makefile. So I expected this to work.

Please add that information to the commit message, with that r-b: me too.
-Daniel

>
> Best regards
> Thomas
>
> > enabled. Did you check for that? I should all work if we have the dummy
> > inlines for relevant agp functions in linux/agp_backend.h.
> > -Daniel
> >
> >> ---
> >>   drivers/gpu/drm/drm_agpsupport.c | 12 ++++++------
> >>   drivers/gpu/drm/drm_memory.c     | 18 ------------------
> >>   include/drm/drm_agpsupport.h     | 18 ------------------
> >>   3 files changed, 6 insertions(+), 42 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
> >> index 4c7ad46fdd21..8b690ef306de 100644
> >> --- a/drivers/gpu/drm/drm_agpsupport.c
> >> +++ b/drivers/gpu/drm/drm_agpsupport.c
> >> @@ -285,7 +285,7 @@ int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request)
> >>      entry = drm_agp_lookup_entry(dev, request->handle);
> >>      if (!entry || !entry->bound)
> >>              return -EINVAL;
> >> -    ret = drm_unbind_agp(entry->memory);
> >> +    ret = agp_unbind_memory(entry->memory);
> >>      if (ret == 0)
> >>              entry->bound = 0;
> >>      return ret;
> >> @@ -326,7 +326,7 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
> >>      if (!entry || entry->bound)
> >>              return -EINVAL;
> >>      page = DIV_ROUND_UP(request->offset, PAGE_SIZE);
> >> -    retcode = drm_bind_agp(entry->memory, page);
> >> +    retcode = agp_bind_memory(entry->memory, page);
> >>      if (retcode)
> >>              return retcode;
> >>      entry->bound = dev->agp->base + (page << PAGE_SHIFT);
> >> @@ -369,11 +369,11 @@ int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request)
> >>      if (!entry)
> >>              return -EINVAL;
> >>      if (entry->bound)
> >> -            drm_unbind_agp(entry->memory);
> >> +            agp_unbind_memory(entry->memory);
> >>
> >>      list_del(&entry->head);
> >>
> >> -    drm_free_agp(entry->memory, entry->pages);
> >> +    agp_free_memory(entry->memory);
> >>      kfree(entry);
> >>      return 0;
> >>   }
> >> @@ -453,8 +453,8 @@ void drm_legacy_agp_clear(struct drm_device *dev)
> >>
> >>      list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) {
> >>              if (entry->bound)
> >> -                    drm_unbind_agp(entry->memory);
> >> -            drm_free_agp(entry->memory, entry->pages);
> >> +                    agp_unbind_memory(entry->memory);
> >> +            agp_free_memory(entry->memory);
> >>              kfree(entry);
> >>      }
> >>      INIT_LIST_HEAD(&dev->agp->memory);
> >> diff --git a/drivers/gpu/drm/drm_memory.c b/drivers/gpu/drm/drm_memory.c
> >> index fbea69d6f909..f4f2bffdd5bd 100644
> >> --- a/drivers/gpu/drm/drm_memory.c
> >> +++ b/drivers/gpu/drm/drm_memory.c
> >> @@ -100,24 +100,6 @@ static void *agp_remap(unsigned long offset, unsigned long size,
> >>      return addr;
> >>   }
> >>
> >> -/** Wrapper around agp_free_memory() */
> >> -void drm_free_agp(struct agp_memory *handle, int pages)
> >> -{
> >> -    agp_free_memory(handle);
> >> -}
> >> -
> >> -/** Wrapper around agp_bind_memory() */
> >> -int drm_bind_agp(struct agp_memory *handle, unsigned int start)
> >> -{
> >> -    return agp_bind_memory(handle, start);
> >> -}
> >> -
> >> -/** Wrapper around agp_unbind_memory() */
> >> -int drm_unbind_agp(struct agp_memory *handle)
> >> -{
> >> -    return agp_unbind_memory(handle);
> >> -}
> >> -
> >>   #else /*  CONFIG_AGP  */
> >>   static inline void *agp_remap(unsigned long offset, unsigned long size,
> >>                            struct drm_device *dev)
> >> diff --git a/include/drm/drm_agpsupport.h b/include/drm/drm_agpsupport.h
> >> index 664e120b93e6..f3136750c490 100644
> >> --- a/include/drm/drm_agpsupport.h
> >> +++ b/include/drm/drm_agpsupport.h
> >> @@ -28,10 +28,6 @@ struct drm_agp_head {
> >>
> >>   #if IS_ENABLED(CONFIG_AGP)
> >>
> >> -void drm_free_agp(struct agp_memory * handle, int pages);
> >> -int drm_bind_agp(struct agp_memory * handle, unsigned int start);
> >> -int drm_unbind_agp(struct agp_memory * handle);
> >> -
> >>   struct drm_agp_head *drm_agp_init(struct drm_device *dev);
> >>   void drm_legacy_agp_clear(struct drm_device *dev);
> >>   int drm_agp_acquire(struct drm_device *dev);
> >> @@ -61,20 +57,6 @@ int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
> >>
> >>   #else /* CONFIG_AGP */
> >>
> >> -static inline void drm_free_agp(struct agp_memory * handle, int pages)
> >> -{
> >> -}
> >> -
> >> -static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
> >> -{
> >> -    return -ENODEV;
> >> -}
> >> -
> >> -static inline int drm_unbind_agp(struct agp_memory * handle)
> >> -{
> >> -    return -ENODEV;
> >> -}
> >> -
> >>   static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
> >>   {
> >>      return NULL;
> >> --
> >> 2.29.2
> >>
> >
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Maxfeldstr. 5, 90409 Nürnberg, Germany
> (HRB 36809, AG Nürnberg)
> Geschäftsführer: Felix Imendörffer
>


-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list