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