summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2016-01-15 15:37:50 +0900
committerAlexandre Courbot <acourbot@nvidia.com>2016-01-15 17:32:57 +0900
commit8325f51afbe052d40168483c93cc31131ee85a87 (patch)
tree2756576aeaaae7922abceb6204dc2c03ec2d617a
parent6a25b8ac899a34ce5f6d6be782c1ccf9f3782daf (diff)
downloadnouveau-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.c22
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;
}