diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2017-04-14 15:06:39 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-04-19 15:16:02 -0400 |
commit | a9c66768db400a82575a82ecddec71f1d3fd4aba (patch) | |
tree | 3b83db70149515fc21c9d700f68bbcf0fb4e58b4 /drivers/gpu/nvgpu/gm206/bios_gm206.c | |
parent | 7eb59ff8d334e9980e21bac50b4680855bd8237f (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/gm206/bios_gm206.c')
-rw-r--r-- | drivers/gpu/nvgpu/gm206/bios_gm206.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gm206/bios_gm206.c b/drivers/gpu/nvgpu/gm206/bios_gm206.c index 2c84ac62..f460a053 100644 --- a/drivers/gpu/nvgpu/gm206/bios_gm206.c +++ b/drivers/gpu/nvgpu/gm206/bios_gm206.c | |||
@@ -11,13 +11,13 @@ | |||
11 | * more details. | 11 | * more details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/firmware.h> | ||
15 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
16 | 15 | ||
17 | #include <nvgpu/bios.h> | 16 | #include <nvgpu/bios.h> |
18 | #include <nvgpu/kmem.h> | 17 | #include <nvgpu/kmem.h> |
19 | #include <nvgpu/nvgpu_common.h> | 18 | #include <nvgpu/nvgpu_common.h> |
20 | #include <nvgpu/timers.h> | 19 | #include <nvgpu/timers.h> |
20 | #include <nvgpu/firmware.h> | ||
21 | 21 | ||
22 | #include "gk20a/gk20a.h" | 22 | #include "gk20a/gk20a.h" |
23 | #include "gm20b/fifo_gm20b.h" | 23 | #include "gm20b/fifo_gm20b.h" |
@@ -249,7 +249,7 @@ int gm206_bios_init(struct gk20a *g) | |||
249 | unsigned int i; | 249 | unsigned int i; |
250 | struct gk20a_platform *platform = dev_get_drvdata(g->dev); | 250 | struct gk20a_platform *platform = dev_get_drvdata(g->dev); |
251 | struct dentry *d; | 251 | struct dentry *d; |
252 | const struct firmware *bios_fw; | 252 | struct nvgpu_firmware *bios_fw; |
253 | int err; | 253 | int err; |
254 | struct pci_dev *pdev = to_pci_dev(g->dev); | 254 | struct pci_dev *pdev = to_pci_dev(g->dev); |
255 | char rom_name[sizeof(BIOS_OVERLAY_NAME_FORMATTED)]; | 255 | char rom_name[sizeof(BIOS_OVERLAY_NAME_FORMATTED)]; |
@@ -273,7 +273,7 @@ int gm206_bios_init(struct gk20a *g) | |||
273 | memcpy(g->bios.data, &bios_fw->data[ROM_FILE_PAYLOAD_OFFSET], | 273 | memcpy(g->bios.data, &bios_fw->data[ROM_FILE_PAYLOAD_OFFSET], |
274 | g->bios.size); | 274 | g->bios.size); |
275 | 275 | ||
276 | release_firmware(bios_fw); | 276 | nvgpu_release_firmware(g, bios_fw); |
277 | } else { | 277 | } else { |
278 | gk20a_dbg_info("reading bios from EEPROM"); | 278 | gk20a_dbg_info("reading bios from EEPROM"); |
279 | g->bios.size = BIOS_SIZE; | 279 | g->bios.size = BIOS_SIZE; |
@@ -336,7 +336,7 @@ int gm206_bios_init(struct gk20a *g) | |||
336 | return 0; | 336 | return 0; |
337 | 337 | ||
338 | free_firmware: | 338 | free_firmware: |
339 | release_firmware(bios_fw); | 339 | nvgpu_release_firmware(g, bios_fw); |
340 | return err; | 340 | return err; |
341 | } | 341 | } |
342 | 342 | ||