Loading drivers/soc/qcom/peripheral-loader.c +17 −10 Original line number Diff line number Diff line Loading @@ -510,6 +510,22 @@ static void pil_release_mmap(struct pil_desc *desc) struct pil_priv *priv = desc->priv; struct pil_seg *p, *tmp; u64 zero = 0ULL; if (priv->info) { __iowrite32_copy(&priv->info->start, &zero, sizeof(zero) / 4); writel_relaxed(0, &priv->info->size); } list_for_each_entry_safe(p, tmp, &priv->segs, list) { list_del(&p->list); kfree(p); } } static void pil_clear_segment(struct pil_desc *desc) { struct pil_priv *priv = desc->priv; u8 __iomem *buf; struct pil_map_fw_info map_fw_info = { Loading @@ -528,16 +544,6 @@ static void pil_release_mmap(struct pil_desc *desc) desc->unmap_fw_mem(buf, (priv->region_end - priv->region_start), map_data); if (priv->info) { __iowrite32_copy(&priv->info->start, &zero, sizeof(zero) / 4); writel_relaxed(0, &priv->info->size); } list_for_each_entry_safe(p, tmp, &priv->segs, list) { list_del(&p->list); kfree(p); } } #define IOMAP_SIZE SZ_1M Loading Loading @@ -766,6 +772,7 @@ out: &desc->attrs); priv->region = NULL; } pil_clear_segment(desc); pil_release_mmap(desc); } return ret; Loading Loading
drivers/soc/qcom/peripheral-loader.c +17 −10 Original line number Diff line number Diff line Loading @@ -510,6 +510,22 @@ static void pil_release_mmap(struct pil_desc *desc) struct pil_priv *priv = desc->priv; struct pil_seg *p, *tmp; u64 zero = 0ULL; if (priv->info) { __iowrite32_copy(&priv->info->start, &zero, sizeof(zero) / 4); writel_relaxed(0, &priv->info->size); } list_for_each_entry_safe(p, tmp, &priv->segs, list) { list_del(&p->list); kfree(p); } } static void pil_clear_segment(struct pil_desc *desc) { struct pil_priv *priv = desc->priv; u8 __iomem *buf; struct pil_map_fw_info map_fw_info = { Loading @@ -528,16 +544,6 @@ static void pil_release_mmap(struct pil_desc *desc) desc->unmap_fw_mem(buf, (priv->region_end - priv->region_start), map_data); if (priv->info) { __iowrite32_copy(&priv->info->start, &zero, sizeof(zero) / 4); writel_relaxed(0, &priv->info->size); } list_for_each_entry_safe(p, tmp, &priv->segs, list) { list_del(&p->list); kfree(p); } } #define IOMAP_SIZE SZ_1M Loading Loading @@ -766,6 +772,7 @@ out: &desc->attrs); priv->region = NULL; } pil_clear_segment(desc); pil_release_mmap(desc); } return ret; Loading