public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] net: ipa: support COMPILE_TEST
@ 2021-01-06  2:38 Alex Elder
  2021-01-06  2:38 ` [PATCH net-next 1/3] remoteproc: qcom: expose types for COMPILE_TEST Alex Elder
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Alex Elder @ 2021-01-06  2:38 UTC (permalink / raw)
  To: davem, kuba, bjorn.andersson, agross, ohad
  Cc: evgreen, cpratapa, subashab, netdev, linux-arm-msm,
	linux-remoteproc, linux-kernel

This series adds the IPA driver as a possible target when
the COMPILE_TEST configuration is enabled.  Two small changes to
dependent subsystems needed to be made for this to work.

David/Jakub, it would be best to take all three of these patches
through the same tree.  I have discussed this with Bjorn and he
agreed to ack them, and I request that you take them through
net-next.

Thanks.

					-Alex

Alex Elder (3):
  remoteproc: qcom: expose types for COMPILE_TEST
  soc: qcom: mdt_loader: define stubs for COMPILE_TEST
  net: ipa: support COMPILE_TEST

 drivers/net/ipa/Kconfig               | 10 +++++---
 include/linux/remoteproc/qcom_rproc.h |  4 +--
 include/linux/soc/qcom/mdt_loader.h   | 35 +++++++++++++++++++++++++++
 3 files changed, 43 insertions(+), 6 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next 1/3] remoteproc: qcom: expose types for COMPILE_TEST
  2021-01-06  2:38 [PATCH net-next 0/3] net: ipa: support COMPILE_TEST Alex Elder
@ 2021-01-06  2:38 ` Alex Elder
  2021-01-06 18:47   ` Bjorn Andersson
  2021-01-06  2:38 ` [PATCH net-next 2/3] soc: qcom: mdt_loader: define stubs " Alex Elder
  2021-01-06  2:38 ` [PATCH net-next 3/3] net: ipa: support COMPILE_TEST Alex Elder
  2 siblings, 1 reply; 6+ messages in thread
From: Alex Elder @ 2021-01-06  2:38 UTC (permalink / raw)
  To: bjorn.andersson, agross, ohad
  Cc: davem, kuba, evgreen, cpratapa, subashab, netdev, linux-arm-msm,
	linux-remoteproc, linux-kernel

Stub functions are defined for SSR notifier registration in case
QCOM_RPROC_COMMON is not configured.  As a result, code that uses
these functions can link successfully even if the common remoteproc
code is not built.

Code that registers an SSR notifier function likely needs the
types defined in "qcom_rproc.h", but those are only exposed if
QCOM_RPROC_COMMON is enabled.

Rearrange the conditional definition so the qcom_ssr_notify_data
structure and qcom_ssr_notify_type enumerated type are defined
whether or not QCOM_RPROC_COMMON is enabled.

Signed-off-by: Alex Elder <elder@linaro.org>
---
 include/linux/remoteproc/qcom_rproc.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/remoteproc/qcom_rproc.h b/include/linux/remoteproc/qcom_rproc.h
index 6470516621749..82b211518136e 100644
--- a/include/linux/remoteproc/qcom_rproc.h
+++ b/include/linux/remoteproc/qcom_rproc.h
@@ -3,8 +3,6 @@
 
 struct notifier_block;
 
-#if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
-
 /**
  * enum qcom_ssr_notify_type - Startup/Shutdown events related to a remoteproc
  * processor.
@@ -26,6 +24,8 @@ struct qcom_ssr_notify_data {
 	bool crashed;
 };
 
+#if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
+
 void *qcom_register_ssr_notifier(const char *name, struct notifier_block *nb);
 int qcom_unregister_ssr_notifier(void *notify, struct notifier_block *nb);
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 2/3] soc: qcom: mdt_loader: define stubs for COMPILE_TEST
  2021-01-06  2:38 [PATCH net-next 0/3] net: ipa: support COMPILE_TEST Alex Elder
  2021-01-06  2:38 ` [PATCH net-next 1/3] remoteproc: qcom: expose types for COMPILE_TEST Alex Elder
@ 2021-01-06  2:38 ` Alex Elder
  2021-01-06 18:47   ` Bjorn Andersson
  2021-01-06  2:38 ` [PATCH net-next 3/3] net: ipa: support COMPILE_TEST Alex Elder
  2 siblings, 1 reply; 6+ messages in thread
From: Alex Elder @ 2021-01-06  2:38 UTC (permalink / raw)
  To: bjorn.andersson, agross
  Cc: davem, kuba, ohad, evgreen, cpratapa, subashab, netdev,
	linux-arm-msm, linux-remoteproc, linux-kernel

Define stub functions for the exposed MDT functions in case
QCOM_MDT_LOADER is not configured.  This allows users of these
functions to link correctly for COMPILE_TEST builds without
QCOM_SCM enabled.

Signed-off-by: Alex Elder <elder@linaro.org>
---
 include/linux/soc/qcom/mdt_loader.h | 35 +++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/mdt_loader.h
index e600baec68253..afd47217996b0 100644
--- a/include/linux/soc/qcom/mdt_loader.h
+++ b/include/linux/soc/qcom/mdt_loader.h
@@ -11,6 +11,8 @@
 struct device;
 struct firmware;
 
+#if IS_ENABLED(CONFIG_QCOM_MDT_LOADER)
+
 ssize_t qcom_mdt_get_size(const struct firmware *fw);
 int qcom_mdt_load(struct device *dev, const struct firmware *fw,
 		  const char *fw_name, int pas_id, void *mem_region,
@@ -23,4 +25,37 @@ int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw,
 			  phys_addr_t *reloc_base);
 void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len);
 
+#else /* !IS_ENABLED(CONFIG_QCOM_MDT_LOADER) */
+
+static inline ssize_t qcom_mdt_get_size(const struct firmware *fw)
+{
+	return -ENODEV;
+}
+
+static inline int qcom_mdt_load(struct device *dev, const struct firmware *fw,
+				const char *fw_name, int pas_id,
+				void *mem_region, phys_addr_t mem_phys,
+				size_t mem_size, phys_addr_t *reloc_base)
+{
+	return -ENODEV;
+}
+
+static inline int qcom_mdt_load_no_init(struct device *dev,
+					const struct firmware *fw,
+					const char *fw_name, int pas_id,
+					void *mem_region, phys_addr_t mem_phys,
+					size_t mem_size,
+					phys_addr_t *reloc_base)
+{
+	return -ENODEV;
+}
+
+static inline void *qcom_mdt_read_metadata(const struct firmware *fw,
+					   size_t *data_len)
+{
+	return ERR_PTR(-ENODEV);
+}
+
+#endif /* !IS_ENABLED(CONFIG_QCOM_MDT_LOADER) */
+
 #endif
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net-next 3/3] net: ipa: support COMPILE_TEST
  2021-01-06  2:38 [PATCH net-next 0/3] net: ipa: support COMPILE_TEST Alex Elder
  2021-01-06  2:38 ` [PATCH net-next 1/3] remoteproc: qcom: expose types for COMPILE_TEST Alex Elder
  2021-01-06  2:38 ` [PATCH net-next 2/3] soc: qcom: mdt_loader: define stubs " Alex Elder
@ 2021-01-06  2:38 ` Alex Elder
  2 siblings, 0 replies; 6+ messages in thread
From: Alex Elder @ 2021-01-06  2:38 UTC (permalink / raw)
  To: davem, kuba
  Cc: bjorn.andersson, agross, ohad, evgreen, cpratapa, subashab,
	netdev, linux-arm-msm, linux-remoteproc, linux-kernel

Arrange for the IPA driver to be built when COMPILE_TEST is enabled.

Update the help text to reflect that we support two Qualcomm SoCs.

Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Alex Elder <elder@linaro.org>
---
 drivers/net/ipa/Kconfig | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ipa/Kconfig b/drivers/net/ipa/Kconfig
index 9f0d2a93379c5..10a0e041ee775 100644
--- a/drivers/net/ipa/Kconfig
+++ b/drivers/net/ipa/Kconfig
@@ -1,9 +1,10 @@
 config QCOM_IPA
 	tristate "Qualcomm IPA support"
-	depends on ARCH_QCOM && 64BIT && NET
-	depends on QCOM_Q6V5_MSS
+	depends on 64BIT && NET
+	depends on ARCH_QCOM || COMPILE_TEST
+	depends on QCOM_RPROC_COMMON || (QCOM_RPROC_COMMON=n && COMPILE_TEST)
+	select QCOM_MDT_LOADER if ARCH_QCOM
 	select QCOM_QMI_HELPERS
-	select QCOM_MDT_LOADER
 	help
 	  Choose Y or M here to include support for the Qualcomm
 	  IP Accelerator (IPA), a hardware block present in some
@@ -11,7 +12,8 @@ config QCOM_IPA
 	  that is capable of generic hardware handling of IP packets,
 	  including routing, filtering, and NAT.  Currently the IPA
 	  driver supports only basic transport of network traffic
-	  between the AP and modem, on the Qualcomm SDM845 SoC.
+	  between the AP and modem, on the Qualcomm SDM845 and SC7180
+	  SoCs.
 
 	  Note that if selected, the selection type must match that
 	  of QCOM_Q6V5_COMMON (Y or M).
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 1/3] remoteproc: qcom: expose types for COMPILE_TEST
  2021-01-06  2:38 ` [PATCH net-next 1/3] remoteproc: qcom: expose types for COMPILE_TEST Alex Elder
@ 2021-01-06 18:47   ` Bjorn Andersson
  0 siblings, 0 replies; 6+ messages in thread
From: Bjorn Andersson @ 2021-01-06 18:47 UTC (permalink / raw)
  To: Alex Elder
  Cc: agross, ohad, davem, kuba, evgreen, cpratapa, subashab, netdev,
	linux-arm-msm, linux-remoteproc, linux-kernel

On Tue 05 Jan 20:38 CST 2021, Alex Elder wrote:

> Stub functions are defined for SSR notifier registration in case
> QCOM_RPROC_COMMON is not configured.  As a result, code that uses
> these functions can link successfully even if the common remoteproc
> code is not built.
> 
> Code that registers an SSR notifier function likely needs the
> types defined in "qcom_rproc.h", but those are only exposed if
> QCOM_RPROC_COMMON is enabled.
> 
> Rearrange the conditional definition so the qcom_ssr_notify_data
> structure and qcom_ssr_notify_type enumerated type are defined
> whether or not QCOM_RPROC_COMMON is enabled.
> 

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

@Jakub, @Dave, as this is a prerequisite for allowing IPA to be compile
tested feel free to merge it together with patch 3.

Regards,
Bjorn

> Signed-off-by: Alex Elder <elder@linaro.org>
> ---
>  include/linux/remoteproc/qcom_rproc.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/remoteproc/qcom_rproc.h b/include/linux/remoteproc/qcom_rproc.h
> index 6470516621749..82b211518136e 100644
> --- a/include/linux/remoteproc/qcom_rproc.h
> +++ b/include/linux/remoteproc/qcom_rproc.h
> @@ -3,8 +3,6 @@
>  
>  struct notifier_block;
>  
> -#if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
> -
>  /**
>   * enum qcom_ssr_notify_type - Startup/Shutdown events related to a remoteproc
>   * processor.
> @@ -26,6 +24,8 @@ struct qcom_ssr_notify_data {
>  	bool crashed;
>  };
>  
> +#if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
> +
>  void *qcom_register_ssr_notifier(const char *name, struct notifier_block *nb);
>  int qcom_unregister_ssr_notifier(void *notify, struct notifier_block *nb);
>  
> -- 
> 2.20.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next 2/3] soc: qcom: mdt_loader: define stubs for COMPILE_TEST
  2021-01-06  2:38 ` [PATCH net-next 2/3] soc: qcom: mdt_loader: define stubs " Alex Elder
@ 2021-01-06 18:47   ` Bjorn Andersson
  0 siblings, 0 replies; 6+ messages in thread
From: Bjorn Andersson @ 2021-01-06 18:47 UTC (permalink / raw)
  To: Alex Elder
  Cc: agross, davem, kuba, ohad, evgreen, cpratapa, subashab, netdev,
	linux-arm-msm, linux-remoteproc, linux-kernel

On Tue 05 Jan 20:38 CST 2021, Alex Elder wrote:

> Define stub functions for the exposed MDT functions in case
> QCOM_MDT_LOADER is not configured.  This allows users of these
> functions to link correctly for COMPILE_TEST builds without
> QCOM_SCM enabled.
> 

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

@Jakub, @Dave, as with patch 1, please take this through your tree as
well.

Regards,
Bjorn

> Signed-off-by: Alex Elder <elder@linaro.org>
> ---
>  include/linux/soc/qcom/mdt_loader.h | 35 +++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/mdt_loader.h
> index e600baec68253..afd47217996b0 100644
> --- a/include/linux/soc/qcom/mdt_loader.h
> +++ b/include/linux/soc/qcom/mdt_loader.h
> @@ -11,6 +11,8 @@
>  struct device;
>  struct firmware;
>  
> +#if IS_ENABLED(CONFIG_QCOM_MDT_LOADER)
> +
>  ssize_t qcom_mdt_get_size(const struct firmware *fw);
>  int qcom_mdt_load(struct device *dev, const struct firmware *fw,
>  		  const char *fw_name, int pas_id, void *mem_region,
> @@ -23,4 +25,37 @@ int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw,
>  			  phys_addr_t *reloc_base);
>  void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len);
>  
> +#else /* !IS_ENABLED(CONFIG_QCOM_MDT_LOADER) */
> +
> +static inline ssize_t qcom_mdt_get_size(const struct firmware *fw)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int qcom_mdt_load(struct device *dev, const struct firmware *fw,
> +				const char *fw_name, int pas_id,
> +				void *mem_region, phys_addr_t mem_phys,
> +				size_t mem_size, phys_addr_t *reloc_base)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline int qcom_mdt_load_no_init(struct device *dev,
> +					const struct firmware *fw,
> +					const char *fw_name, int pas_id,
> +					void *mem_region, phys_addr_t mem_phys,
> +					size_t mem_size,
> +					phys_addr_t *reloc_base)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline void *qcom_mdt_read_metadata(const struct firmware *fw,
> +					   size_t *data_len)
> +{
> +	return ERR_PTR(-ENODEV);
> +}
> +
> +#endif /* !IS_ENABLED(CONFIG_QCOM_MDT_LOADER) */
> +
>  #endif
> -- 
> 2.20.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-01-06 18:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-06  2:38 [PATCH net-next 0/3] net: ipa: support COMPILE_TEST Alex Elder
2021-01-06  2:38 ` [PATCH net-next 1/3] remoteproc: qcom: expose types for COMPILE_TEST Alex Elder
2021-01-06 18:47   ` Bjorn Andersson
2021-01-06  2:38 ` [PATCH net-next 2/3] soc: qcom: mdt_loader: define stubs " Alex Elder
2021-01-06 18:47   ` Bjorn Andersson
2021-01-06  2:38 ` [PATCH net-next 3/3] net: ipa: support COMPILE_TEST Alex Elder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox