lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZH4aywQoA9gy2OWU@p14s>
Date:   Mon, 5 Jun 2023 11:26:35 -0600
From:   Mathieu Poirier <mathieu.poirier@...aro.org>
To:     MD Danish Anwar <danishanwar@...com>
Cc:     Bjorn Andersson <andersson@...nel.org>, rogerq@...nel.org,
        vigneshr@...org, nm@...com, srk@...com,
        linux-kernel@...r.kernel.org, linux-remoteproc@...r.kernel.org,
        linux-omap@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH] remoteproc: pru: add support for configuring GPMUX based
 on client setup

Hi MD,

On Thu, Jun 01, 2023 at 04:29:04PM +0530, MD Danish Anwar wrote:
> From: Tero Kristo <t-kristo@...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@...com>
> Signed-off-by: Suman Anna <s-anna@...com>
> Signed-off-by: MD Danish Anwar <danishanwar@...com>
> ---
>  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...

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.

Thanks,
Mathieu

>  	ret = of_property_read_string_index(np, "firmware-name", index,
>  					    &fw_name);
>  	if (!ret) {
> @@ -290,6 +309,8 @@ 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);
>  
>  	mutex_lock(&pru->lock);
> -- 
> 2.34.1
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ