/**
  * rproc_handle_vdev() - handle a vdev fw resource
  * @rproc: the remote processor
- * @rsc: the vring resource descriptor
+ * @ptr: the vring resource descriptor
  * @offset: offset of the resource entry
  * @avail: size of available data (for sanity checking the image)
  *
  *
  * Returns 0 on success, or an appropriate error code otherwise
  */
-static int rproc_handle_vdev(struct rproc *rproc, struct fw_rsc_vdev *rsc,
+static int rproc_handle_vdev(struct rproc *rproc, void *ptr,
                             int offset, int avail)
 {
+       struct fw_rsc_vdev *rsc = ptr;
        struct device *dev = &rproc->dev;
        struct rproc_vdev *rvdev;
        int i, ret;
 /**
  * rproc_handle_trace() - handle a shared trace buffer resource
  * @rproc: the remote processor
- * @rsc: the trace resource descriptor
+ * @ptr: the trace resource descriptor
  * @offset: offset of the resource entry
  * @avail: size of available data (for sanity checking the image)
  *
  *
  * Returns 0 on success, or an appropriate error code otherwise
  */
-static int rproc_handle_trace(struct rproc *rproc, struct fw_rsc_trace *rsc,
+static int rproc_handle_trace(struct rproc *rproc, void *ptr,
                              int offset, int avail)
 {
+       struct fw_rsc_trace *rsc = ptr;
        struct rproc_debug_trace *trace;
        struct device *dev = &rproc->dev;
        char name[15];
 /**
  * rproc_handle_devmem() - handle devmem resource entry
  * @rproc: remote processor handle
- * @rsc: the devmem resource entry
+ * @ptr: the devmem resource entry
  * @offset: offset of the resource entry
  * @avail: size of available data (for sanity checking the image)
  *
  * and not allow firmwares to request access to physical addresses that
  * are outside those ranges.
  */
-static int rproc_handle_devmem(struct rproc *rproc, struct fw_rsc_devmem *rsc,
+static int rproc_handle_devmem(struct rproc *rproc, void *ptr,
                               int offset, int avail)
 {
+       struct fw_rsc_devmem *rsc = ptr;
        struct rproc_mem_entry *mapping;
        struct device *dev = &rproc->dev;
        int ret;
 /**
  * rproc_handle_carveout() - handle phys contig memory allocation requests
  * @rproc: rproc handle
- * @rsc: the resource entry
+ * @ptr: the resource entry
  * @offset: offset of the resource entry
  * @avail: size of available data (for image validation)
  *
  * pressure is important; it may have a substantial impact on performance.
  */
 static int rproc_handle_carveout(struct rproc *rproc,
-                                struct fw_rsc_carveout *rsc,
-                                int offset, int avail)
+                                void *ptr, int offset, int avail)
 {
+       struct fw_rsc_carveout *rsc = ptr;
        struct rproc_mem_entry *carveout;
        struct device *dev = &rproc->dev;
 
  * enum fw_resource_type.
  */
 static rproc_handle_resource_t rproc_loading_handlers[RSC_LAST] = {
-       [RSC_CARVEOUT] = (rproc_handle_resource_t)rproc_handle_carveout,
-       [RSC_DEVMEM] = (rproc_handle_resource_t)rproc_handle_devmem,
-       [RSC_TRACE] = (rproc_handle_resource_t)rproc_handle_trace,
-       [RSC_VDEV] = (rproc_handle_resource_t)rproc_handle_vdev,
+       [RSC_CARVEOUT] = rproc_handle_carveout,
+       [RSC_DEVMEM] = rproc_handle_devmem,
+       [RSC_TRACE] = rproc_handle_trace,
+       [RSC_VDEV] = rproc_handle_vdev,
 };
 
 /* handle firmware resource entries before booting the remote processor */