diff options
author | Alexandre Courbot <acourbot@nvidia.com> | 2016-01-15 15:37:50 +0900 |
---|---|---|
committer | Alexandre Courbot <acourbot@nvidia.com> | 2016-01-15 17:32:57 +0900 |
commit | 8325f51afbe052d40168483c93cc31131ee85a87 (patch) | |
tree | 2756576aeaaae7922abceb6204dc2c03ec2d617a | |
parent | 6a25b8ac899a34ce5f6d6be782c1ccf9f3782daf (diff) | |
download | nouveau-8325f51afbe052d40168483c93cc31131ee85a87.tar.gz |
falcon: use the nvkm_firmware functions
Use the newly-introduced nvkm_firmware functions. Note that this will
change the expected location of firmware files.
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
-rw-r--r-- | drm/nouveau/nvkm/engine/falcon.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/drm/nouveau/nvkm/engine/falcon.c b/drm/nouveau/nvkm/engine/falcon.c index 74000602f..028113c6f 100644 --- a/drm/nouveau/nvkm/engine/falcon.c +++ b/drm/nouveau/nvkm/engine/falcon.c @@ -22,6 +22,7 @@ #include <engine/falcon.h> #include <core/gpuobj.h> +#include <core/firmware.h> #include <subdev/timer.h> #include <engine/fifo.h> @@ -187,16 +188,15 @@ nvkm_falcon_init(struct nvkm_engine *engine) * locate a "self-bootstrapping" firmware image for the engine */ if (!falcon->code.data) { - snprintf(name, sizeof(name), "nouveau/nv%02x_fuc%03x", - device->chipset, falcon->addr >> 12); + snprintf(name, sizeof(name), "fuc%03x", falcon->addr >> 12); - ret = request_firmware(&fw, name, device->dev); + ret = nvkm_firmware_get(device, name, &fw); if (ret == 0) { falcon->code.data = vmemdup(fw->data, fw->size); falcon->code.size = fw->size; falcon->data.data = NULL; falcon->data.size = 0; - release_firmware(fw); + nvkm_firmware_put(fw); } falcon->external = true; @@ -206,10 +206,9 @@ nvkm_falcon_init(struct nvkm_engine *engine) * images for the engine */ if (!falcon->code.data) { - snprintf(name, sizeof(name), "nouveau/nv%02x_fuc%03xd", - device->chipset, falcon->addr >> 12); + snprintf(name, sizeof(name), "fuc%03xd", falcon->addr >> 12); - ret = request_firmware(&fw, name, device->dev); + ret = nvkm_firmware_get(device, name, &fw); if (ret) { nvkm_error(subdev, "unable to load firmware data\n"); return -ENODEV; @@ -217,14 +216,13 @@ nvkm_falcon_init(struct nvkm_engine *engine) falcon->data.data = vmemdup(fw->data, fw->size); falcon->data.size = fw->size; - release_firmware(fw); + nvkm_firmware_put(fw); if (!falcon->data.data) return -ENOMEM; - snprintf(name, sizeof(name), "nouveau/nv%02x_fuc%03xc", - device->chipset, falcon->addr >> 12); + snprintf(name, sizeof(name), "fuc%03xc", falcon->addr >> 12); - ret = request_firmware(&fw, name, device->dev); + ret = nvkm_firmware_get(device, name, &fw); if (ret) { nvkm_error(subdev, "unable to load firmware code\n"); return -ENODEV; @@ -232,7 +230,7 @@ nvkm_falcon_init(struct nvkm_engine *engine) falcon->code.data = vmemdup(fw->data, fw->size); falcon->code.size = fw->size; - release_firmware(fw); + nvkm_firmware_put(fw); if (!falcon->code.data) return -ENOMEM; } |