drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2)
The structure is renamed and moved to amd_shared.h to make
the component independent. This makes it easier to add
new components in the future.
v2: fix include path
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Signed-off-by: yanyang1 <young.yang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 411cfb9..80f0bea 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -44,6 +44,7 @@
#include <drm/drm_gem.h>
+#include "amd_shared.h"
#include "amdgpu_family.h"
#include "amdgpu_mode.h"
#include "amdgpu_ih.h"
@@ -205,86 +206,28 @@
AMDGPU_THERMAL_IRQ_LAST
};
-/*
- * IP block functions
- */
-enum amdgpu_ip_block_type {
- AMDGPU_IP_BLOCK_TYPE_COMMON,
- AMDGPU_IP_BLOCK_TYPE_GMC,
- AMDGPU_IP_BLOCK_TYPE_IH,
- AMDGPU_IP_BLOCK_TYPE_SMC,
- AMDGPU_IP_BLOCK_TYPE_DCE,
- AMDGPU_IP_BLOCK_TYPE_GFX,
- AMDGPU_IP_BLOCK_TYPE_SDMA,
- AMDGPU_IP_BLOCK_TYPE_UVD,
- AMDGPU_IP_BLOCK_TYPE_VCE,
-};
-
-enum amdgpu_clockgating_state {
- AMDGPU_CG_STATE_GATE = 0,
- AMDGPU_CG_STATE_UNGATE,
-};
-
-enum amdgpu_powergating_state {
- AMDGPU_PG_STATE_GATE = 0,
- AMDGPU_PG_STATE_UNGATE,
-};
-
-struct amdgpu_ip_funcs {
- /* sets up early driver state (pre sw_init), does not configure hw - Optional */
- int (*early_init)(struct amdgpu_device *adev);
- /* sets up late driver/hw state (post hw_init) - Optional */
- int (*late_init)(struct amdgpu_device *adev);
- /* sets up driver state, does not configure hw */
- int (*sw_init)(struct amdgpu_device *adev);
- /* tears down driver state, does not configure hw */
- int (*sw_fini)(struct amdgpu_device *adev);
- /* sets up the hw state */
- int (*hw_init)(struct amdgpu_device *adev);
- /* tears down the hw state */
- int (*hw_fini)(struct amdgpu_device *adev);
- /* handles IP specific hw/sw changes for suspend */
- int (*suspend)(struct amdgpu_device *adev);
- /* handles IP specific hw/sw changes for resume */
- int (*resume)(struct amdgpu_device *adev);
- /* returns current IP block idle status */
- bool (*is_idle)(struct amdgpu_device *adev);
- /* poll for idle */
- int (*wait_for_idle)(struct amdgpu_device *adev);
- /* soft reset the IP block */
- int (*soft_reset)(struct amdgpu_device *adev);
- /* dump the IP block status registers */
- void (*print_status)(struct amdgpu_device *adev);
- /* enable/disable cg for the IP block */
- int (*set_clockgating_state)(struct amdgpu_device *adev,
- enum amdgpu_clockgating_state state);
- /* enable/disable pg for the IP block */
- int (*set_powergating_state)(struct amdgpu_device *adev,
- enum amdgpu_powergating_state state);
-};
-
int amdgpu_set_clockgating_state(struct amdgpu_device *adev,
- enum amdgpu_ip_block_type block_type,
- enum amdgpu_clockgating_state state);
+ enum amd_ip_block_type block_type,
+ enum amd_clockgating_state state);
int amdgpu_set_powergating_state(struct amdgpu_device *adev,
- enum amdgpu_ip_block_type block_type,
- enum amdgpu_powergating_state state);
+ enum amd_ip_block_type block_type,
+ enum amd_powergating_state state);
struct amdgpu_ip_block_version {
- enum amdgpu_ip_block_type type;
+ enum amd_ip_block_type type;
u32 major;
u32 minor;
u32 rev;
- const struct amdgpu_ip_funcs *funcs;
+ const struct amd_ip_funcs *funcs;
};
int amdgpu_ip_block_version_cmp(struct amdgpu_device *adev,
- enum amdgpu_ip_block_type type,
+ enum amd_ip_block_type type,
u32 major, u32 minor);
const struct amdgpu_ip_block_version * amdgpu_get_ip_block(
struct amdgpu_device *adev,
- enum amdgpu_ip_block_type type);
+ enum amd_ip_block_type type);
/* provided by hw blocks that can move/clear data. e.g., gfx or sdma */
struct amdgpu_buffer_funcs {