On Wed 22 Jan 14:56 PST 2020, rishabhb@xxxxxxxxxxxxxx wrote:Yes, the clients are spread around in different drivers currently.
On 2019-12-26 21:32, Bjorn Andersson wrote:[..]
> diff --git a/drivers/remoteproc/qcom_pil_info.c
> +static int pil_reloc_probe(struct platform_device *pdev)
> +{
> + struct pil_reloc *reloc;
> +
> + reloc = devm_kzalloc(&pdev->dev, sizeof(*reloc), GFP_KERNEL);
> + if (!reloc)
> + return -ENOMEM;
> +
> + reloc->dev = &pdev->dev;
> + reloc->map = syscon_node_to_regmap(pdev->dev.parent->of_node);
If there are multiple entries like "pil-reloc" in the imem node
mapping the entire imem multiple times may not work. Is there a way
we can somehow just iomap the required region for pil?
With the entire imem being represented as a syscon this will be
ioremapped once and all callers of syscon_node_to_regmap() (or one of
the other syscon getters) will get a regmap back that reference this one
mapping.
So doing it this way allow us to "map" sections of imem that is smaller
than PAGE_SIZE.
That said, it means that all imem users/clients should access imem
through this syscon regmap.
Regards,
Bjorn