[PATCH v5 6/6] remoteproc: pru: add support for configuring GPMUX based on client setup
Mathieu Poirier
mathieu.poirier at linaro.org
Tue Sep 6 12:29:49 PDT 2022
Good day,
On Mon, Sep 05, 2022 at 02:41:27PM +0530, Md Danish Anwar wrote:
> Hi Mathieu,
>
> On 19/07/22 21:46, Mathieu Poirier wrote:
> > On Tue, Jun 07, 2022 at 10:26:50AM +0530, Puranjay Mohan wrote:
> >> From: Tero Kristo <t-kristo at ti.com>
> >>
> >> Client device node property ti,pruss-gp-mux-sel can now be used to
> >> configure the GPMUX config value for PRU.
> >>
> >> Signed-off-by: Tero Kristo <t-kristo at ti.com>
> >> [s-anna at ti.com: simplify the pru id usage]
> >> Signed-off-by: Suman Anna <s-anna at ti.com>
> >> Signed-off-by: Puranjay Mohan <p-mohan at ti.com>
> >> ---
> >> V4->v5
> >> * This patch was included in v4 and had some checkpatch errors that have
> >> been resolved in v5
> >> ---
> >> drivers/remoteproc/pru_rproc.c | 20 ++++++++++++++++++++
> >> 1 file changed, 20 insertions(+)
> >>
> >> diff --git a/drivers/remoteproc/pru_rproc.c b/drivers/remoteproc/pru_rproc.c
> >> index 2977eb50631b..f2c6c55f0f20 100644
> >> --- a/drivers/remoteproc/pru_rproc.c
> >> +++ b/drivers/remoteproc/pru_rproc.c
> >> @@ -123,6 +123,7 @@ struct pru_private_data {
> >> * @dbg_single_step: debug state variable to set PRU into single step mode
> >> * @dbg_continuous: debug state variable to restore PRU execution mode
> >> * @evt_count: number of mapped events
> >> + * @gpmux_save: saved value for gpmux config
> >> */
> >> struct pru_rproc {
> >> int id;
> >> @@ -141,6 +142,7 @@ struct pru_rproc {
> >> u32 dbg_single_step;
> >> u32 dbg_continuous;
> >> u8 evt_count;
> >> + u8 gpmux_save;
> >> };
> >>
> >> static inline u32 pru_control_read_reg(struct pru_rproc *pru, unsigned int reg)
> >> @@ -250,6 +252,7 @@ struct rproc *pru_rproc_get(struct device_node *np, int index,
> >> struct device *dev;
> >> const char *fw_name;
> >> int ret;
> >> + u32 mux;
> >>
> >> try_module_get(THIS_MODULE);
> >>
> >> @@ -273,6 +276,22 @@ struct rproc *pru_rproc_get(struct device_node *np, int index,
> >>
> >> mutex_unlock(&pru->lock);
> >>
> >> + ret = pruss_cfg_get_gpmux(pru->pruss, pru->id, &pru->gpmux_save);
> >> + if (ret) {
> >> + dev_err(dev, "failed to get cfg gpmux: %d\n", ret);
> >> + goto err;
> >> + }
> >> +
> >> + ret = of_property_read_u32_index(np, "ti,pruss-gp-mux-sel", index,
> >> + &mux);
> >> + if (!ret) {
> >> + ret = pruss_cfg_set_gpmux(pru->pruss, pru->id, mux);
> >> + if (ret) {
> >> + dev_err(dev, "failed to set cfg gpmux: %d\n", ret);
> >> + goto err;
> >> + }
> >> + }
> >> +
> >> if (pru_id)
> >> *pru_id = pru->id;
> >>
> >> @@ -310,6 +329,7 @@ void pru_rproc_put(struct rproc *rproc)
> >>
> >> pru = rproc->priv;
> >>
> >> + pruss_cfg_set_gpmux(pru->pruss, pru->id, pru->gpmux_save);
> >> pru_rproc_set_firmware(rproc, NULL);
> >>
> >
> > CC drivers/remoteproc/pru_rproc.o
> > /home/mpoirier/work/remoteproc/kernel-review/drivers/remoteproc/pru_rproc.c: In function ‘pru_rproc_get’:
> > /home/mpoirier/work/remoteproc/kernel-review/drivers/remoteproc/pru_rproc.c:279:8: error: implicit declaration of function ‘pruss_cfg_get_gpmux’ [-Werror=implicit-function-declaration]
> > 279 | ret = pruss_cfg_get_gpmux(pru->pruss, pru->id, &pru->gpmux_save);
> > | ^~~~~~~~~~~~~~~~~~~
> > /home/mpoirier/work/remoteproc/kernel-review/drivers/remoteproc/pru_rproc.c:288:9: error: implicit declaration of function ‘pruss_cfg_set_gpmux’ [-Werror=implicit-function-declaration]
> > 288 | ret = pruss_cfg_set_gpmux(pru->pruss, pru->id, mux);
> > | ^~~~~~~~~~~~~~~~~~~
> >
> > I get this on both rproc-next and today's linux next.
>
> This patch is dependent on the series [2] Introduce PRU platform consumer API
> https://patchwork.kernel.org/project/linux-remoteproc/cover/20220406094358.7895-1-p-mohan@ti.com/
> as the api pruss_cfg_get_gpmux calls the api pruss_cfg_read and the api
> pruss_cfg_set_gpmux calls the api pruss_cfg_update which are implemented by the
> patch "soc: ti: pruss: Add pruss_cfg_read()/update() API" in the above series.
>
What I read from the cover letter is that the series you are referring to was an
RFC that predated this series. Also from the cover letter, the second paragraph
clearly indicate that two other series _depend_ on this series. As such there
was no way for me to identify the dependency.
> This error is coming as the dependent patch needs the patch "soc: ti: pruss:
> Add pruss_cfg_read()/update() API" to be applied for compilation.
Please provide a link when referencing patchsets. That way we know exactly
which one we are talking about.
>
> Thanks,
> Danish.
>
> >
> >> mutex_lock(&pru->lock);
> >> --
> >> 2.17.1
> >>
More information about the linux-arm-kernel
mailing list