diff mbox

[RFC] libdrm: gralloc_handle.h: Fix build issue with Android

Message ID 1520368138-7500-1-git-send-email-john.stultz@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

John Stultz March 6, 2018, 8:28 p.m. UTC
In trying to integrate the new gralloc_handle.h with the
drm_hwcomposer, I started seeing the following compilation
errors:

In file included from external/drm_hwcomposer/platformdrmgeneric.cpp:28:
external/libdrm/android/gralloc_handle.h:108:9: error: cannot initialize return object of type 'native_handle_t *' (aka 'native_handle *') with an lvalue of type 'struct gralloc_handle_t *'
        return handle;
               ^~~~~~
1 error generated.

This seems to be due to the gralloc_handle_create() definition
claiming to return a native_handle_t * type, rather then a
gralloc_handle_t *, which is what the code actually returns.

This function isn't actually used in the current drm_hwcomposer,
so I'm not totally sure that this fix is correct (rather then
returning the gralloc_handle_t's embadedded native_handle_t ptr).

But it seems something like this is needed.

Cc: Robert Foss <robert.foss@collabora.com>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
 android/gralloc_handle.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Robert Foss March 7, 2018, 1:37 p.m. UTC | #1
Hey John,

Yeah, the return type should be changed.

robher: Do you have any preferences?


Rob.

On 03/06/2018 09:28 PM, John Stultz wrote:
> In trying to integrate the new gralloc_handle.h with the
> drm_hwcomposer, I started seeing the following compilation
> errors:
> 
> In file included from external/drm_hwcomposer/platformdrmgeneric.cpp:28:
> external/libdrm/android/gralloc_handle.h:108:9: error: cannot initialize return object of type 'native_handle_t *' (aka 'native_handle *') with an lvalue of type 'struct gralloc_handle_t *'
>          return handle;
>                 ^~~~~~
> 1 error generated.
> 
> This seems to be due to the gralloc_handle_create() definition
> claiming to return a native_handle_t * type, rather then a
> gralloc_handle_t *, which is what the code actually returns.
> 
> This function isn't actually used in the current drm_hwcomposer,
> so I'm not totally sure that this fix is correct (rather then
> returning the gralloc_handle_t's embadedded native_handle_t ptr).
> 
> But it seems something like this is needed.
> 
> Cc: Robert Foss <robert.foss@collabora.com>
> Cc: Rob Herring <robh@kernel.org>
> Signed-off-by: John Stultz <john.stultz@linaro.org>
> ---
>   android/gralloc_handle.h | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/android/gralloc_handle.h b/android/gralloc_handle.h
> index 9cb5a5d..6e925c9 100644
> --- a/android/gralloc_handle.h
> +++ b/android/gralloc_handle.h
> @@ -84,7 +84,7 @@ static inline struct gralloc_handle_t *gralloc_handle(buffer_handle_t handle)
>   /**
>    * Create a buffer handle.
>    */
> -static inline native_handle_t *gralloc_handle_create(int32_t width,
> +static inline gralloc_handle_t *gralloc_handle_create(int32_t width,
>                                                        int32_t height,
>                                                        int32_t hal_format,
>                                                        int32_t usage)
> @@ -107,5 +107,4 @@ static inline native_handle_t *gralloc_handle_create(int32_t width,
>   
>   	return handle;
>   }
> -
>   #endif
>
diff mbox

Patch

diff --git a/android/gralloc_handle.h b/android/gralloc_handle.h
index 9cb5a5d..6e925c9 100644
--- a/android/gralloc_handle.h
+++ b/android/gralloc_handle.h
@@ -84,7 +84,7 @@  static inline struct gralloc_handle_t *gralloc_handle(buffer_handle_t handle)
 /**
  * Create a buffer handle.
  */
-static inline native_handle_t *gralloc_handle_create(int32_t width,
+static inline gralloc_handle_t *gralloc_handle_create(int32_t width,
                                                      int32_t height,
                                                      int32_t hal_format,
                                                      int32_t usage)
@@ -107,5 +107,4 @@  static inline native_handle_t *gralloc_handle_create(int32_t width,
 
 	return handle;
 }
-
 #endif