lkml.org 
[lkml]   [2022]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v5 6/6] remoteproc: pru: add support for configuring GPMUX based on client setup
On Tue, Jun 07, 2022 at 10:26:50AM +0530, Puranjay Mohan wrote:
> From: Tero Kristo <t-kristo@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@ti.com>
> [s-anna@ti.com: simplify the pru id usage]
> Signed-off-by: Suman Anna <s-anna@ti.com>
> Signed-off-by: Puranjay Mohan <p-mohan@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.

> mutex_lock(&pru->lock);
> --
> 2.17.1
>

\
 
 \ /
  Last update: 2022-07-19 18:17    [W:0.263 / U:0.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site