All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Alex Elder <elder@linaro.org>
Cc: davem@davemloft.net, evgreen@chromium.org,
	subashab@codeaurora.org, cpratapa@codeaurora.org,
	agross@kernel.org, robh+dt@kernel.org, netdev@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v2 2/4] net: ipa: redefine struct ipa_mem_data
Date: Mon, 4 May 2020 11:31:31 -0700	[thread overview]
Message-ID: <20200504183131.GE20625@builder.lan> (raw)
In-Reply-To: <20200504175859.22606-3-elder@linaro.org>

On Mon 04 May 10:58 PDT 2020, Alex Elder wrote:

> The ipa_mem_data structure type was never actually used.  Instead,
> the IPA memory regions were defined using the ipa_mem structure.
> 
> Redefine struct ipa_mem_data so it encapsulates the array of IPA-local
> memory region descriptors along with the count of entries in that
> array.  Pass just an ipa_mem structure pointer to ipa_mem_init().
> 
> Rename the ipa_mem_data[] array ipa_mem_local_data[] to emphasize
> that the memory regions it defines are IPA-local memory.
> 
> Signed-off-by: Alex Elder <elder@linaro.org>

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>

Regards,
Bjorn

> ---
>  drivers/net/ipa/ipa_data-sc7180.c | 10 +++++++---
>  drivers/net/ipa/ipa_data-sdm845.c | 10 +++++++---
>  drivers/net/ipa/ipa_data.h        | 13 +++++--------
>  drivers/net/ipa/ipa_main.c        |  2 +-
>  drivers/net/ipa/ipa_mem.c         |  9 +++++----
>  drivers/net/ipa/ipa_mem.h         |  3 ++-
>  6 files changed, 27 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/net/ipa/ipa_data-sc7180.c b/drivers/net/ipa/ipa_data-sc7180.c
> index 042b5fc3c135..f97e7e4e61c1 100644
> --- a/drivers/net/ipa/ipa_data-sc7180.c
> +++ b/drivers/net/ipa/ipa_data-sc7180.c
> @@ -193,7 +193,7 @@ static const struct ipa_resource_data ipa_resource_data = {
>  };
>  
>  /* IPA-resident memory region configuration for the SC7180 SoC. */
> -static const struct ipa_mem ipa_mem_data[] = {
> +static const struct ipa_mem ipa_mem_local_data[] = {
>  	[IPA_MEM_UC_SHARED] = {
>  		.offset		= 0x0000,
>  		.size		= 0x0080,
> @@ -296,12 +296,16 @@ static const struct ipa_mem ipa_mem_data[] = {
>  	},
>  };
>  
> +static struct ipa_mem_data ipa_mem_data = {
> +	.local_count	= ARRAY_SIZE(ipa_mem_local_data),
> +	.local		= ipa_mem_local_data,
> +};
> +
>  /* Configuration data for the SC7180 SoC. */
>  const struct ipa_data ipa_data_sc7180 = {
>  	.version	= IPA_VERSION_4_2,
>  	.endpoint_count	= ARRAY_SIZE(ipa_gsi_endpoint_data),
>  	.endpoint_data	= ipa_gsi_endpoint_data,
>  	.resource_data	= &ipa_resource_data,
> -	.mem_count	= ARRAY_SIZE(ipa_mem_data),
> -	.mem_data	= ipa_mem_data,
> +	.mem_data	= &ipa_mem_data,
>  };
> diff --git a/drivers/net/ipa/ipa_data-sdm845.c b/drivers/net/ipa/ipa_data-sdm845.c
> index 0d9c36e1e806..c55507e94559 100644
> --- a/drivers/net/ipa/ipa_data-sdm845.c
> +++ b/drivers/net/ipa/ipa_data-sdm845.c
> @@ -235,7 +235,7 @@ static const struct ipa_resource_data ipa_resource_data = {
>  };
>  
>  /* IPA-resident memory region configuration for the SDM845 SoC. */
> -static const struct ipa_mem ipa_mem_data[] = {
> +static const struct ipa_mem ipa_mem_local_data[] = {
>  	[IPA_MEM_UC_SHARED] = {
>  		.offset		= 0x0000,
>  		.size		= 0x0080,
> @@ -318,12 +318,16 @@ static const struct ipa_mem ipa_mem_data[] = {
>  	},
>  };
>  
> +static struct ipa_mem_data ipa_mem_data = {
> +	.local_count	= ARRAY_SIZE(ipa_mem_local_data),
> +	.local		= ipa_mem_local_data,
> +};
> +
>  /* Configuration data for the SDM845 SoC. */
>  const struct ipa_data ipa_data_sdm845 = {
>  	.version	= IPA_VERSION_3_5_1,
>  	.endpoint_count	= ARRAY_SIZE(ipa_gsi_endpoint_data),
>  	.endpoint_data	= ipa_gsi_endpoint_data,
>  	.resource_data	= &ipa_resource_data,
> -	.mem_count	= ARRAY_SIZE(ipa_mem_data),
> -	.mem_data	= ipa_mem_data,
> +	.mem_data	= &ipa_mem_data,
>  };
> diff --git a/drivers/net/ipa/ipa_data.h b/drivers/net/ipa/ipa_data.h
> index 7110de2de817..51d8e5a6f23a 100644
> --- a/drivers/net/ipa/ipa_data.h
> +++ b/drivers/net/ipa/ipa_data.h
> @@ -246,14 +246,12 @@ struct ipa_resource_data {
>  
>  /**
>   * struct ipa_mem - IPA-local memory region description
> - * @offset:		offset in IPA memory space to base of the region
> - * @size:		size in bytes base of the region
> - * @canary_count:	number of 32-bit "canary" values that precede region
> + * @local_count:	number of regions defined in the local[] array
> + * @local:		array of IPA-local memory region descriptors
>   */
>  struct ipa_mem_data {
> -	u32 offset;
> -	u16 size;
> -	u16 canary_count;
> +	u32 local_count;
> +	const struct ipa_mem *local;
>  };
>  
>  /**
> @@ -270,8 +268,7 @@ struct ipa_data {
>  	u32 endpoint_count;	/* # entries in endpoint_data[] */
>  	const struct ipa_gsi_endpoint_data *endpoint_data;
>  	const struct ipa_resource_data *resource_data;
> -	u32 mem_count;		/* # entries in mem_data[] */
> -	const struct ipa_mem *mem_data;
> +	const struct ipa_mem_data *mem_data;
>  };
>  
>  extern const struct ipa_data ipa_data_sdm845;
> diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c
> index 28998dcce3d2..9295a9122e8e 100644
> --- a/drivers/net/ipa/ipa_main.c
> +++ b/drivers/net/ipa/ipa_main.c
> @@ -778,7 +778,7 @@ static int ipa_probe(struct platform_device *pdev)
>  	if (ret)
>  		goto err_kfree_ipa;
>  
> -	ret = ipa_mem_init(ipa, data->mem_count, data->mem_data);
> +	ret = ipa_mem_init(ipa, data->mem_data);
>  	if (ret)
>  		goto err_reg_exit;
>  
> diff --git a/drivers/net/ipa/ipa_mem.c b/drivers/net/ipa/ipa_mem.c
> index 42d2c29d9f0c..fb4de2a12796 100644
> --- a/drivers/net/ipa/ipa_mem.c
> +++ b/drivers/net/ipa/ipa_mem.c
> @@ -12,6 +12,7 @@
>  
>  #include "ipa.h"
>  #include "ipa_reg.h"
> +#include "ipa_data.h"
>  #include "ipa_cmd.h"
>  #include "ipa_mem.h"
>  #include "ipa_data.h"
> @@ -266,15 +267,15 @@ int ipa_mem_zero_modem(struct ipa *ipa)
>  }
>  
>  /* Perform memory region-related initialization */
> -int ipa_mem_init(struct ipa *ipa, u32 count, const struct ipa_mem *mem)
> +int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data)
>  {
>  	struct device *dev = &ipa->pdev->dev;
>  	struct resource *res;
>  	int ret;
>  
> -	if (count > IPA_MEM_COUNT) {
> +	if (mem_data->local_count > IPA_MEM_COUNT) {
>  		dev_err(dev, "to many memory regions (%u > %u)\n",
> -			count, IPA_MEM_COUNT);
> +			mem_data->local_count, IPA_MEM_COUNT);
>  		return -EINVAL;
>  	}
>  
> @@ -302,7 +303,7 @@ int ipa_mem_init(struct ipa *ipa, u32 count, const struct ipa_mem *mem)
>  	ipa->mem_size = resource_size(res);
>  
>  	/* The ipa->mem[] array is indexed by enum ipa_mem_id values */
> -	ipa->mem = mem;
> +	ipa->mem = mem_data->local;
>  
>  	return 0;
>  }
> diff --git a/drivers/net/ipa/ipa_mem.h b/drivers/net/ipa/ipa_mem.h
> index 065cb499ebe5..f99180f84f0d 100644
> --- a/drivers/net/ipa/ipa_mem.h
> +++ b/drivers/net/ipa/ipa_mem.h
> @@ -7,6 +7,7 @@
>  #define _IPA_MEM_H_
>  
>  struct ipa;
> +struct ipa_mem_data;
>  
>  /**
>   * DOC: IPA Local Memory
> @@ -84,7 +85,7 @@ void ipa_mem_teardown(struct ipa *ipa);
>  
>  int ipa_mem_zero_modem(struct ipa *ipa);
>  
> -int ipa_mem_init(struct ipa *ipa, u32 count, const struct ipa_mem *mem);
> +int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data);
>  void ipa_mem_exit(struct ipa *ipa);
>  
>  #endif /* _IPA_MEM_H_ */
> -- 
> 2.20.1
> 

  reply	other threads:[~2020-05-04 18:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-04 17:58 [PATCH net-next v2 0/4] net: ipa: I/O map SMEM and IMEM Alex Elder
2020-05-04 17:58 ` [PATCH net-next v2 1/4] dt-bindings: net: add IPA iommus property Alex Elder
2020-05-04 18:30   ` Bjorn Andersson
2020-05-04 18:52   ` Rob Herring
2020-05-04 17:58 ` [PATCH net-next v2 2/4] net: ipa: redefine struct ipa_mem_data Alex Elder
2020-05-04 18:31   ` Bjorn Andersson [this message]
2020-05-04 17:58 ` [PATCH net-next v2 3/4] net: ipa: define IMEM memory region for IPA Alex Elder
2020-05-04 18:28   ` Bjorn Andersson
2020-05-04 17:58 ` [PATCH net-next v2 4/4] net: ipa: define SMEM " Alex Elder
2020-05-04 18:27 ` [PATCH net-next v2 0/4] net: ipa: I/O map SMEM and IMEM David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200504183131.GE20625@builder.lan \
    --to=bjorn.andersson@linaro.org \
    --cc=agross@kernel.org \
    --cc=cpratapa@codeaurora.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=elder@linaro.org \
    --cc=evgreen@chromium.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=subashab@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.