Merge tag 'rproc-v5.3' of git://github.com/andersson/remoteproc
[sfrench/cifs-2.6.git] / drivers / remoteproc / remoteproc_core.c
index 8b5363223eaab78a94c49e061b97d9986ddfb036..3c5fbbbfb0f17c6104589a9fcace6aab00c88db7 100644 (file)
@@ -512,6 +512,7 @@ static int rproc_handle_vdev(struct rproc *rproc, struct fw_rsc_vdev *rsc,
        /* Initialise vdev subdevice */
        snprintf(name, sizeof(name), "vdev%dbuffer", rvdev->index);
        rvdev->dev.parent = rproc->dev.parent;
+       rvdev->dev.dma_pfn_offset = rproc->dev.parent->dma_pfn_offset;
        rvdev->dev.release = rproc_rvdev_release;
        dev_set_name(&rvdev->dev, "%s#%s", dev_name(rvdev->dev.parent), name);
        dev_set_drvdata(&rvdev->dev, rvdev);
@@ -1058,6 +1059,20 @@ static int rproc_handle_resources(struct rproc *rproc,
 
                dev_dbg(dev, "rsc: type %d\n", hdr->type);
 
+               if (hdr->type >= RSC_VENDOR_START &&
+                   hdr->type <= RSC_VENDOR_END) {
+                       ret = rproc_handle_rsc(rproc, hdr->type, rsc,
+                                              offset + sizeof(*hdr), avail);
+                       if (ret == RSC_HANDLED)
+                               continue;
+                       else if (ret < 0)
+                               break;
+
+                       dev_warn(dev, "unsupported vendor resource %d\n",
+                                hdr->type);
+                       continue;
+               }
+
                if (hdr->type >= RSC_LAST) {
                        dev_warn(dev, "unsupported resource %d\n", hdr->type);
                        continue;