Commit Graph

9 Commits (8e535dd2142433b24aebc6eddeaee04663489aa2)

Author SHA1 Message Date
Rob Herring 009634e493 android: fix gralloc_handle_create() problems
There's a number of problems with gralloc_handle_create starting with it
doesn't even compile. More importantly, it doesn't really create (i.e.
allocate) a handle. It allocates a native_handle_t, copies it to a
struct gralloc_handle_t on the stack and returns the struct (not a ptr).
So the caller still has to allocate a struct gralloc_handle_t to hold
the returned struct.

Rework gralloc_handle_create() to allocate a new handle and return the
pointer to the allocated handle. Callers should free the handle with
native_handle_close() and native_handle_delete(). In the interest of
making gralloc_handle_t opaque, return a native_handle_t ptr instead.

Reviewed-by: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2018-02-20 14:16:16 -06:00
Rob Herring 86c62e49c8 android: add helper to convert buffer_handle_t to gralloc_handle_t ptr
Clients frequently need to convert a buffer_handle_t (aka
native_handle_t *) to a gralloc_handle_t ptr. This is a simple cast, but
add an inline function to do the conversion.

Reviewed-by: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2018-02-20 14:16:05 -06:00
Rob Herring 652bcea5a6 android: fix mis-named alloc_handle_t
Fix a typo where alloc_handle_t should be gralloc_handle_t. One still
remains in gralloc_handle_create, but a subsequent commit will fix that
along with other problems in gralloc_handle_create.

Reviewed-by: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2018-02-20 14:15:58 -06:00
Rob Herring 5db7bf41b2 android: revert making handle magic and version members const
Const members are problematic for dynamically allocating struct
gralloc_handle_t, so just drop the const modifier.

Reviewed-by: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2018-02-20 14:15:38 -06:00
Robert Foss e75e0ea2e3
android: Change gralloc_handle_t members to be fixed width
In order to lessen future alignment issues, lets switch to
fixed width integers where possible.

This excludes the data_owner since it is a pid_t which
in theory could be larger than 32 bits.

Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
2018-02-14 17:33:58 +01:00
Robert Foss 8e00d5ffbd
android: Remove member name from gralloc_handle_t
The name member of gralloc_handle_t is no longer needed and has been removed.
The version field has also been bumped.

Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
2018-02-14 17:33:57 +01:00
Robert Foss ed0ed55f3e
android: Mark gralloc_handle_t magic variable as const
Mark magic member of gralloc_handle_t as const.

Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
2018-02-14 17:33:57 +01:00
Robert Foss 76cd0af399
android: Add version variable to gralloc_handle_t
The version variable will be used for versioning of this
struct and the corresponding accessor functions.

Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
2018-02-14 17:33:57 +01:00
Robert Foss a4b6fd651f
android: Move gralloc handle struct to libdrm
This struct is used in mesa and drm_hwcomposer.
Versions of if have been implemented in several grallocs:
drm_gralloc, gbm_gralloc, minigbm and intel-minigbm.

Other than the 1:1 move of the struct a new generic name
has been chosen and variables have had comments added to them.

Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Rob Herring <robh@kernel.org>
2018-02-14 17:33:57 +01:00