[PATCH 9/9] drm/amdgpu: move psp_funcs related to a more proper place

Evan Quan evan.quan at amd.com
Wed Jan 2 09:21:41 UTC 2019


As there is no need to expose these through amdgpu_psp.h.
So, it's better to make them PSP internal used only.

Change-Id: I571be7aae8807f11a6d594be7762306b56403f82
Signed-off-by: Evan Quan <evan.quan at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 96 +++++++++++-------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 73 +++---------------
 drivers/gpu/drm/amd/amdgpu/psp_cmn.h    | 43 +++++++++++
 drivers/gpu/drm/amd/amdgpu/psp_funcs.h  | 98 +++++++++++++++++++++++++
 drivers/gpu/drm/amd/amdgpu/psp_v10_0.c  |  2 +-
 drivers/gpu/drm/amd/amdgpu/psp_v11_0.c  |  2 +-
 drivers/gpu/drm/amd/amdgpu/psp_v3_1.c   |  2 +-
 7 files changed, 197 insertions(+), 119 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/amdgpu/psp_funcs.h

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index ecfbf618652a..3b46334fa849 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -32,57 +32,8 @@
 #include "psp_v3_1.h"
 #include "psp_v10_0.h"
 #include "psp_v11_0.h"
-
-#define psp_ring_init(psp, type) \
-		(psp)->funcs->ring_init((psp), (type))
-#define psp_ring_create(psp, type) \
-		(psp)->funcs->ring_create((psp), (type))
-#define psp_ring_stop(psp, type) \
-		(psp)->funcs->ring_stop((psp), (type))
-#define psp_ring_destroy(psp, type) \
-		((psp)->funcs->ring_destroy((psp), (type)))
-#define psp_prep_cmd_buf(ucode, cmd) \
-		(psp)->funcs->prep_cmd_buf((ucode), (cmd))
-#define psp_submit_cmd_buf(psp, ucode, cmd, fence_mc) \
-		(psp)->funcs->submit_cmd_buf((psp), (ucode), (cmd), (fence_mc))
-#define psp_support_vmr_ring(psp) \
-		((psp)->funcs->support_vmr_ring ? (psp)->funcs->support_vmr_ring((psp)) : false)
-#define psp_init_asd(psp) \
-		((psp)->funcs->asd_init ? (psp)->funcs->asd_init((psp)) : 0)
-#define psp_load_asd(psp) \
-		((psp)->funcs->asd_load ? (psp)->funcs->asd_load((psp)) : 0)
-#define psp_unload_asd(psp) \
-		((psp)->funcs->asd_unload ? (psp)->funcs->asd_unload((psp)) : 0)
-#define psp_destory_asd(psp) \
-		((psp)->funcs->asd_destory ? (psp)->funcs->asd_destory((psp)) : 0)
-#define psp_init_tmr(psp) \
-		((psp)->funcs->tmr_init ? (psp)->funcs->tmr_init((psp)) : 0)
-#define psp_load_tmr(psp) \
-		((psp)->funcs->tmr_load ? (psp)->funcs->tmr_load((psp)) : 0)
-#define psp_unload_tmr(psp) \
-		((psp)->funcs->tmr_unload ? (psp)->funcs->tmr_unload((psp)) : 0)
-#define psp_destory_tmr(psp) \
-		((psp)->funcs->tmr_destory ? (psp)->funcs->tmr_destory((psp)) : 0)
-#define psp_init_xgmi(psp) \
-		((psp)->funcs->xgmi_init ? (psp)->funcs->xgmi_init((psp)) : 0)
-#define psp_load_xgmi(psp) \
-		((psp)->funcs->xgmi_load ? (psp)->funcs->xgmi_load((psp)) : 0)
-#define psp_unload_xgmi(psp) \
-		((psp)->funcs->xgmi_unload ? (psp)->funcs->xgmi_unload((psp)) : 0)
-#define psp_destory_xgmi(psp) \
-		((psp)->funcs->xgmi_destory ? (psp)->funcs->xgmi_destory((psp)) : 0)
-#define psp_compare_sram_data(psp, ucode, type) \
-		(psp)->funcs->compare_sram_data((psp), (ucode), (type))
-#define psp_init_microcode(psp) \
-		((psp)->funcs->init_microcode ? (psp)->funcs->init_microcode((psp)) : 0)
-#define psp_bootloader_load_sysdrv(psp) \
-		((psp)->funcs->bootloader_load_sysdrv ? (psp)->funcs->bootloader_load_sysdrv((psp)) : 0)
-#define psp_bootloader_load_sos(psp) \
-		((psp)->funcs->bootloader_load_sos ? (psp)->funcs->bootloader_load_sos((psp)) : 0)
-#define psp_smu_reload_quirk(psp) \
-		((psp)->funcs->smu_reload_quirk ? (psp)->funcs->smu_reload_quirk((psp)) : false)
-#define psp_mode1_reset(psp) \
-		((psp)->funcs->mode1_reset ? (psp)->funcs->mode1_reset((psp)) : false)
+#include "psp_cmn.h"
+#include "psp_funcs.h"
 
 static int psp_sw_init(void *handle)
 {
@@ -417,7 +368,6 @@ int psp_gpu_reset(struct amdgpu_device *adev)
 	return psp_mode1_reset(&adev->psp);
 }
 
-
 static int psp_set_clockgating_state(void *handle,
 				     enum amd_clockgating_state state)
 {
@@ -430,6 +380,48 @@ static int psp_set_powergating_state(void *handle,
 	return 0;
 }
 
+int psp_xgmi_get_topology_info(struct psp_context *psp,
+		int number_devices, struct psp_xgmi_topology_info *topology)
+{
+	const struct psp_funcs *funcs = (const struct psp_funcs *)(psp->priv);
+
+	if (!funcs->xgmi_get_topology_info)
+		return -EINVAL;
+
+	return funcs->xgmi_get_topology_info(psp, number_devices, topology);
+}
+
+int psp_xgmi_set_topology_info(struct psp_context *psp,
+		int number_devices, struct psp_xgmi_topology_info *topology)
+{
+	const struct psp_funcs *funcs = (const struct psp_funcs *)(psp->priv);
+
+	if (!funcs->xgmi_set_topology_info)
+		return -EINVAL;
+
+	return funcs->xgmi_set_topology_info(psp, number_devices, topology);
+}
+
+int psp_xgmi_get_hive_id(struct psp_context *psp, uint64_t *hive_id)
+{
+	const struct psp_funcs *funcs = (const struct psp_funcs *)(psp->priv);
+
+	if (!funcs->xgmi_get_hive_id)
+		return -EINVAL;
+
+	return funcs->xgmi_get_hive_id(psp, hive_id);
+}
+
+int psp_xgmi_get_node_id(struct psp_context *psp, uint64_t *node_id)
+{
+	const struct psp_funcs *funcs = (const struct psp_funcs *)(psp->priv);
+
+	if (!funcs->xgmi_get_node_id)
+		return -EINVAL;
+
+	return funcs->xgmi_get_node_id(psp, node_id);
+}
+
 const struct amd_ip_funcs psp_ip_funcs = {
 	.name = "psp",
 	.early_init = NULL,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
index 4cc7fd3224f4..4a981defb321 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
@@ -35,10 +35,7 @@
 #define PSP_XGMI_SHARED_MEM_SIZE 0x4000
 #define PSP_1_MEG		0x100000
 #define PSP_TMR_SIZE	0x400000
-
-struct psp_context;
-struct psp_xgmi_node_info;
-struct psp_xgmi_topology_info;
+#define AMDGPU_XGMI_MAX_CONNECTED_NODES		64
 
 enum psp_ring_type
 {
@@ -60,49 +57,6 @@ struct psp_ring
 	uint32_t			ring_size;
 };
 
-struct psp_funcs
-{
-	int (*init_microcode)(struct psp_context *psp);
-	int (*bootloader_load_sysdrv)(struct psp_context *psp);
-	int (*bootloader_load_sos)(struct psp_context *psp);
-	int (*prep_cmd_buf)(struct amdgpu_firmware_info *ucode,
-			    struct psp_gfx_cmd_resp *cmd);
-	int (*ring_init)(struct psp_context *psp, enum psp_ring_type ring_type);
-	int (*ring_create)(struct psp_context *psp,
-			   enum psp_ring_type ring_type);
-	int (*ring_stop)(struct psp_context *psp,
-			    enum psp_ring_type ring_type);
-	int (*ring_destroy)(struct psp_context *psp,
-			    enum psp_ring_type ring_type);
-	int (*submit_cmd_buf)(struct psp_context *psp,
-	                   struct amdgpu_firmware_info *ucode,
-	                   struct psp_gfx_cmd_resp *cmd, uint64_t fence_mc_addr);
-	bool (*support_vmr_ring)(struct psp_context *psp);
-	int (*asd_init)(struct psp_context *psp);
-	int (*asd_load)(struct psp_context *psp);
-	int (*asd_unload)(struct psp_context *psp);
-	int (*asd_destory)(struct psp_context *psp);
-	int (*tmr_init)(struct psp_context *psp);
-	int (*tmr_load)(struct psp_context *psp);
-	int (*tmr_unload)(struct psp_context *psp);
-	int (*tmr_destory)(struct psp_context *psp);
-	int (*xgmi_init)(struct psp_context *psp);
-	int (*xgmi_load)(struct psp_context *psp);
-	int (*xgmi_unload)(struct psp_context *psp);
-	int (*xgmi_destory)(struct psp_context *psp);
-	bool (*compare_sram_data)(struct psp_context *psp,
-				  struct amdgpu_firmware_info *ucode,
-				  enum AMDGPU_UCODE_ID ucode_type);
-	bool (*smu_reload_quirk)(struct psp_context *psp);
-	int (*mode1_reset)(struct psp_context *psp);
-	int (*xgmi_get_node_id)(struct psp_context *psp, uint64_t *node_id);
-	int (*xgmi_get_hive_id)(struct psp_context *psp, uint64_t *hive_id);
-	int (*xgmi_get_topology_info)(struct psp_context *psp, int number_devices,
-				      struct psp_xgmi_topology_info *topology);
-	int (*xgmi_set_topology_info)(struct psp_context *psp, int number_devices,
-				      struct psp_xgmi_topology_info *topology);
-};
-
 struct psp_xgmi_context {
 	uint8_t				initialized;
 	uint32_t			session_id;
@@ -117,7 +71,7 @@ struct psp_context
 	struct psp_ring                 km_ring;
 	struct psp_gfx_cmd_resp		*cmd;
 
-	const struct psp_funcs		*funcs;
+	const void			*priv;
 
 	/* firmware buffer */
 	struct amdgpu_bo		*fw_pri_bo;
@@ -169,7 +123,6 @@ struct psp_context
 	struct psp_xgmi_context		xgmi_context;
 };
 
-#define AMDGPU_XGMI_MAX_CONNECTED_NODES		64
 struct psp_xgmi_node_info {
 	uint64_t				node_id;
 	uint8_t					num_hops;
@@ -182,24 +135,16 @@ struct psp_xgmi_topology_info {
 	struct psp_xgmi_node_info	nodes[AMDGPU_XGMI_MAX_CONNECTED_NODES];
 };
 
-#define psp_xgmi_get_node_id(psp, node_id) \
-		((psp)->funcs->xgmi_get_node_id ? (psp)->funcs->xgmi_get_node_id((psp), (node_id)) : -EINVAL)
-#define psp_xgmi_get_hive_id(psp, hive_id) \
-		((psp)->funcs->xgmi_get_hive_id ? (psp)->funcs->xgmi_get_hive_id((psp), (hive_id)) : -EINVAL)
-#define psp_xgmi_get_topology_info(psp, num_device, topology) \
-		((psp)->funcs->xgmi_get_topology_info ? \
-		(psp)->funcs->xgmi_get_topology_info((psp), (num_device), (topology)) : -EINVAL)
-#define psp_xgmi_set_topology_info(psp, num_device, topology) \
-		((psp)->funcs->xgmi_set_topology_info ?	 \
-		(psp)->funcs->xgmi_set_topology_info((psp), (num_device), (topology)) : -EINVAL)
-
-extern const struct amd_ip_funcs psp_ip_funcs;
-
 extern const struct amdgpu_ip_block_version psp_v3_1_ip_block;
-
 extern const struct amdgpu_ip_block_version psp_v10_0_ip_block;
+extern const struct amdgpu_ip_block_version psp_v11_0_ip_block;
 
 int psp_gpu_reset(struct amdgpu_device *adev);
-extern const struct amdgpu_ip_block_version psp_v11_0_ip_block;
+int psp_xgmi_get_topology_info(struct psp_context *psp,
+		int number_devices, struct psp_xgmi_topology_info *topology);
+int psp_xgmi_set_topology_info(struct psp_context *psp,
+		int number_devices, struct psp_xgmi_topology_info *topology);
+int psp_xgmi_get_hive_id(struct psp_context *psp, uint64_t *hive_id);
+int psp_xgmi_get_node_id(struct psp_context *psp, uint64_t *node_id);
 
 #endif
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_cmn.h b/drivers/gpu/drm/amd/amdgpu/psp_cmn.h
index a1c0ad0bce72..e298fd3b2231 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_cmn.h
+++ b/drivers/gpu/drm/amd/amdgpu/psp_cmn.h
@@ -26,6 +26,49 @@
 
 #include "amdgpu_psp.h"
 
+struct psp_funcs
+{
+	int (*init_microcode)(struct psp_context *psp);
+	int (*bootloader_load_sysdrv)(struct psp_context *psp);
+	int (*bootloader_load_sos)(struct psp_context *psp);
+	int (*prep_cmd_buf)(struct amdgpu_firmware_info *ucode,
+			    struct psp_gfx_cmd_resp *cmd);
+	int (*ring_init)(struct psp_context *psp, enum psp_ring_type ring_type);
+	int (*ring_create)(struct psp_context *psp,
+			   enum psp_ring_type ring_type);
+	int (*ring_stop)(struct psp_context *psp,
+			    enum psp_ring_type ring_type);
+	int (*ring_destroy)(struct psp_context *psp,
+			    enum psp_ring_type ring_type);
+	int (*submit_cmd_buf)(struct psp_context *psp,
+	                   struct amdgpu_firmware_info *ucode,
+	                   struct psp_gfx_cmd_resp *cmd, uint64_t fence_mc_addr);
+	bool (*support_vmr_ring)(struct psp_context *psp);
+	int (*asd_init)(struct psp_context *psp);
+	int (*asd_load)(struct psp_context *psp);
+	int (*asd_unload)(struct psp_context *psp);
+	int (*asd_destory)(struct psp_context *psp);
+	int (*tmr_init)(struct psp_context *psp);
+	int (*tmr_load)(struct psp_context *psp);
+	int (*tmr_unload)(struct psp_context *psp);
+	int (*tmr_destory)(struct psp_context *psp);
+	int (*xgmi_init)(struct psp_context *psp);
+	int (*xgmi_load)(struct psp_context *psp);
+	int (*xgmi_unload)(struct psp_context *psp);
+	int (*xgmi_destory)(struct psp_context *psp);
+	bool (*compare_sram_data)(struct psp_context *psp,
+				  struct amdgpu_firmware_info *ucode,
+				  enum AMDGPU_UCODE_ID ucode_type);
+	bool (*smu_reload_quirk)(struct psp_context *psp);
+	int (*mode1_reset)(struct psp_context *psp);
+	int (*xgmi_get_node_id)(struct psp_context *psp, uint64_t *node_id);
+	int (*xgmi_get_hive_id)(struct psp_context *psp, uint64_t *hive_id);
+	int (*xgmi_get_topology_info)(struct psp_context *psp, int number_devices,
+				      struct psp_xgmi_topology_info *topology);
+	int (*xgmi_set_topology_info)(struct psp_context *psp, int number_devices,
+				      struct psp_xgmi_topology_info *topology);
+};
+
 int psp_cmn_mode1_reset(struct psp_context *psp);
 
 bool psp_cmn_compare_sram_data(struct psp_context *psp,
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_funcs.h b/drivers/gpu/drm/amd/amdgpu/psp_funcs.h
new file mode 100644
index 000000000000..397b4b25a202
--- /dev/null
+++ b/drivers/gpu/drm/amd/amdgpu/psp_funcs.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2018 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef __PSP_FUNCS_H
+#define __PSP_FUNCS_H
+
+#include "psp_cmn.h"
+
+#define psp_ring_init(psp, type) \
+		((const struct psp_funcs *)((psp)->priv))->ring_init((psp), (type))
+#define psp_ring_create(psp, type) \
+		((const struct psp_funcs *)((psp)->priv))->ring_create((psp), (type))
+#define psp_ring_stop(psp, type) \
+		((const struct psp_funcs *)((psp)->priv))->ring_stop((psp), (type))
+#define psp_ring_destroy(psp, type) \
+		((const struct psp_funcs *)((psp)->priv))->ring_destroy((psp), (type))
+#define psp_prep_cmd_buf(ucode, cmd) \
+		((const struct psp_funcs *)((psp)->priv))->prep_cmd_buf((ucode), (cmd))
+#define psp_submit_cmd_buf(psp, ucode, cmd, fence_mc) \
+		((const struct psp_funcs *)((psp)->priv))->submit_cmd_buf((psp), (ucode), (cmd), (fence_mc))
+#define psp_support_vmr_ring(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->support_vmr_ring ? \
+		((const struct psp_funcs *)((psp)->priv))->support_vmr_ring((psp)) : false)
+#define psp_init_asd(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->asd_init ? \
+		((const struct psp_funcs *)((psp)->priv))->asd_init((psp)) : 0)
+#define psp_load_asd(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->asd_load ? \
+		((const struct psp_funcs *)((psp)->priv))->asd_load((psp)) : 0)
+#define psp_unload_asd(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->asd_unload ? \
+		((const struct psp_funcs *)((psp)->priv))->asd_unload((psp)) : 0)
+#define psp_destory_asd(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->asd_destory ? \
+		((const struct psp_funcs *)((psp)->priv))->asd_destory((psp)) : 0)
+#define psp_init_tmr(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->tmr_init ? \
+		((const struct psp_funcs *)((psp)->priv))->tmr_init((psp)) : 0)
+#define psp_load_tmr(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->tmr_load ? \
+		((const struct psp_funcs *)((psp)->priv))->tmr_load((psp)) : 0)
+#define psp_unload_tmr(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->tmr_unload ? \
+		((const struct psp_funcs *)((psp)->priv))->tmr_unload((psp)) : 0)
+#define psp_destory_tmr(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->tmr_destory ? \
+		((const struct psp_funcs *)((psp)->priv))->tmr_destory((psp)) : 0)
+#define psp_init_xgmi(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->xgmi_init ? \
+		((const struct psp_funcs *)((psp)->priv))->xgmi_init((psp)) : 0)
+#define psp_load_xgmi(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->xgmi_load ? \
+		((const struct psp_funcs *)((psp)->priv))->xgmi_load((psp)) : 0)
+#define psp_unload_xgmi(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->xgmi_unload ? \
+		((const struct psp_funcs *)((psp)->priv))->xgmi_unload((psp)) : 0)
+#define psp_destory_xgmi(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->xgmi_destory ? \
+		((const struct psp_funcs *)((psp)->priv))->xgmi_destory((psp)) : 0)
+#define psp_compare_sram_data(psp, ucode, type) \
+		((const struct psp_funcs *)((psp)->priv))->compare_sram_data((psp), (ucode), (type))
+#define psp_init_microcode(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->init_microcode ? \
+		((const struct psp_funcs *)((psp)->priv))->init_microcode((psp)) : 0)
+#define psp_bootloader_load_sysdrv(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->bootloader_load_sysdrv ? \
+		((const struct psp_funcs *)((psp)->priv))->bootloader_load_sysdrv((psp)) : 0)
+#define psp_bootloader_load_sos(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->bootloader_load_sos ? \
+		((const struct psp_funcs *)((psp)->priv))->bootloader_load_sos((psp)) : 0)
+#define psp_smu_reload_quirk(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->smu_reload_quirk ? \
+		((const struct psp_funcs *)((psp)->priv))->smu_reload_quirk((psp)) : false)
+#define psp_mode1_reset(psp) \
+		(((const struct psp_funcs *)((psp)->priv))->mode1_reset ? \
+		((const struct psp_funcs *)((psp)->priv))->mode1_reset((psp)) : false)
+
+#endif
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
index a469ff952045..7588b73af4a3 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
@@ -117,5 +117,5 @@ static const struct psp_funcs psp_v10_0_funcs = {
 
 void psp_v10_0_set_psp_funcs(struct psp_context *psp)
 {
-	psp->funcs = &psp_v10_0_funcs;
+	psp->priv = (const void *)&psp_v10_0_funcs;
 }
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
index 68ce4ccceec7..c963dcc63d71 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
@@ -277,5 +277,5 @@ static const struct psp_funcs psp_v11_0_funcs = {
 
 void psp_v11_0_set_psp_funcs(struct psp_context *psp)
 {
-	psp->funcs = &psp_v11_0_funcs;
+	psp->priv = (const void *)&psp_v11_0_funcs;
 }
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
index 8bcbc6bb9333..39beb8d589b9 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
@@ -190,5 +190,5 @@ static const struct psp_funcs psp_v3_1_funcs = {
 
 void psp_v3_1_set_psp_funcs(struct psp_context *psp)
 {
-	psp->funcs = &psp_v3_1_funcs;
+	psp->priv = (const void *)&psp_v3_1_funcs;
 }
-- 
2.20.1



More information about the amd-gfx mailing list