On Mon, Jul 30, 2018 at 04:51:54PM +0200, Christian König wrote: > Further demangle amdgpu.h I also found amdgpu.h is mingled with many things. Moving them to sub-header is necessary. Acked-by: Huang Rui <ray.huang at amd.com> > > Signed-off-by: Christian König <christian.koenig at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 40 +---------------- > drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 70 +++++++++++++++++++++++++++++ > 2 files changed, 71 insertions(+), 39 deletions(-) > create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index 4cd20e722d70..95af917007f7 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -74,6 +74,7 @@ > #include "amdgpu_gart.h" > #include "amdgpu_debugfs.h" > #include "amdgpu_job.h" > +#include "amdgpu_bo_list.h" > > /* > * Modules parameters. > @@ -689,45 +690,6 @@ struct amdgpu_fpriv { > struct amdgpu_ctx_mgr ctx_mgr; > }; > > -/* > - * residency list > - */ > -struct amdgpu_bo_list_entry { > - struct amdgpu_bo *robj; > - struct ttm_validate_buffer tv; > - struct amdgpu_bo_va *bo_va; > - uint32_t priority; > - struct page **user_pages; > - int user_invalidated; > -}; > - > -struct amdgpu_bo_list { > - struct mutex lock; > - struct rcu_head rhead; > - struct kref refcount; > - struct amdgpu_bo *gds_obj; > - struct amdgpu_bo *gws_obj; > - struct amdgpu_bo *oa_obj; > - unsigned first_userptr; > - unsigned num_entries; > - struct amdgpu_bo_list_entry *array; > -}; > - > -int amdgpu_bo_list_get(struct amdgpu_fpriv *fpriv, int id, > - struct amdgpu_bo_list **result); > -void amdgpu_bo_list_get_list(struct amdgpu_bo_list *list, > - struct list_head *validated); > -void amdgpu_bo_list_put(struct amdgpu_bo_list *list); > -void amdgpu_bo_list_free(struct amdgpu_bo_list *list); > -int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in, > - struct drm_amdgpu_bo_list_entry **info_param); > - > -int amdgpu_bo_list_create(struct amdgpu_device *adev, > - struct drm_file *filp, > - struct drm_amdgpu_bo_list_entry *info, > - unsigned num_entries, > - struct amdgpu_bo_list **list); > - > /* > * GFX stuff > */ > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h > new file mode 100644 > index 000000000000..833f846bfdad > --- /dev/null > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h > @@ -0,0 +1,70 @@ > +/* > + * Copyright 2018 Advanced Micro Devices, Inc. > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + * > + */ > +#ifndef __AMDGPU_BO_LIST_H__ > +#define __AMDGPU_BO_LIST_H__ > + > +#include <drm/ttm/ttm_execbuf_util.h> > +#include <drm/amdgpu_drm.h> > + > +struct amdgpu_device; > +struct amdgpu_bo; > +struct amdgpu_bo_va; > +struct amdgpu_fpriv; > + > +struct amdgpu_bo_list_entry { > + struct amdgpu_bo *robj; > + struct ttm_validate_buffer tv; > + struct amdgpu_bo_va *bo_va; > + uint32_t priority; > + struct page **user_pages; > + int user_invalidated; > +}; > + > +struct amdgpu_bo_list { > + struct mutex lock; > + struct rcu_head rhead; > + struct kref refcount; > + struct amdgpu_bo *gds_obj; > + struct amdgpu_bo *gws_obj; > + struct amdgpu_bo *oa_obj; > + unsigned first_userptr; > + unsigned num_entries; > + struct amdgpu_bo_list_entry *array; > +}; > + > +int amdgpu_bo_list_get(struct amdgpu_fpriv *fpriv, int id, > + struct amdgpu_bo_list **result); > +void amdgpu_bo_list_get_list(struct amdgpu_bo_list *list, > + struct list_head *validated); > +void amdgpu_bo_list_put(struct amdgpu_bo_list *list); > +void amdgpu_bo_list_free(struct amdgpu_bo_list *list); > +int amdgpu_bo_create_list_entry_array(struct drm_amdgpu_bo_list_in *in, > + struct drm_amdgpu_bo_list_entry **info_param); > + > +int amdgpu_bo_list_create(struct amdgpu_device *adev, > + struct drm_file *filp, > + struct drm_amdgpu_bo_list_entry *info, > + unsigned num_entries, > + struct amdgpu_bo_list **list); > + > +#endif > -- > 2.14.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx