summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include/nvgpu/acr
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2017-04-14 15:06:39 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-19 15:16:02 -0400
commita9c66768db400a82575a82ecddec71f1d3fd4aba (patch)
tree3b83db70149515fc21c9d700f68bbcf0fb4e58b4 /drivers/gpu/nvgpu/include/nvgpu/acr
parent7eb59ff8d334e9980e21bac50b4680855bd8237f (diff)
gpu: nvgpu: Add abstraction for firmware loading
Add nvgpu_firmware data structure, and return it instead of Linux struct firmare from nvgpu_request_firmware. Also add abstraction for releasing firmware: nvgpu_release_firmware. JIRA NVGPU-16 Change-Id: I6dae8262957c0d4506f710289e3a43a6c1729fc7 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1463538 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include/nvgpu/acr')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/acr/nvgpu_acr.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/acr/nvgpu_acr.h b/drivers/gpu/nvgpu/include/nvgpu/acr/nvgpu_acr.h
index 6991a0ba..3844362d 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/acr/nvgpu_acr.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/acr/nvgpu_acr.h
@@ -21,6 +21,8 @@
21#include "acr_objlsfm.h" 21#include "acr_objlsfm.h"
22#include "acr_objflcn.h" 22#include "acr_objflcn.h"
23 23
24struct nvgpu_firmware;
25
24#define MAX_SUPPORTED_LSFM 3 /*PMU, FECS, GPCCS*/ 26#define MAX_SUPPORTED_LSFM 3 /*PMU, FECS, GPCCS*/
25 27
26#define ACR_COMPLETION_TIMEOUT_MS 10000 /*in msec */ 28#define ACR_COMPLETION_TIMEOUT_MS 10000 /*in msec */
@@ -74,20 +76,20 @@ struct acr_desc {
74 struct bin_hdr *hsbin_hdr; 76 struct bin_hdr *hsbin_hdr;
75 struct acr_fw_header *fw_hdr; 77 struct acr_fw_header *fw_hdr;
76 u32 pmu_args; 78 u32 pmu_args;
77 const struct firmware *acr_fw; 79 struct nvgpu_firmware *acr_fw;
78 union{ 80 union{
79 struct flcn_acr_desc *acr_dmem_desc; 81 struct flcn_acr_desc *acr_dmem_desc;
80 struct flcn_acr_desc_v1 *acr_dmem_desc_v1; 82 struct flcn_acr_desc_v1 *acr_dmem_desc_v1;
81 }; 83 };
82 struct nvgpu_mem acr_ucode; 84 struct nvgpu_mem acr_ucode;
83 const struct firmware *hsbl_fw; 85 struct nvgpu_firmware *hsbl_fw;
84 struct nvgpu_mem hsbl_ucode; 86 struct nvgpu_mem hsbl_ucode;
85 union { 87 union {
86 struct flcn_bl_dmem_desc bl_dmem_desc; 88 struct flcn_bl_dmem_desc bl_dmem_desc;
87 struct flcn_bl_dmem_desc_v1 bl_dmem_desc_v1; 89 struct flcn_bl_dmem_desc_v1 bl_dmem_desc_v1;
88 }; 90 };
89 const struct firmware *pmu_fw; 91 struct nvgpu_firmware *pmu_fw;
90 const struct firmware *pmu_desc; 92 struct nvgpu_firmware *pmu_desc;
91 u32 capabilities; 93 u32 capabilities;
92}; 94};
93 95