minigbm: refactor driver helpers

1. frontends access the driver via drv.h only
2. the renamed drv_helpers and drv_array_helpers are for driver only
3. remove extern "C" from drv_helpers.h given not exposed to gralloc
4. remove all redundant includes for those helpers

BUG=b:199524294
TEST=CQ and gralloc builds on aosp

Change-Id: I3f4d33076a6a8161804f1b7c26950ff5496507e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3195651
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olv@google.com>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
This commit is contained in:
Yiwei Zhang 2021-09-30 05:13:10 +00:00 committed by Commit Bot
parent 1905be4ad5
commit b7a64441ef
22 changed files with 39 additions and 42 deletions

View file

@ -11,10 +11,10 @@ MINIGBM_SRC := \
amdgpu.c \
dri.c \
drv.c \
drv_array_helpers.c \
drv_helpers.c \
dumb_driver.c \
exynos.c \
helpers_array.c \
helpers.c \
i915.c \
mediatek.c \
meson.c \

View file

@ -19,8 +19,8 @@
#include <xf86drmMode.h>
#include "dri.h"
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
// clang-format off

View file

@ -7,7 +7,6 @@
#ifndef CROS_GRALLOC_BUFFER_H
#define CROS_GRALLOC_BUFFER_H
#include "../drv.h"
#include "cros_gralloc_helpers.h"
class cros_gralloc_buffer

View file

@ -13,8 +13,6 @@
#include <syscall.h>
#include <xf86drm.h>
#include "../drv_priv.h"
#include "../helpers.h"
#include "../util.h"
// Constants taken from pipe_loader_drm.c in Mesa

View file

@ -4,7 +4,6 @@
* found in the LICENSE file.
*/
#include "../../helpers.h"
#include "../../util.h"
#include "../cros_gralloc_driver.h"

View file

@ -16,8 +16,6 @@
#include "cros_gralloc/cros_gralloc_helpers.h"
#include "cros_gralloc/gralloc4/CrosGralloc4Utils.h"
#include "helpers.h"
using aidl::android::hardware::graphics::common::BlendMode;
using aidl::android::hardware::graphics::common::Dataspace;
using aidl::android::hardware::graphics::common::PlaneLayout;

2
dri.c
View file

@ -18,8 +18,8 @@
#include <xf86drm.h>
#include "dri.h"
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
static const struct {

11
drv.c
View file

@ -9,7 +9,6 @@
#include <pthread.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/types.h>
@ -21,8 +20,8 @@
#include <libgen.h>
#endif
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
#ifdef DRV_AMDGPU
@ -703,6 +702,14 @@ size_t drv_bo_get_total_size(struct bo *bo)
return bo->meta.total_size;
}
/*
* Map internal fourcc codes back to standard fourcc codes.
*/
uint32_t drv_get_standard_fourcc(uint32_t fourcc_internal)
{
return (fourcc_internal == DRM_FORMAT_YVU420_ANDROID) ? DRM_FORMAT_YVU420 : fourcc_internal;
}
uint32_t drv_resolve_format(struct driver *drv, uint32_t format, uint64_t use_flags)
{
if (drv->backend->resolve_format)

3
drv.h
View file

@ -14,6 +14,7 @@ extern "C" {
#include <drm_fourcc.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#define DRV_MAX_PLANES 4
@ -178,6 +179,8 @@ uint64_t drv_bo_get_use_flags(struct bo *bo);
size_t drv_bo_get_total_size(struct bo *bo);
uint32_t drv_get_standard_fourcc(uint32_t fourcc_internal);
uint32_t drv_bytes_per_pixel_from_format(uint32_t format, size_t plane);
uint32_t drv_stride_from_format(uint32_t format, uint32_t width, size_t plane);

View file

@ -3,6 +3,7 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "drv_array_helpers.h"
#include <assert.h>
#include <stdint.h>

View file

@ -4,6 +4,11 @@
* found in the LICENSE file.
*/
#ifndef DRV_ARRAY_HELPERS_H
#define DRV_ARRAY_HELPERS_H
#include <stdint.h>
struct drv_array;
struct drv_array *drv_array_init(uint32_t item_size);
@ -20,3 +25,5 @@ uint32_t drv_array_size(struct drv_array *array);
/* The array and all associated data will be freed. */
void drv_array_destroy(struct drv_array *array);
#endif

View file

@ -4,6 +4,8 @@
* found in the LICENSE file.
*/
#include "drv_helpers.h"
#include <assert.h>
#include <errno.h>
#include <stdio.h>
@ -15,7 +17,6 @@
#include <xf86drm.h>
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
struct planar_layout {
@ -572,14 +573,6 @@ bool drv_has_modifier(const uint64_t *list, uint32_t count, uint64_t modifier)
return false;
}
/*
* Map internal fourcc codes back to standard fourcc codes.
*/
uint32_t drv_get_standard_fourcc(uint32_t fourcc_internal)
{
return (fourcc_internal == DRM_FORMAT_YVU420_ANDROID) ? DRM_FORMAT_YVU420 : fourcc_internal;
}
uint32_t drv_resolve_format_helper(uint32_t format, uint64_t use_flags)
{
switch (format) {

View file

@ -4,22 +4,20 @@
* found in the LICENSE file.
*/
#ifndef HELPERS_H
#define HELPERS_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef DRV_HELPERS_H
#define DRV_HELPERS_H
#include <stdbool.h>
#include "drv.h"
#include "helpers_array.h"
#include "drv_array_helpers.h"
#ifndef PAGE_SIZE
#define PAGE_SIZE 0x1000
#endif
struct format_metadata;
uint32_t drv_height_from_format(uint32_t format, uint32_t height, size_t plane);
uint32_t drv_vertical_subsampling_from_format(uint32_t format, size_t plane);
uint32_t drv_size_from_format(uint32_t format, uint32_t stride, uint32_t height, size_t plane);
@ -46,12 +44,7 @@ int drv_modify_linear_combinations(struct driver *drv);
uint64_t drv_pick_modifier(const uint64_t *modifiers, uint32_t count,
const uint64_t *modifier_order, uint32_t order_count);
bool drv_has_modifier(const uint64_t *list, uint32_t count, uint64_t modifier);
uint32_t drv_get_standard_fourcc(uint32_t fourcc_internal);
uint32_t drv_resolve_format_helper(uint32_t format, uint64_t use_flags);
uint64_t drv_resolve_use_flags_helper(struct driver *drv, uint32_t format, uint64_t use_flags);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -4,8 +4,8 @@
* found in the LICENSE file.
*/
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
#define INIT_DUMB_DRIVER(driver) \

2
i915.c
View file

@ -15,9 +15,9 @@
#include <unistd.h>
#include <xf86drm.h>
#include "drv_helpers.h"
#include "drv_priv.h"
#include "external/i915_drm.h"
#include "helpers.h"
#include "util.h"
#define I915_CACHELINE_SIZE 64

View file

@ -19,8 +19,8 @@
#include <mediatek_drm.h>
// clang-format on
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
#define TILE_TYPE_LINEAR 0

2
msm.c
View file

@ -18,8 +18,8 @@
#include <sys/mman.h>
#include <xf86drm.h>
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
/* Alignment values are based on SDM845 Gfx IP */

View file

@ -14,8 +14,8 @@
#include <sys/mman.h>
#include <xf86drm.h>
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
struct rockchip_private_map_data {

2
vc4.c
View file

@ -13,8 +13,8 @@
#include <vc4_drm.h>
#include <xf86drm.h>
#include "drv_helpers.h"
#include "drv_priv.h"
#include "helpers.h"
#include "util.h"
static const uint32_t render_target_formats[] = { DRM_FORMAT_ARGB8888, DRM_FORMAT_RGB565,

View file

@ -13,7 +13,6 @@
#include "drv_priv.h"
#include "external/virtgpu_drm.h"
#include "helpers.h"
#include "util.h"
#include "virtgpu.h"

View file

@ -9,10 +9,10 @@
#include <sys/mman.h>
#include <xf86drm.h>
#include "drv_helpers.h"
#include "drv_priv.h"
#include "external/virtgpu_cross_domain_protocol.h"
#include "external/virtgpu_drm.h"
#include "helpers.h"
#include "util.h"
#include "virtgpu.h"

View file

@ -12,11 +12,11 @@
#include <sys/mman.h>
#include <xf86drm.h>
#include "drv_helpers.h"
#include "drv_priv.h"
#include "external/virgl_hw.h"
#include "external/virgl_protocol.h"
#include "external/virtgpu_drm.h"
#include "helpers.h"
#include "util.h"
#include "virtgpu.h"