Lines Matching full:rsc
326 struct fw_rsc_vdev *rsc; in rproc_alloc_vring() local
334 rsc = (void *)rproc->table_ptr + rvdev->rsc_offset; in rproc_alloc_vring()
340 if (rproc_check_carveout_da(rproc, mem, rsc->vring[i].da, size)) in rproc_alloc_vring()
345 size, rsc->vring[i].da, in rproc_alloc_vring()
377 rsc->vring[i].notifyid = notifyid; in rproc_alloc_vring()
382 rproc_parse_vring(struct rproc_vdev *rvdev, struct fw_rsc_vdev *rsc, int i) in rproc_parse_vring() argument
386 struct fw_rsc_vdev_vring *vring = &rsc->vring[i]; in rproc_parse_vring()
389 dev_dbg(dev, "vdev rsc: vring%d: da 0x%x, qsz %d, align %d\n", in rproc_parse_vring()
410 struct fw_rsc_vdev *rsc; in rproc_free_vring() local
426 rsc = (void *)rproc->table_ptr + rvring->rvdev->rsc_offset; in rproc_free_vring()
427 rsc->vring[idx].da = 0; in rproc_free_vring()
428 rsc->vring[idx].notifyid = -1; in rproc_free_vring()
485 * @rsc: the vring resource descriptor
510 static int rproc_handle_vdev(struct rproc *rproc, struct fw_rsc_vdev *rsc, in rproc_handle_vdev() argument
519 if (struct_size(rsc, vring, rsc->num_of_vrings) + rsc->config_len > in rproc_handle_vdev()
521 dev_err(dev, "vdev rsc is truncated\n"); in rproc_handle_vdev()
526 if (rsc->reserved[0] || rsc->reserved[1]) { in rproc_handle_vdev()
527 dev_err(dev, "vdev rsc has non zero reserved bytes\n"); in rproc_handle_vdev()
531 dev_dbg(dev, "vdev rsc: id %d, dfeatures 0x%x, cfg len %d, %d vrings\n", in rproc_handle_vdev()
532 rsc->id, rsc->dfeatures, rsc->config_len, rsc->num_of_vrings); in rproc_handle_vdev()
535 if (rsc->num_of_vrings > ARRAY_SIZE(rvdev->vring)) { in rproc_handle_vdev()
536 dev_err(dev, "too many vrings: %d\n", rsc->num_of_vrings); in rproc_handle_vdev()
546 rvdev->id = rsc->id; in rproc_handle_vdev()
577 for (i = 0; i < rsc->num_of_vrings; i++) { in rproc_handle_vdev()
578 ret = rproc_parse_vring(rvdev, rsc, i); in rproc_handle_vdev()
587 for (i = 0; i < rsc->num_of_vrings; i++) { in rproc_handle_vdev()
630 * @rsc: the trace resource descriptor
637 * Currently, the 'da' member of @rsc should contain the device address
644 static int rproc_handle_trace(struct rproc *rproc, struct fw_rsc_trace *rsc, in rproc_handle_trace() argument
651 if (sizeof(*rsc) > avail) { in rproc_handle_trace()
652 dev_err(dev, "trace rsc is truncated\n"); in rproc_handle_trace()
657 if (rsc->reserved) { in rproc_handle_trace()
658 dev_err(dev, "trace rsc has non zero reserved bytes\n"); in rproc_handle_trace()
667 trace->trace_mem.len = rsc->len; in rproc_handle_trace()
668 trace->trace_mem.da = rsc->da; in rproc_handle_trace()
688 name, rsc->da, rsc->len); in rproc_handle_trace()
696 * @rsc: the devmem resource entry
719 static int rproc_handle_devmem(struct rproc *rproc, struct fw_rsc_devmem *rsc, in rproc_handle_devmem() argument
730 if (sizeof(*rsc) > avail) { in rproc_handle_devmem()
731 dev_err(dev, "devmem rsc is truncated\n"); in rproc_handle_devmem()
736 if (rsc->reserved) { in rproc_handle_devmem()
737 dev_err(dev, "devmem rsc has non zero reserved bytes\n"); in rproc_handle_devmem()
745 ret = iommu_map(rproc->domain, rsc->da, rsc->pa, rsc->len, rsc->flags); in rproc_handle_devmem()
758 mapping->da = rsc->da; in rproc_handle_devmem()
759 mapping->len = rsc->len; in rproc_handle_devmem()
763 rsc->pa, rsc->da, rsc->len); in rproc_handle_devmem()
899 * @rsc: the resource entry
916 struct fw_rsc_carveout *rsc, in rproc_handle_carveout() argument
922 if (sizeof(*rsc) > avail) { in rproc_handle_carveout()
923 dev_err(dev, "carveout rsc is truncated\n"); in rproc_handle_carveout()
928 if (rsc->reserved) { in rproc_handle_carveout()
929 dev_err(dev, "carveout rsc has non zero reserved bytes\n"); in rproc_handle_carveout()
933 dev_dbg(dev, "carveout rsc: name: %s, da 0x%x, pa 0x%x, len 0x%x, flags 0x%x\n", in rproc_handle_carveout()
934 rsc->name, rsc->da, rsc->pa, rsc->len, rsc->flags); in rproc_handle_carveout()
937 * Check carveout rsc already part of a registered carveout, in rproc_handle_carveout()
940 carveout = rproc_find_carveout_by_name(rproc, rsc->name); in rproc_handle_carveout()
949 if (rproc_check_carveout_da(rproc, carveout, rsc->da, rsc->len)) in rproc_handle_carveout()
954 carveout->flags = rsc->flags; in rproc_handle_carveout()
960 carveout = rproc_mem_entry_init(dev, NULL, 0, rsc->len, rsc->da, in rproc_handle_carveout()
962 rproc_release_carveout, rsc->name); in rproc_handle_carveout()
968 carveout->flags = rsc->flags; in rproc_handle_carveout()
1121 void *rsc = (void *)hdr + sizeof(*hdr); in rproc_handle_resources() local
1125 dev_err(dev, "rsc table is truncated\n"); in rproc_handle_resources()
1129 dev_dbg(dev, "rsc: type %d\n", hdr->type); in rproc_handle_resources()
1133 ret = rproc_handle_rsc(rproc, hdr->type, rsc, in rproc_handle_resources()
1154 ret = handler(rproc, rsc, offset + sizeof(*hdr), avail); in rproc_handle_resources()
1244 struct fw_rsc_carveout *rsc; in rproc_alloc_registered_carveouts() local
1261 rsc = (void *)rproc->table_ptr + entry->rsc_offset; in rproc_alloc_registered_carveouts()
1291 rsc->pa = (u32)pa; in rproc_alloc_registered_carveouts()
1292 rsc->da = entry->da; in rproc_alloc_registered_carveouts()
1293 rsc->len = entry->len; in rproc_alloc_registered_carveouts()