Lines Matching refs:smem

292 static int qcom_smem_alloc_private(struct qcom_smem *smem,  in qcom_smem_alloc_private()  argument
302 phdr = smem->partitions[host]; in qcom_smem_alloc_private()
309 dev_err(smem->dev, in qcom_smem_alloc_private()
324 dev_err(smem->dev, "Out of memory\n"); in qcom_smem_alloc_private()
345 static int qcom_smem_alloc_global(struct qcom_smem *smem, in qcom_smem_alloc_global() argument
355 header = smem->regions[0].virt_base; in qcom_smem_alloc_global()
421 static void *qcom_smem_get_global(struct qcom_smem *smem, in qcom_smem_get_global() argument
434 header = smem->regions[0].virt_base; in qcom_smem_get_global()
441 for (i = 0; i < smem->num_regions; i++) { in qcom_smem_get_global()
442 area = &smem->regions[i]; in qcom_smem_get_global()
454 static void *qcom_smem_get_private(struct qcom_smem *smem, in qcom_smem_get_private() argument
462 phdr = smem->partitions[host]; in qcom_smem_get_private()
468 dev_err(smem->dev, in qcom_smem_get_private()
553 static int qcom_smem_get_sbl_version(struct qcom_smem *smem) in qcom_smem_get_sbl_version() argument
558 versions = qcom_smem_get_global(smem, SMEM_ITEM_VERSION, &size); in qcom_smem_get_sbl_version()
560 dev_err(smem->dev, "Unable to read the version item\n"); in qcom_smem_get_sbl_version()
565 dev_err(smem->dev, "Version item is too small\n"); in qcom_smem_get_sbl_version()
572 static int qcom_smem_enumerate_partitions(struct qcom_smem *smem, in qcom_smem_enumerate_partitions() argument
582 ptable = smem->regions[0].virt_base + smem->regions[0].size - SZ_4K; in qcom_smem_enumerate_partitions()
588 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
613 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
619 if (smem->partitions[remote_host]) { in qcom_smem_enumerate_partitions()
620 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
626 header = smem->regions[0].virt_base + le32_to_cpu(entry->offset); in qcom_smem_enumerate_partitions()
632 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
638 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
644 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
650 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
656 dev_err(smem->dev, in qcom_smem_enumerate_partitions()
661 smem->partitions[remote_host] = header; in qcom_smem_enumerate_partitions()
667 static int qcom_smem_map_memory(struct qcom_smem *smem, struct device *dev, in qcom_smem_map_memory() argument
685 smem->regions[i].aux_base = (u32)r.start; in qcom_smem_map_memory()
686 smem->regions[i].size = resource_size(&r); in qcom_smem_map_memory()
687 smem->regions[i].virt_base = devm_ioremap_nocache(dev, r.start, in qcom_smem_map_memory()
689 if (!smem->regions[i].virt_base) in qcom_smem_map_memory()
698 struct qcom_smem *smem; in qcom_smem_probe() local
710 smem = devm_kzalloc(&pdev->dev, sizeof(*smem) + array_size, GFP_KERNEL); in qcom_smem_probe()
711 if (!smem) in qcom_smem_probe()
714 smem->dev = &pdev->dev; in qcom_smem_probe()
715 smem->num_regions = num_regions; in qcom_smem_probe()
717 ret = qcom_smem_map_memory(smem, &pdev->dev, "memory-region", 0); in qcom_smem_probe()
721 if (num_regions > 1 && (ret = qcom_smem_map_memory(smem, &pdev->dev, in qcom_smem_probe()
725 header = smem->regions[0].virt_base; in qcom_smem_probe()
732 version = qcom_smem_get_sbl_version(smem); in qcom_smem_probe()
738 ret = qcom_smem_enumerate_partitions(smem, SMEM_HOST_APPS); in qcom_smem_probe()
748 smem->hwlock = hwspin_lock_request_specific(hwlock_id); in qcom_smem_probe()
749 if (!smem->hwlock) in qcom_smem_probe()
752 __smem = smem; in qcom_smem_probe()