Keith Packard wrote:
> I'm writing up some documentation for internal DRM interfaces and came
> across a couple of interface inconsistencies that seem like they should
> get fixed before they start getting used a lot more. If these look like
> good changes, I'll continue to search out other similar issues. I'll
> just include the header changes in this message.
> 
>     Make ttm create/destroy APIs consistent. Pass page_flags in create.
>     
>     Creating a ttm was done with drm_ttm_init while destruction was done with
>     drm_destroy_ttm. Renaming these to drm_ttm_create and drm_ttm_destroy 
> makes
>     their use clearer. Passing page_flags to the create function will allow 
> that
>     to know whether user or kernel pages are needed, with the goal of allowing
>     kernel ttms to be saved for later reuse.
> --------------------------- linux-core/drm_objects.h 
> ---------------------------
> index 1dc61fd..66611f6 100644
> @@ -297,7 +297,7 @@ struct drm_ttm {
>  
>  };
>  
> -extern struct drm_ttm *drm_ttm_init(struct drm_device *dev, unsigned long 
> size);
> +extern struct drm_ttm *drm_ttm_create(struct drm_device *dev, unsigned long 
> size, uint32_t page_flags);
>  extern int drm_bind_ttm(struct drm_ttm *ttm, struct drm_bo_mem_reg *bo_mem);
>  extern void drm_ttm_unbind(struct drm_ttm *ttm);
>  extern void drm_ttm_evict(struct drm_ttm *ttm);
> @@ -318,7 +318,7 @@ extern int drm_ttm_set_user(struct drm_ttm *ttm,
>   * Otherwise it is called when the last vma exits.
>   */
>  
> -extern int drm_destroy_ttm(struct drm_ttm *ttm);
> +extern int drm_ttm_destroy(struct drm_ttm *ttm);
>  
>  #define DRM_FLAG_MASKED(_old, _new, _mask) {\
>  (_old) ^= (((_old) ^ (_new)) & (_mask)); \
> 
> 
> 
> 
>     Document drm_bo_do_validate. Remove spurious 'do_wait' parameter.
>     
>     Add comments about the parameters to drm_bo_do_validate, along
>     with comments for the DRM_BO_HINT options. Remove the 'do_wait'
>     parameter as it is duplicated by DRM_BO_HINT_DONT_BLOCK.
> --------------------------- linux-core/drm_objects.h 
> ---------------------------
> index 66611f6..1c6ca79 100644
> @@ -546,7 +546,6 @@ extern struct drm_buffer_object 
> *drm_lookup_buffer_object(struct drm_file *file_
>  extern int drm_bo_do_validate(struct drm_buffer_object *bo,
>                             uint64_t flags, uint64_t mask, uint32_t hint,
>                             uint32_t fence_class,
> -                           int no_wait,
>                             struct drm_bo_info_rep *rep);
>  
>  /*
> 
> 
>     Document drm_bo_handle_validate. Match drm_bo_do_validate parameter order.
>     
>     Document parameters and usage for drm_bo_handle_validate. Change parameter
>     order to match drm_bo_do_validate (fence_class has been moved to after
>     flags, hint and mask values). Existing users of this function have been
>     changed, but out-of-tree users must be modified separately.
> --------------------------- linux-core/drm_objects.h 
> ---------------------------
> index 1c6ca79..0926b47 100644
> @@ -535,9 +535,8 @@ extern int drm_bo_clean_mm(struct drm_device *dev, 
> unsigned mem_type);
>  extern int drm_bo_init_mm(struct drm_device *dev, unsigned type,
>                         unsigned long p_offset, unsigned long p_size);
>  extern int drm_bo_handle_validate(struct drm_file *file_priv, uint32_t 
> handle,
> -                               uint32_t fence_class, uint64_t flags,
> -                               uint64_t mask, uint32_t hint,
> -                               int use_old_fence_class,
> +                               uint64_t flags, uint64_t mask, uint32_t hint,
> +                               uint32_t fence_class, int use_old_fence_class,
>                                 struct drm_bo_info_rep *rep,
>                                 struct drm_buffer_object **bo_rep);

These all look sensible.

It's a pity that the change above looks like it will allow users of the 
old argument order to continue to compile without error despite the 
change.  It's a bit hard to know how to achieve that though.

When you say 'document xyz', and the documentation doesn't appear in the 
patch to the header, where *will* the documentation live??

Keith

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to