aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/secboot/ls_ucode_msgqueue.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/ls_ucode_msgqueue.c b/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/ls_ucode_msgqueue.c
index 5a7a55e831a4..77c13b096a67 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/ls_ucode_msgqueue.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/ls_ucode_msgqueue.c
@@ -43,28 +43,28 @@ acr_ls_ucode_load_msgqueue(const struct nvkm_subdev *subdev, const char *name,
43{ 43{
44 const struct firmware *image, *desc, *sig; 44 const struct firmware *image, *desc, *sig;
45 char f[64]; 45 char f[64];
46 int ret; 46 int ver, ret;
47 47
48 snprintf(f, sizeof(f), "%s/image", name); 48 snprintf(f, sizeof(f), "%s/image", name);
49 ret = nvkm_firmware_get(subdev, f, &image); 49 ver = nvkm_firmware_get_version(subdev, f, 0, maxver, &image);
50 if (ret) 50 if (ver < 0)
51 return ret; 51 return ver;
52 img->ucode_data = kmemdup(image->data, image->size, GFP_KERNEL); 52 img->ucode_data = kmemdup(image->data, image->size, GFP_KERNEL);
53 nvkm_firmware_put(image); 53 nvkm_firmware_put(image);
54 if (!img->ucode_data) 54 if (!img->ucode_data)
55 return -ENOMEM; 55 return -ENOMEM;
56 56
57 snprintf(f, sizeof(f), "%s/desc", name); 57 snprintf(f, sizeof(f), "%s/desc", name);
58 ret = nvkm_firmware_get(subdev, f, &desc); 58 ret = nvkm_firmware_get_version(subdev, f, ver, ver, &desc);
59 if (ret) 59 if (ret < 0)
60 return ret; 60 return ret;
61 memcpy(&img->ucode_desc, desc->data, sizeof(img->ucode_desc)); 61 memcpy(&img->ucode_desc, desc->data, sizeof(img->ucode_desc));
62 img->ucode_size = ALIGN(img->ucode_desc.app_start_offset + img->ucode_desc.app_size, 256); 62 img->ucode_size = ALIGN(img->ucode_desc.app_start_offset + img->ucode_desc.app_size, 256);
63 nvkm_firmware_put(desc); 63 nvkm_firmware_put(desc);
64 64
65 snprintf(f, sizeof(f), "%s/sig", name); 65 snprintf(f, sizeof(f), "%s/sig", name);
66 ret = nvkm_firmware_get(subdev, f, &sig); 66 ret = nvkm_firmware_get_version(subdev, f, ver, ver, &sig);
67 if (ret) 67 if (ret < 0)
68 return ret; 68 return ret;
69 img->sig_size = sig->size; 69 img->sig_size = sig->size;
70 img->sig = kmemdup(sig->data, sig->size, GFP_KERNEL); 70 img->sig = kmemdup(sig->data, sig->size, GFP_KERNEL);
@@ -72,7 +72,7 @@ acr_ls_ucode_load_msgqueue(const struct nvkm_subdev *subdev, const char *name,
72 if (!img->sig) 72 if (!img->sig)
73 return -ENOMEM; 73 return -ENOMEM;
74 74
75 return 0; 75 return ver;
76} 76}
77 77
78static int 78static int
@@ -141,11 +141,11 @@ acr_ls_ucode_load_sec2(const struct nvkm_secboot *sb, int maxver,
141 struct ls_ucode_img *img) 141 struct ls_ucode_img *img)
142{ 142{
143 struct nvkm_sec2 *sec = sb->subdev.device->sec2; 143 struct nvkm_sec2 *sec = sb->subdev.device->sec2;
144 int ret; 144 int ver, ret;
145 145
146 ret = acr_ls_ucode_load_msgqueue(&sb->subdev, "sec2", maxver, img); 146 ver = acr_ls_ucode_load_msgqueue(&sb->subdev, "sec2", maxver, img);
147 if (ret) 147 if (ver < 0)
148 return ret; 148 return ver;
149 149
150 /* Allocate the PMU queue corresponding to the FW version */ 150 /* Allocate the PMU queue corresponding to the FW version */
151 ret = nvkm_msgqueue_new(img->ucode_desc.app_version, sec->falcon, 151 ret = nvkm_msgqueue_new(img->ucode_desc.app_version, sec->falcon,
@@ -153,7 +153,7 @@ acr_ls_ucode_load_sec2(const struct nvkm_secboot *sb, int maxver,
153 if (ret) 153 if (ret)
154 return ret; 154 return ret;
155 155
156 return 0; 156 return ver;
157} 157}
158 158
159int 159int