On Tue 08 Mar 09:25 PST 2022, Drew Fustini wrote: > From: Suman Anna <s-anna@xxxxxx> > > The rproc_da_to_va() API is an exported function, so move its > declaration from the remoteproc local remoteproc_internal.h > to the public remoteproc.h file. > > This will allow drivers outside of the remoteproc folder to be > able to use this API. > Can you explain why drivers outside of the remoteproc folder should be able to poke straight into the memory of the remoteproc? Your reasoning makes sense, but we've on purpose kept it out of remoteproc.h because no one has had a proper reason for it and I sense that we might open the door for some new creative solutions... Regards, Bjorn > Signed-off-by: Suman Anna <s-anna@xxxxxx> > Signed-off-by: Dave Gerlach <d-gerlach@xxxxxx> > [adjusted line numbers to apply] > Signed-off-by: Drew Fustini <dfustini@xxxxxxxxxxxx> > --- > Note: I previously posted this patch as part of a series: > [PATCH 00/11] soc: ti: wkup_m3_ipc: support vtt toggle, io isolation & voltage scaling > https://lore.kernel.org/linux-omap/20220219215328.485660-1-dfustini@xxxxxxxxxxxx/ > > I was advised to break that series up into smaller pieces, so I am > submitting this patch individually. I will in the future post a series > to support i2c voltage scaling which will utilize rproc_da_to_va() from > drivers/soc/ti/wkup_m3_ipc.c > > drivers/remoteproc/remoteproc_internal.h | 1 - > include/linux/remoteproc.h | 1 + > 2 files changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h > index a328e634b1de..72d4d3d7d94d 100644 > --- a/drivers/remoteproc/remoteproc_internal.h > +++ b/drivers/remoteproc/remoteproc_internal.h > @@ -84,7 +84,6 @@ static inline void rproc_char_device_remove(struct rproc *rproc) > void rproc_free_vring(struct rproc_vring *rvring); > int rproc_alloc_vring(struct rproc_vdev *rvdev, int i); > > -void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem); > phys_addr_t rproc_va_to_pa(void *cpu_addr); > int rproc_trigger_recovery(struct rproc *rproc); > > diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h > index e0600e1e5c17..cc9dc9aef0c0 100644 > --- a/include/linux/remoteproc.h > +++ b/include/linux/remoteproc.h > @@ -673,6 +673,7 @@ void rproc_shutdown(struct rproc *rproc); > int rproc_detach(struct rproc *rproc); > int rproc_set_firmware(struct rproc *rproc, const char *fw_name); > void rproc_report_crash(struct rproc *rproc, enum rproc_crash_type type); > +void *rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem); > void rproc_coredump_using_sections(struct rproc *rproc); > int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size); > int rproc_coredump_add_custom_segment(struct rproc *rproc, > -- > 2.32.0 >