mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-23 23:37:42 -04:00
drm/amd/display: Add kunit tests for amdgpu_dm_plane
Add kunit tests for some functions in amdgpu_dm_plane. Assisted-by: Copilot:Claude-Opus-4.8 Reviewed-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Bhawanpreet Lakha <bhawanpreet.lakha@amd.com> Signed-off-by: George Zhang <george.zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
88ae862060
commit
2b147895be
@@ -37,6 +37,7 @@
|
||||
#include "amdgpu_display.h"
|
||||
#include "amdgpu_dm_trace.h"
|
||||
#include "amdgpu_dm_plane.h"
|
||||
#include "amdgpu_dm_kunit_helpers.h"
|
||||
#include "amdgpu_dm_colorop.h"
|
||||
#include "gc/gc_11_0_0_offset.h"
|
||||
#include "gc/gc_11_0_0_sh_mask.h"
|
||||
@@ -97,6 +98,7 @@ const struct drm_format_info *amdgpu_dm_plane_get_format_info(u32 pixel_format,
|
||||
{
|
||||
return amdgpu_lookup_format_info(pixel_format, modifier);
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_get_format_info);
|
||||
|
||||
void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state *plane_state,
|
||||
bool *per_pixel_alpha, bool *pre_multiplied_alpha,
|
||||
@@ -139,8 +141,10 @@ void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state
|
||||
*global_alpha_value = plane_state->alpha >> 8;
|
||||
}
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_blending_from_plane_state);
|
||||
|
||||
static void amdgpu_dm_plane_add_modifier(uint64_t **mods, uint64_t *size, uint64_t *cap, uint64_t mod)
|
||||
STATIC_IFN_KUNIT void amdgpu_dm_plane_add_modifier(uint64_t **mods, uint64_t *size,
|
||||
uint64_t *cap, uint64_t mod)
|
||||
{
|
||||
if (!*mods)
|
||||
return;
|
||||
@@ -164,27 +168,29 @@ static void amdgpu_dm_plane_add_modifier(uint64_t **mods, uint64_t *size, uint64
|
||||
(*mods)[*size] = mod;
|
||||
*size += 1;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_add_modifier);
|
||||
|
||||
static bool amdgpu_dm_plane_modifier_has_dcc(uint64_t modifier)
|
||||
STATIC_IFN_KUNIT bool amdgpu_dm_plane_modifier_has_dcc(uint64_t modifier)
|
||||
{
|
||||
return IS_AMD_FMT_MOD(modifier) && AMD_FMT_MOD_GET(DCC, modifier);
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_modifier_has_dcc);
|
||||
|
||||
static unsigned int amdgpu_dm_plane_modifier_gfx9_swizzle_mode(uint64_t modifier)
|
||||
STATIC_IFN_KUNIT unsigned int amdgpu_dm_plane_modifier_gfx9_swizzle_mode(uint64_t modifier)
|
||||
{
|
||||
if (modifier == DRM_FORMAT_MOD_LINEAR)
|
||||
return 0;
|
||||
|
||||
return AMD_FMT_MOD_GET(TILE, modifier);
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_modifier_gfx9_swizzle_mode);
|
||||
|
||||
static void amdgpu_dm_plane_fill_gfx8_tiling_info_from_flags(struct dc_tiling_info *tiling_info,
|
||||
uint64_t tiling_flags)
|
||||
STATIC_IFN_KUNIT void amdgpu_dm_plane_fill_gfx8_tiling_info_from_flags(struct dc_tiling_info *tiling_info,
|
||||
uint64_t tiling_flags)
|
||||
{
|
||||
/* Fill GFX8 params */
|
||||
if (AMDGPU_TILING_GET(tiling_flags, ARRAY_MODE) == DC_ARRAY_2D_TILED_THIN1) {
|
||||
unsigned int bankw, bankh, mtaspect, tile_split, num_banks;
|
||||
|
||||
bankw = AMDGPU_TILING_GET(tiling_flags, BANK_WIDTH);
|
||||
bankh = AMDGPU_TILING_GET(tiling_flags, BANK_HEIGHT);
|
||||
mtaspect = AMDGPU_TILING_GET(tiling_flags, MACRO_TILE_ASPECT);
|
||||
@@ -210,9 +216,10 @@ static void amdgpu_dm_plane_fill_gfx8_tiling_info_from_flags(struct dc_tiling_in
|
||||
tiling_info->gfx8.pipe_config =
|
||||
AMDGPU_TILING_GET(tiling_flags, PIPE_CONFIG);
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx8_tiling_info_from_flags);
|
||||
|
||||
static void amdgpu_dm_plane_fill_gfx9_tiling_info_from_device(const struct amdgpu_device *adev,
|
||||
struct dc_tiling_info *tiling_info)
|
||||
STATIC_IFN_KUNIT void amdgpu_dm_plane_fill_gfx9_tiling_info_from_device(const struct amdgpu_device *adev,
|
||||
struct dc_tiling_info *tiling_info)
|
||||
{
|
||||
/* Fill GFX9 params */
|
||||
tiling_info->gfx9.num_pipes =
|
||||
@@ -231,10 +238,11 @@ static void amdgpu_dm_plane_fill_gfx9_tiling_info_from_device(const struct amdgp
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) >= IP_VERSION(10, 3, 0))
|
||||
tiling_info->gfx9.num_pkrs = adev->gfx.config.gb_addr_config_fields.num_pkrs;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx9_tiling_info_from_device);
|
||||
|
||||
static void amdgpu_dm_plane_fill_gfx9_tiling_info_from_modifier(const struct amdgpu_device *adev,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
uint64_t modifier)
|
||||
STATIC_IFN_KUNIT void amdgpu_dm_plane_fill_gfx9_tiling_info_from_modifier(const struct amdgpu_device *adev,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
uint64_t modifier)
|
||||
{
|
||||
unsigned int mod_bank_xor_bits = AMD_FMT_MOD_GET(BANK_XOR_BITS, modifier);
|
||||
unsigned int mod_pipe_xor_bits = AMD_FMT_MOD_GET(PIPE_XOR_BITS, modifier);
|
||||
@@ -259,14 +267,15 @@ static void amdgpu_dm_plane_fill_gfx9_tiling_info_from_modifier(const struct amd
|
||||
/* for DCC we know it isn't rb aligned, so rb_per_se doesn't matter. */
|
||||
}
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx9_tiling_info_from_modifier);
|
||||
|
||||
static int amdgpu_dm_plane_validate_dcc(struct amdgpu_device *adev,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct dc_tiling_info *tiling_info,
|
||||
const struct dc_plane_dcc_param *dcc,
|
||||
const struct dc_plane_address *address,
|
||||
const struct plane_size *plane_size)
|
||||
STATIC_IFN_KUNIT int amdgpu_dm_plane_validate_dcc(struct amdgpu_device *adev,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct dc_tiling_info *tiling_info,
|
||||
const struct dc_plane_dcc_param *dcc,
|
||||
const struct dc_plane_address *address,
|
||||
const struct plane_size *plane_size)
|
||||
{
|
||||
struct dc *dc = adev->dm.dc;
|
||||
struct dc_dcc_surface_param input;
|
||||
@@ -307,15 +316,16 @@ static int amdgpu_dm_plane_validate_dcc(struct amdgpu_device *adev,
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_validate_dcc);
|
||||
|
||||
static int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdgpu_device *adev,
|
||||
const struct amdgpu_framebuffer *afb,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct plane_size *plane_size,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
struct dc_plane_dcc_param *dcc,
|
||||
struct dc_plane_address *address)
|
||||
STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdgpu_device *adev,
|
||||
const struct amdgpu_framebuffer *afb,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct plane_size *plane_size,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
struct dc_plane_dcc_param *dcc,
|
||||
struct dc_plane_address *address)
|
||||
{
|
||||
const uint64_t modifier = afb->base.modifier;
|
||||
int ret = 0;
|
||||
@@ -358,15 +368,16 @@ static int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdg
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers);
|
||||
|
||||
static int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct amdgpu_device *adev,
|
||||
const struct amdgpu_framebuffer *afb,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct plane_size *plane_size,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
struct dc_plane_dcc_param *dcc,
|
||||
struct dc_plane_address *address)
|
||||
STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct amdgpu_device *adev,
|
||||
const struct amdgpu_framebuffer *afb,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct plane_size *plane_size,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
struct dc_plane_dcc_param *dcc,
|
||||
struct dc_plane_address *address)
|
||||
{
|
||||
const uint64_t modifier = afb->base.modifier;
|
||||
int ret = 0;
|
||||
@@ -398,6 +409,7 @@ static int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct amd
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers);
|
||||
|
||||
static void amdgpu_dm_plane_add_gfx10_1_modifiers(const struct amdgpu_device *adev,
|
||||
uint64_t **mods,
|
||||
@@ -724,7 +736,7 @@ static void amdgpu_dm_plane_add_gfx12_modifiers(struct amdgpu_device *adev,
|
||||
|
||||
}
|
||||
|
||||
static int amdgpu_dm_plane_get_plane_modifiers(struct amdgpu_device *adev, unsigned int plane_type, uint64_t **mods)
|
||||
STATIC_IFN_KUNIT int amdgpu_dm_plane_get_plane_modifiers(struct amdgpu_device *adev, unsigned int plane_type, uint64_t **mods)
|
||||
{
|
||||
uint64_t size = 0, capacity = 128;
|
||||
*mods = NULL;
|
||||
@@ -777,10 +789,11 @@ static int amdgpu_dm_plane_get_plane_modifiers(struct amdgpu_device *adev, unsig
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_get_plane_modifiers);
|
||||
|
||||
static int amdgpu_dm_plane_get_plane_formats(const struct drm_plane *plane,
|
||||
const struct dc_plane_cap *plane_cap,
|
||||
uint32_t *formats, int max_formats)
|
||||
STATIC_IFN_KUNIT int amdgpu_dm_plane_get_plane_formats(const struct drm_plane *plane,
|
||||
const struct dc_plane_cap *plane_cap,
|
||||
uint32_t *formats, int max_formats)
|
||||
{
|
||||
int i, num_formats = 0;
|
||||
|
||||
@@ -836,6 +849,7 @@ static int amdgpu_dm_plane_get_plane_formats(const struct drm_plane *plane,
|
||||
|
||||
return num_formats;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_get_plane_formats);
|
||||
|
||||
int amdgpu_dm_plane_fill_plane_buffer_attributes(struct amdgpu_device *adev,
|
||||
const struct amdgpu_framebuffer *afb,
|
||||
@@ -922,6 +936,7 @@ int amdgpu_dm_plane_fill_plane_buffer_attributes(struct amdgpu_device *adev,
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_plane_buffer_attributes);
|
||||
|
||||
static int amdgpu_dm_plane_helper_prepare_fb(struct drm_plane *plane,
|
||||
struct drm_plane_state *new_state)
|
||||
@@ -1042,9 +1057,9 @@ static void amdgpu_dm_plane_helper_cleanup_fb(struct drm_plane *plane,
|
||||
amdgpu_bo_unref(&rbo);
|
||||
}
|
||||
|
||||
static void amdgpu_dm_plane_get_min_max_dc_plane_scaling(struct drm_device *dev,
|
||||
struct drm_framebuffer *fb,
|
||||
int *min_downscale, int *max_upscale)
|
||||
STATIC_IFN_KUNIT void amdgpu_dm_plane_get_min_max_dc_plane_scaling(struct drm_device *dev,
|
||||
struct drm_framebuffer *fb,
|
||||
int *min_downscale, int *max_upscale)
|
||||
{
|
||||
struct amdgpu_device *adev = drm_to_adev(dev);
|
||||
struct dc *dc = adev->dm.dc;
|
||||
@@ -1088,6 +1103,7 @@ static void amdgpu_dm_plane_get_min_max_dc_plane_scaling(struct drm_device *dev,
|
||||
if (*min_downscale == 1)
|
||||
*min_downscale = 1000;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_get_min_max_dc_plane_scaling);
|
||||
|
||||
int amdgpu_dm_plane_helper_check_state(struct drm_plane_state *state,
|
||||
struct drm_crtc_state *new_crtc_state)
|
||||
@@ -1142,6 +1158,7 @@ int amdgpu_dm_plane_helper_check_state(struct drm_plane_state *state,
|
||||
return drm_atomic_helper_check_plane_state(
|
||||
state, new_crtc_state, min_scale, max_scale, true, true);
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_helper_check_state);
|
||||
|
||||
int amdgpu_dm_plane_fill_dc_scaling_info(struct amdgpu_device *adev,
|
||||
const struct drm_plane_state *state,
|
||||
@@ -1225,6 +1242,7 @@ int amdgpu_dm_plane_fill_dc_scaling_info(struct amdgpu_device *adev,
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_dc_scaling_info);
|
||||
|
||||
static int amdgpu_dm_plane_atomic_check(struct drm_plane *plane,
|
||||
struct drm_atomic_commit *state)
|
||||
@@ -1343,6 +1361,7 @@ int amdgpu_dm_plane_get_cursor_position(struct drm_plane *plane, struct drm_crtc
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_get_cursor_position);
|
||||
|
||||
void amdgpu_dm_plane_handle_cursor_update(struct drm_plane *plane,
|
||||
struct drm_plane_state *old_plane_state)
|
||||
@@ -1546,9 +1565,9 @@ static struct drm_plane_state *amdgpu_dm_plane_drm_plane_duplicate_state(struct
|
||||
return &dm_plane_state->base;
|
||||
}
|
||||
|
||||
static bool amdgpu_dm_plane_format_mod_supported(struct drm_plane *plane,
|
||||
uint32_t format,
|
||||
uint64_t modifier)
|
||||
STATIC_IFN_KUNIT bool amdgpu_dm_plane_format_mod_supported(struct drm_plane *plane,
|
||||
uint32_t format,
|
||||
uint64_t modifier)
|
||||
{
|
||||
struct amdgpu_device *adev = drm_to_adev(plane->dev);
|
||||
const struct drm_format_info *info = drm_format_info(format);
|
||||
@@ -1607,6 +1626,7 @@ static bool amdgpu_dm_plane_format_mod_supported(struct drm_plane *plane,
|
||||
|
||||
return true;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_format_mod_supported);
|
||||
|
||||
static void amdgpu_dm_plane_drm_plane_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
@@ -1982,4 +2002,5 @@ bool amdgpu_dm_plane_is_video_format(uint32_t format)
|
||||
|
||||
return false;
|
||||
}
|
||||
EXPORT_IF_KUNIT(amdgpu_dm_plane_is_video_format);
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
#define __AMDGPU_DM_PLANE_H__
|
||||
|
||||
#include "dc.h"
|
||||
#include <drm/drm_plane.h>
|
||||
#include "amdgpu.h"
|
||||
|
||||
int amdgpu_dm_plane_get_cursor_position(struct drm_plane *plane, struct drm_crtc *crtc,
|
||||
struct dc_cursor_position *position);
|
||||
@@ -65,4 +67,53 @@ void amdgpu_dm_plane_fill_blending_from_plane_state(const struct drm_plane_state
|
||||
bool *global_alpha, int *global_alpha_value);
|
||||
|
||||
bool amdgpu_dm_plane_is_video_format(uint32_t format);
|
||||
|
||||
#if IS_ENABLED(CONFIG_DRM_AMD_DC_KUNIT_TEST)
|
||||
void amdgpu_dm_plane_add_modifier(uint64_t **mods, uint64_t *size,
|
||||
uint64_t *cap, uint64_t mod);
|
||||
void amdgpu_dm_plane_fill_gfx8_tiling_info_from_flags(struct dc_tiling_info *tiling_info,
|
||||
uint64_t tiling_flags);
|
||||
void amdgpu_dm_plane_fill_gfx9_tiling_info_from_device(const struct amdgpu_device *adev,
|
||||
struct dc_tiling_info *tiling_info);
|
||||
void amdgpu_dm_plane_fill_gfx9_tiling_info_from_modifier(const struct amdgpu_device *adev,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
uint64_t modifier);
|
||||
int amdgpu_dm_plane_validate_dcc(struct amdgpu_device *adev,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct dc_tiling_info *tiling_info,
|
||||
const struct dc_plane_dcc_param *dcc,
|
||||
const struct dc_plane_address *address,
|
||||
const struct plane_size *plane_size);
|
||||
bool amdgpu_dm_plane_modifier_has_dcc(uint64_t modifier);
|
||||
unsigned int amdgpu_dm_plane_modifier_gfx9_swizzle_mode(uint64_t modifier);
|
||||
int amdgpu_dm_plane_get_plane_modifiers(struct amdgpu_device *adev,
|
||||
unsigned int plane_type, uint64_t **mods);
|
||||
int amdgpu_dm_plane_get_plane_formats(const struct drm_plane *plane,
|
||||
const struct dc_plane_cap *plane_cap,
|
||||
uint32_t *formats, int max_formats);
|
||||
int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdgpu_device *adev,
|
||||
const struct amdgpu_framebuffer *afb,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct plane_size *plane_size,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
struct dc_plane_dcc_param *dcc,
|
||||
struct dc_plane_address *address);
|
||||
int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct amdgpu_device *adev,
|
||||
const struct amdgpu_framebuffer *afb,
|
||||
const enum surface_pixel_format format,
|
||||
const enum dc_rotation_angle rotation,
|
||||
const struct plane_size *plane_size,
|
||||
struct dc_tiling_info *tiling_info,
|
||||
struct dc_plane_dcc_param *dcc,
|
||||
struct dc_plane_address *address);
|
||||
bool amdgpu_dm_plane_format_mod_supported(struct drm_plane *plane,
|
||||
uint32_t format,
|
||||
uint64_t modifier);
|
||||
void amdgpu_dm_plane_get_min_max_dc_plane_scaling(struct drm_device *dev,
|
||||
struct drm_framebuffer *fb,
|
||||
int *min_downscale,
|
||||
int *max_upscale);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -24,6 +24,7 @@ obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_replay_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_ism_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_irq_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_wb_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_plane_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_mst_types_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_pp_smu_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_test.o
|
||||
@@ -31,3 +32,4 @@ obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_crtc_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_services_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_helpers_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_quirks_test.o
|
||||
obj-$(CONFIG_DRM_AMD_DC_KUNIT_TEST) += amdgpu_dm_plane_test.o
|
||||
|
||||
1204
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
Normal file
1204
drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user