Message ID | 20200306042831.17827-16-elder@linaro.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 08120d236c47dd2bdb6f7366782f4756dd7f417e |
Headers | show |
Series | net: introduce Qualcomm IPA driver (UPDATED) | expand |
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@linaro.org> > --- > 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
On 3/11/20 5:54 AM, Jon Hunter wrote: > > 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@linaro.org> >> --- >> 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. Yes, a needed patch defining field_max() is missing. I sent an updated request to include it in net-next to resolve this issue. https://lore.kernel.org/netdev/20200311024240.26834-1-elder@linaro.org/ Thank you for pointing it out. -Alex > 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 >
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
Add build and Kconfig support for the Qualcomm IPA driver. Signed-off-by: Alex Elder <elder@linaro.org> --- 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