drm/nouveau/secboot: split out FW version-specific LS function pointers
[linux-2.6-microblaze.git] / drivers / gpu / drm / nouveau / nvkm / subdev / secboot / acr_r361.c
index 14b36ef..71f85b1 100644 (file)
@@ -66,20 +66,36 @@ acr_r361_generate_hs_bl_desc(const struct hsf_load_header *hdr, void *_bl_desc,
        bl_desc->data_size = hdr->data_size;
 }
 
+static const struct acr_r352_lsf_func
+acr_r361_ls_fecs_func_0 = {
+       .generate_bl_desc = acr_r361_generate_flcn_bl_desc,
+       .bl_desc_size = sizeof(struct acr_r361_flcn_bl_desc),
+};
+
 const struct acr_r352_ls_func
 acr_r361_ls_fecs_func = {
        .load = acr_ls_ucode_load_fecs,
+       .version_max = 0,
+       .version = {
+               &acr_r361_ls_fecs_func_0,
+       }
+};
+
+static const struct acr_r352_lsf_func
+acr_r361_ls_gpccs_func_0 = {
        .generate_bl_desc = acr_r361_generate_flcn_bl_desc,
        .bl_desc_size = sizeof(struct acr_r361_flcn_bl_desc),
+       /* GPCCS will be loaded using PRI */
+       .lhdr_flags = LSF_FLAG_FORCE_PRIV_LOAD,
 };
 
 const struct acr_r352_ls_func
 acr_r361_ls_gpccs_func = {
        .load = acr_ls_ucode_load_gpccs,
-       .generate_bl_desc = acr_r361_generate_flcn_bl_desc,
-       .bl_desc_size = sizeof(struct acr_r361_flcn_bl_desc),
-       /* GPCCS will be loaded using PRI */
-       .lhdr_flags = LSF_FLAG_FORCE_PRIV_LOAD,
+       .version_max = 0,
+       .version = {
+               &acr_r361_ls_gpccs_func_0,
+       }
 };
 
 struct acr_r361_pmu_bl_desc {
@@ -125,12 +141,20 @@ acr_r361_generate_pmu_bl_desc(const struct nvkm_acr *acr,
        desc->argv = addr_args;
 }
 
+static const struct acr_r352_lsf_func
+acr_r361_ls_pmu_func_0 = {
+       .generate_bl_desc = acr_r361_generate_pmu_bl_desc,
+       .bl_desc_size = sizeof(struct acr_r361_pmu_bl_desc),
+};
+
 const struct acr_r352_ls_func
 acr_r361_ls_pmu_func = {
        .load = acr_ls_ucode_load_pmu,
-       .generate_bl_desc = acr_r361_generate_pmu_bl_desc,
-       .bl_desc_size = sizeof(struct acr_r361_pmu_bl_desc),
        .post_run = acr_ls_pmu_post_run,
+       .version_max = 0,
+       .version = {
+               &acr_r361_ls_pmu_func_0,
+       }
 };
 
 static void
@@ -164,12 +188,20 @@ acr_r361_generate_sec2_bl_desc(const struct nvkm_acr *acr,
        desc->argv = 0x01000000;
 }
 
+static const struct acr_r352_lsf_func
+acr_r361_ls_sec2_func_0 = {
+       .generate_bl_desc = acr_r361_generate_sec2_bl_desc,
+       .bl_desc_size = sizeof(struct acr_r361_pmu_bl_desc),
+};
+
 const struct acr_r352_ls_func
 acr_r361_ls_sec2_func = {
        .load = acr_ls_ucode_load_sec2,
-       .generate_bl_desc = acr_r361_generate_sec2_bl_desc,
-       .bl_desc_size = sizeof(struct acr_r361_pmu_bl_desc),
        .post_run = acr_ls_sec2_post_run,
+       .version_max = 0,
+       .version = {
+               &acr_r361_ls_sec2_func_0,
+       }
 };