Hi Mathieu, On 05/06/23 10:56 pm, Mathieu Poirier wrote: > Hi MD, > > On Thu, Jun 01, 2023 at 04:29:04PM +0530, MD Danish Anwar wrote: >> From: Tero Kristo <t-kristo@xxxxxx> >> >> 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@xxxxxx> >> Signed-off-by: Suman Anna <s-anna@xxxxxx> >> Signed-off-by: MD Danish Anwar <danishanwar@xxxxxx> >> --- >> drivers/remoteproc/pru_rproc.c | 21 +++++++++++++++++++++ >> 1 file changed, 21 insertions(+) >> >> diff --git a/drivers/remoteproc/pru_rproc.c b/drivers/remoteproc/pru_rproc.c >> index 2874c8d324f7..29d3a5a930c1 100644 >> --- a/drivers/remoteproc/pru_rproc.c >> +++ b/drivers/remoteproc/pru_rproc.c >> @@ -109,6 +109,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; >> @@ -127,6 +128,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) >> @@ -228,6 +230,7 @@ struct rproc *pru_rproc_get(struct device_node *np, int index, >> struct device *dev; >> const char *fw_name; >> int ret; >> + u32 mux; >> >> rproc = __pru_rproc_get(np, index); >> if (IS_ERR(rproc)) >> @@ -252,6 +255,22 @@ struct rproc *pru_rproc_get(struct device_node *np, int index, >> if (pru_id) >> *pru_id = pru->id; >> >> + 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; >> + } >> + } >> + > > It would have been nice to be told in a cover letter that pruss_cfg_get_gpmux() > is in linux-next so that I don't have to go fish for it... > My bad, I should have mentioned it. This patch depends on the soc: ti: pruss series [1] which is merged to Nishant's tree and is part of 'linux-next' but this isn't yet part of mainline linux. > I am fine with the code in this patch, though the changelog is cryptic and could > be enhanced to say "why" this is needed. The above could use some comments to > make sure people looking at this code understand that an error from > of_property_read_u32_index() is acceptable for backward compatibility. > > Here I have to suppose pruss_cfg_get_gpmux() has been added to Nishanth's tree. > As such the only way for me to apply your patch is if Nishanth sends me a pull > request for the patchset that introduced pruss_cfg_get_gpmux(). You can also > resend this in the next cycle. I will fix the changelog and send the next revision in the next cycle. > > Thanks, > Mathieu > [1] https://lore.kernel.org/all/20230414045542.3249939-1-danishanwar@xxxxxx/ -- Thanks and Regards, Danish.