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