|
@@ -45,6 +45,17 @@ enum kgd_memory_pool {
|
|
|
KGD_POOL_FRAMEBUFFER = 3,
|
|
|
};
|
|
|
|
|
|
+enum kgd_engine_type {
|
|
|
+ KGD_ENGINE_PFP = 1,
|
|
|
+ KGD_ENGINE_ME,
|
|
|
+ KGD_ENGINE_CE,
|
|
|
+ KGD_ENGINE_MEC1,
|
|
|
+ KGD_ENGINE_MEC2,
|
|
|
+ KGD_ENGINE_RLC,
|
|
|
+ KGD_ENGINE_SDMA,
|
|
|
+ KGD_ENGINE_MAX
|
|
|
+};
|
|
|
+
|
|
|
struct kgd2kfd_shared_resources {
|
|
|
/* Bit n == 1 means VMID n is available for KFD. */
|
|
|
unsigned int compute_vmid_bitmap;
|
|
@@ -137,6 +148,8 @@ struct kgd2kfd_calls {
|
|
|
*
|
|
|
* @hqd_destroy: Destructs and preempts the queue assigned to that hqd slot.
|
|
|
*
|
|
|
+ * @get_fw_version: Returns FW versions from the header
|
|
|
+ *
|
|
|
* This structure contains function pointers to services that the kgd driver
|
|
|
* provides to amdkfd driver.
|
|
|
*
|
|
@@ -176,6 +189,8 @@ struct kfd2kgd_calls {
|
|
|
int (*hqd_destroy)(struct kgd_dev *kgd, uint32_t reset_type,
|
|
|
unsigned int timeout, uint32_t pipe_id,
|
|
|
uint32_t queue_id);
|
|
|
+ uint16_t (*get_fw_version)(struct kgd_dev *kgd,
|
|
|
+ enum kgd_engine_type type);
|
|
|
};
|
|
|
|
|
|
bool kgd2kfd_init(unsigned interface_version,
|