Re: [PATCH v2 15/17] soc: qcom: ipa: support build of IPA code
From: Jon Hunter
Date: Wed Mar 11 2020 - 06:54:33 EST
On 06/03/2020 04:28, Alex Elder wrote:
> Add build and Kconfig support for the Qualcomm IPA driver.
>
> Signed-off-by: Alex Elder <elder@xxxxxxxxxx>
> ---
> drivers/net/Kconfig | 2 ++
> drivers/net/Makefile | 1 +
> drivers/net/ipa/Kconfig | 19 +++++++++++++++++++
> drivers/net/ipa/Makefile | 12 ++++++++++++
> 4 files changed, 34 insertions(+)
> create mode 100644 drivers/net/ipa/Kconfig
> create mode 100644 drivers/net/ipa/Makefile
>
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index 66e410e58c8e..02565bc2be8a 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -444,6 +444,8 @@ source "drivers/net/fddi/Kconfig"
>
> source "drivers/net/hippi/Kconfig"
>
> +source "drivers/net/ipa/Kconfig"
> +
> config NET_SB1000
> tristate "General Instruments Surfboard 1000"
> depends on PNP
> diff --git a/drivers/net/Makefile b/drivers/net/Makefile
> index 65967246f240..94b60800887a 100644
> --- a/drivers/net/Makefile
> +++ b/drivers/net/Makefile
> @@ -47,6 +47,7 @@ obj-$(CONFIG_ETHERNET) += ethernet/
> obj-$(CONFIG_FDDI) += fddi/
> obj-$(CONFIG_HIPPI) += hippi/
> obj-$(CONFIG_HAMRADIO) += hamradio/
> +obj-$(CONFIG_QCOM_IPA) += ipa/
> obj-$(CONFIG_PLIP) += plip/
> obj-$(CONFIG_PPP) += ppp/
> obj-$(CONFIG_PPP_ASYNC) += ppp/
> diff --git a/drivers/net/ipa/Kconfig b/drivers/net/ipa/Kconfig
> new file mode 100644
> index 000000000000..b8cb7cadbf75
> --- /dev/null
> +++ b/drivers/net/ipa/Kconfig
> @@ -0,0 +1,19 @@
> +config QCOM_IPA
> + tristate "Qualcomm IPA support"
> + depends on ARCH_QCOM && 64BIT && NET
> + select QCOM_QMI_HELPERS
> + select QCOM_MDT_LOADER
> + default QCOM_Q6V5_COMMON
> + help
> + Choose Y or M here to include support for the Qualcomm
> + IP Accelerator (IPA), a hardware block present in some
> + Qualcomm SoCs. The IPA is a programmable protocol processor
> + 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.
> +
> + Note that if selected, the selection type must match that
> + of QCOM_Q6V5_COMMON (Y or M).
> +
> + If unsure, say N.
> diff --git a/drivers/net/ipa/Makefile b/drivers/net/ipa/Makefile
> new file mode 100644
> index 000000000000..afe5df1e6eee
> --- /dev/null
> +++ b/drivers/net/ipa/Makefile
> @@ -0,0 +1,12 @@
> +# Un-comment the next line if you want to validate configuration data
> +#ccflags-y += -DIPA_VALIDATE
> +
> +obj-$(CONFIG_QCOM_IPA) += ipa.o
> +
> +ipa-y := ipa_main.o ipa_clock.o ipa_reg.o ipa_mem.o \
> + ipa_table.o ipa_interrupt.o gsi.o gsi_trans.o \
> + ipa_gsi.o ipa_smp2p.o ipa_uc.o \
> + ipa_endpoint.o ipa_cmd.o ipa_modem.o \
> + ipa_qmi.o ipa_qmi_msg.o
> +
> +ipa-y += ipa_data-sdm845.o ipa_data-sc7180.o
This patch is also causing build issues on the current -next ...
CC [M] drivers/net/ipa/gsi.o
In file included from include/linux/build_bug.h:5:0,
from include/linux/bitfield.h:10,
from drivers/net/ipa/gsi.c:9:
drivers/net/ipa/gsi.c: In function âgsi_validate_buildâ:
drivers/net/ipa/gsi.c:220:39: error: implicit declaration of function âfield_maxâ [-Werror=implicit-function-declaration]
BUILD_BUG_ON(GSI_RING_ELEMENT_SIZE > field_max(ELEMENT_SIZE_FMASK));
^
include/linux/compiler.h:374:9: note: in definition of macro â__compiletime_assertâ
if (!(condition)) \
^~~~~~~~~
include/linux/compiler.h:394:2: note: in expansion of macro â_compiletime_assertâ
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro âcompiletime_assertâ
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro âBUILD_BUG_ON_MSGâ
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^~~~~~~~~~~~~~~~
drivers/net/ipa/gsi.c:220:2: note: in expansion of macro âBUILD_BUG_ONâ
BUILD_BUG_ON(GSI_RING_ELEMENT_SIZE > field_max(ELEMENT_SIZE_FMASK));
^~~~~~~~~~~~
Jon
--
nvpublic