|
@@ -24,6 +24,7 @@
|
|
|
#ifndef _CGS_COMMON_H
|
|
|
#define _CGS_COMMON_H
|
|
|
|
|
|
+#include "amd_shared.h"
|
|
|
|
|
|
/**
|
|
|
* enum cgs_gpu_mem_type - GPU memory types
|
|
@@ -484,6 +485,13 @@ typedef int (*cgs_get_firmware_info)(void *cgs_device,
|
|
|
enum cgs_ucode_id type,
|
|
|
struct cgs_firmware_info *info);
|
|
|
|
|
|
+typedef int(*cgs_set_powergating_state)(void *cgs_device,
|
|
|
+ enum amd_ip_block_type block_type,
|
|
|
+ enum amd_powergating_state state);
|
|
|
+
|
|
|
+typedef int(*cgs_set_clockgating_state)(void *cgs_device,
|
|
|
+ enum amd_ip_block_type block_type,
|
|
|
+ enum amd_clockgating_state state);
|
|
|
|
|
|
struct cgs_ops {
|
|
|
/* memory management calls (similar to KFD interface) */
|
|
@@ -522,6 +530,9 @@ struct cgs_ops {
|
|
|
cgs_set_camera_voltages_t set_camera_voltages;
|
|
|
/* Firmware Info */
|
|
|
cgs_get_firmware_info get_firmware_info;
|
|
|
+ /* cg pg interface*/
|
|
|
+ cgs_set_powergating_state set_powergating_state;
|
|
|
+ cgs_set_clockgating_state set_clockgating_state;
|
|
|
/* ACPI (TODO) */
|
|
|
};
|
|
|
|
|
@@ -605,5 +616,9 @@ struct cgs_device
|
|
|
CGS_CALL(set_camera_voltages,dev,mask,voltages)
|
|
|
#define cgs_get_firmware_info(dev, type, info) \
|
|
|
CGS_CALL(get_firmware_info, dev, type, info)
|
|
|
+#define cgs_set_powergating_state(dev, block_type, state) \
|
|
|
+ CGS_CALL(set_powergating_state, dev, block_type, state)
|
|
|
+#define cgs_set_clockgating_state(dev, block_type, state) \
|
|
|
+ CGS_CALL(set_clockgating_state, dev, block_type, state)
|
|
|
|
|
|
#endif /* _CGS_COMMON_H */
|