On 6/11/25 9:18 PM, Diogo Ivo wrote:
...
+static int nvjpg_load_falcon_firmware(struct nvjpg *nvjpg)
+{
+       struct host1x_client *client = &nvjpg->client.base;
+       struct tegra_drm *tegra = nvjpg->client.drm;
+       dma_addr_t iova;
+       size_t size;
+       void *virt;
+       int err;
+
+       if (nvjpg->falcon.firmware.virt)
+               return 0;
+
+       err = falcon_read_firmware(&nvjpg->falcon, nvjpg->config->firmware);
+       if (err < 0)
+               return err;
+
+       size = nvjpg->falcon.firmware.size;
+
+       if (!client->group) {
+               virt = dma_alloc_coherent(nvjpg->dev, size, &iova, GFP_KERNEL);
+
+               err = dma_mapping_error(nvjpg->dev, iova);
+               if (err < 0)
+                       return err;

This needs to check the return value of dma_alloc_coherent. Looks like this was fixed in vic.c by Robin (5566174cb10a5167d59b0793871cab7990b149b8) but the issue persisted into nvdec.c in parallel, so it needs to be fixed there as well. I can send out the fix for nvdec.c.

With that fixed,

Acked-by: Mikko Perttunen <mperttu...@nvidia.com>

Thanks!
Mikko

Reply via email to