From: Dan Williams <dcbw@redhat.com>
To: Alex Elder <elder@linaro.org>,
davem@davemloft.net, arnd@arndb.de, bjorn.andersson@linaro.org,
ilias.apalodimas@linaro.org
Cc: evgreen@chromium.org, benchan@google.com, ejcaruso@google.com,
cpratapa@codeaurora.org, syadagir@codeaurora.org,
subashab@codeaurora.org, abhishek.esse@gmail.com,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-soc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v2 00/17] net: introduce Qualcomm IPA driver
Date: Fri, 31 May 2019 09:58:58 -0500 [thread overview]
Message-ID: <e75cd1c111233fdc05f47017046a6b0f0c97673a.camel@redhat.com> (raw)
In-Reply-To: <20190531035348.7194-1-elder@linaro.org>
On Thu, 2019-05-30 at 22:53 -0500, Alex Elder wrote:
> This series presents the driver for the Qualcomm IP Accelerator
> (IPA).
>
> This is version 2 of the series. This version has addressed almost
> all of the feedback received in the first version:
>
> https://lore.kernel.org/lkml/20190512012508.10608-1-elder@linaro.org/
> More detail is included in the individual patches, but here is a
> high-level summary of what's changed since then:
> - Two spinlocks have been removed.
> - The code for enabling and disabling endpoint interrupts has
> been simplified considerably, and the spinlock is no longer
> required
> - A spinlock used when updating ring buffer pointers is no
> longer needed. Integers indexing the ring are used instead
> (and they don't even have to be atomic).
> - One spinlock remains to protect list updates, but it is always
> acquired using spin_lock_bh() (no more irqsave).
> - Information about the queueing and completion of messages is now
> supplied to the network stack in batches rather than one at a
> time.
> - I/O completion handling has been simplified, with the IRQ
> handler now consisting mainly of disabling the interrupt and
> calling napi_schedule().
> - Some comments have been updated and improved througout.
>
> What follows is the introduction supplied with v1 of the series.
>
> -----
>
> The IPA is a component present in some Qualcomm SoCs that allows
> network functions such as aggregation, filtering, routing, and NAT
> to be performed without active involvement of the main application
> processor (AP).
>
> Initially, these advanced features are disabled; the IPA driver
> simply provides a network interface that makes the modem's LTE
> network available to the AP. In addition, only support for the
> IPA found in the Qualcomm SDM845 SoC is provided.
My question from the Nov 2018 IPA rmnet driver still stands; how does
this relate to net/ethernet/qualcomm/rmnet/ if at all? And if this is
really just a netdev talking to the IPA itself and unrelated to
net/ethernet/qualcomm/rmnet, let's call it "ipa%d" and stop cargo-
culting rmnet around just because it happens to be a net driver for a
QC SoC.
Is the firmware that the driver loads already in linux-firmware or
going to be there soon?
How does the driver support multiple PDNs (eg PDP or EPS contexts) that
are enabled through the control plane via QMI messages? I couldn't
quite find that out.
Thanks,
Dan
> This code is derived from a driver developed internally by Qualcomm.
> A version of the original source can be seen here:
> https://source.codeaurora.org/quic/la/kernel/msm-4.9/tree
> in the "drivers/platform/msm/ipa" directory. Many were involved in
> developing this, but the following individuals deserve explicit
> acknowledgement for their substantial contributions:
>
> Abhishek Choubey
> Ady Abraham
> Chaitanya Pratapa
> David Arinzon
> Ghanim Fodi
> Gidon Studinski
> Ravi Gummadidala
> Shihuan Liu
> Skylar Chang
>
> A version of this code was posted in November 2018 as an RFC.
>
> https://lore.kernel.org/lkml/20181107003250.5832-1-elder@linaro.org/
> All feedback received was addressed. The code has undergone
> considerable further rework since that time, and most of the
> "future work" described then has now been completed.
>
> This code is available in buildable form here, based on kernel
> v5.2-rc1:
> remote: ssh://git@git.linaro.org/people/alex.elder/linux.git
> branch: ipa-v2_kernel-v5.2-rc2
> 75adf2ac1266 arm64: defconfig: enable build of IPA code
>
> The branch depends on a commit now found in in net-next. It has
> been cherry-picked, and (in this branch) has this commit ID:
> 13c627b5a078 net: qualcomm: rmnet: Move common struct definitions
> to include
> by
>
> -Alex
>
> Alex Elder (17):
> bitfield.h: add FIELD_MAX() and field_max()
> dt-bindings: soc: qcom: add IPA bindings
> soc: qcom: ipa: main code
> soc: qcom: ipa: configuration data
> soc: qcom: ipa: clocking, interrupts, and memory
> soc: qcom: ipa: GSI headers
> soc: qcom: ipa: the generic software interface
> soc: qcom: ipa: GSI transactions
> soc: qcom: ipa: IPA interface to GSI
> soc: qcom: ipa: IPA endpoints
> soc: qcom: ipa: immediate commands
> soc: qcom: ipa: IPA network device and microcontroller
> soc: qcom: ipa: AP/modem communications
> soc: qcom: ipa: support build of IPA code
> MAINTAINERS: add entry for the Qualcomm IPA driver
> arm64: dts: sdm845: add IPA information
> arm64: defconfig: enable build of IPA code
>
> .../devicetree/bindings/net/qcom,ipa.yaml | 180 ++
> MAINTAINERS | 6 +
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 51 +
> arch/arm64/configs/defconfig | 1 +
> drivers/net/Kconfig | 2 +
> drivers/net/Makefile | 1 +
> drivers/net/ipa/Kconfig | 16 +
> drivers/net/ipa/Makefile | 7 +
> drivers/net/ipa/gsi.c | 1635
> +++++++++++++++++
> drivers/net/ipa/gsi.h | 246 +++
> drivers/net/ipa/gsi_private.h | 148 ++
> drivers/net/ipa/gsi_reg.h | 376 ++++
> drivers/net/ipa/gsi_trans.c | 624 +++++++
> drivers/net/ipa/gsi_trans.h | 116 ++
> drivers/net/ipa/ipa.h | 131 ++
> drivers/net/ipa/ipa_clock.c | 297 +++
> drivers/net/ipa/ipa_clock.h | 52 +
> drivers/net/ipa/ipa_cmd.c | 377 ++++
> drivers/net/ipa/ipa_cmd.h | 116 ++
> drivers/net/ipa/ipa_data-sdm845.c | 245 +++
> drivers/net/ipa/ipa_data.h | 267 +++
> drivers/net/ipa/ipa_endpoint.c | 1283 +++++++++++++
> drivers/net/ipa/ipa_endpoint.h | 97 +
> drivers/net/ipa/ipa_gsi.c | 48 +
> drivers/net/ipa/ipa_gsi.h | 49 +
> drivers/net/ipa/ipa_interrupt.c | 279 +++
> drivers/net/ipa/ipa_interrupt.h | 53 +
> drivers/net/ipa/ipa_main.c | 921 ++++++++++
> drivers/net/ipa/ipa_mem.c | 234 +++
> drivers/net/ipa/ipa_mem.h | 83 +
> drivers/net/ipa/ipa_netdev.c | 251 +++
> drivers/net/ipa/ipa_netdev.h | 24 +
> drivers/net/ipa/ipa_qmi.c | 402 ++++
> drivers/net/ipa/ipa_qmi.h | 35 +
> drivers/net/ipa/ipa_qmi_msg.c | 583 ++++++
> drivers/net/ipa/ipa_qmi_msg.h | 238 +++
> drivers/net/ipa/ipa_reg.h | 279 +++
> drivers/net/ipa/ipa_smp2p.c | 304 +++
> drivers/net/ipa/ipa_smp2p.h | 47 +
> drivers/net/ipa/ipa_uc.c | 208 +++
> drivers/net/ipa/ipa_uc.h | 32 +
> include/linux/bitfield.h | 14 +
> 42 files changed, 10358 insertions(+)
> create mode 100644
> Documentation/devicetree/bindings/net/qcom,ipa.yaml
> create mode 100644 drivers/net/ipa/Kconfig
> create mode 100644 drivers/net/ipa/Makefile
> create mode 100644 drivers/net/ipa/gsi.c
> create mode 100644 drivers/net/ipa/gsi.h
> create mode 100644 drivers/net/ipa/gsi_private.h
> create mode 100644 drivers/net/ipa/gsi_reg.h
> create mode 100644 drivers/net/ipa/gsi_trans.c
> create mode 100644 drivers/net/ipa/gsi_trans.h
> create mode 100644 drivers/net/ipa/ipa.h
> create mode 100644 drivers/net/ipa/ipa_clock.c
> create mode 100644 drivers/net/ipa/ipa_clock.h
> create mode 100644 drivers/net/ipa/ipa_cmd.c
> create mode 100644 drivers/net/ipa/ipa_cmd.h
> create mode 100644 drivers/net/ipa/ipa_data-sdm845.c
> create mode 100644 drivers/net/ipa/ipa_data.h
> create mode 100644 drivers/net/ipa/ipa_endpoint.c
> create mode 100644 drivers/net/ipa/ipa_endpoint.h
> create mode 100644 drivers/net/ipa/ipa_gsi.c
> create mode 100644 drivers/net/ipa/ipa_gsi.h
> create mode 100644 drivers/net/ipa/ipa_interrupt.c
> create mode 100644 drivers/net/ipa/ipa_interrupt.h
> create mode 100644 drivers/net/ipa/ipa_main.c
> create mode 100644 drivers/net/ipa/ipa_mem.c
> create mode 100644 drivers/net/ipa/ipa_mem.h
> create mode 100644 drivers/net/ipa/ipa_netdev.c
> create mode 100644 drivers/net/ipa/ipa_netdev.h
> create mode 100644 drivers/net/ipa/ipa_qmi.c
> create mode 100644 drivers/net/ipa/ipa_qmi.h
> create mode 100644 drivers/net/ipa/ipa_qmi_msg.c
> create mode 100644 drivers/net/ipa/ipa_qmi_msg.h
> create mode 100644 drivers/net/ipa/ipa_reg.h
> create mode 100644 drivers/net/ipa/ipa_smp2p.c
> create mode 100644 drivers/net/ipa/ipa_smp2p.h
> create mode 100644 drivers/net/ipa/ipa_uc.c
> create mode 100644 drivers/net/ipa/ipa_uc.h
>
next prev parent reply other threads:[~2019-05-31 14:59 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-31 3:53 [PATCH v2 00/17] net: introduce Qualcomm IPA driver Alex Elder
2019-05-31 3:53 ` [PATCH v2 01/17] bitfield.h: add FIELD_MAX() and field_max() Alex Elder
2019-05-31 3:53 ` [PATCH v2 02/17] dt-bindings: soc: qcom: add IPA bindings Alex Elder
2019-06-10 22:08 ` Rob Herring
2019-06-11 2:11 ` Alex Elder
2019-07-03 15:09 ` Alex Elder
2019-05-31 3:53 ` [PATCH v2 03/17] soc: qcom: ipa: main code Alex Elder
2019-05-31 21:50 ` David Miller
2019-05-31 22:25 ` Alex Elder
2019-05-31 3:53 ` [PATCH v2 04/17] soc: qcom: ipa: configuration data Alex Elder
2019-05-31 3:53 ` [PATCH v2 05/17] soc: qcom: ipa: clocking, interrupts, and memory Alex Elder
2019-05-31 3:53 ` [PATCH v2 06/17] soc: qcom: ipa: GSI headers Alex Elder
2019-05-31 3:53 ` [PATCH v2 07/17] soc: qcom: ipa: the generic software interface Alex Elder
2019-05-31 3:53 ` [PATCH v2 08/17] soc: qcom: ipa: GSI transactions Alex Elder
2019-05-31 3:53 ` [PATCH v2 09/17] soc: qcom: ipa: IPA interface to GSI Alex Elder
2019-05-31 3:53 ` [PATCH v2 10/17] soc: qcom: ipa: IPA endpoints Alex Elder
2019-05-31 3:53 ` [PATCH v2 11/17] soc: qcom: ipa: immediate commands Alex Elder
2019-05-31 3:53 ` [PATCH v2 12/17] soc: qcom: ipa: IPA network device and microcontroller Alex Elder
2019-05-31 3:53 ` [PATCH v2 13/17] soc: qcom: ipa: AP/modem communications Alex Elder
2019-05-31 3:53 ` [PATCH v2 14/17] soc: qcom: ipa: support build of IPA code Alex Elder
2019-05-31 3:53 ` [PATCH v2 15/17] MAINTAINERS: add entry for the Qualcomm IPA driver Alex Elder
2019-05-31 3:53 ` [PATCH v2 16/17] arm64: dts: sdm845: add IPA information Alex Elder
2019-05-31 3:53 ` [PATCH v2 17/17] arm64: defconfig: enable build of IPA code Alex Elder
2019-05-31 14:58 ` Dan Williams [this message]
2019-05-31 16:36 ` [PATCH v2 00/17] net: introduce Qualcomm IPA driver Alex Elder
2019-05-31 19:19 ` Arnd Bergmann
2019-05-31 20:47 ` Alex Elder
2019-05-31 21:12 ` Arnd Bergmann
2019-05-31 22:08 ` Alex Elder
2019-06-07 17:43 ` Alex Elder
2019-05-31 23:33 ` Bjorn Andersson
2019-05-31 23:59 ` Subash Abhinov Kasiviswanathan
2019-06-03 10:04 ` Arnd Bergmann
2019-06-03 13:32 ` Alex Elder
2019-06-04 8:13 ` Arnd Bergmann
2019-06-04 15:18 ` Dan Williams
2019-06-04 20:04 ` Arnd Bergmann
2019-06-04 21:29 ` Dan Williams
2019-06-06 17:42 ` Alex Elder
2019-06-11 8:12 ` Johannes Berg
2019-06-11 11:56 ` Arnd Bergmann
2019-06-11 15:53 ` Dan Williams
2019-06-11 16:52 ` Subash Abhinov Kasiviswanathan
2019-06-11 17:22 ` Dan Williams
2019-06-12 8:31 ` Arnd Bergmann
2019-06-12 14:27 ` Dan Williams
2019-06-12 15:06 ` Arnd Bergmann
2019-06-17 11:42 ` Johannes Berg
2019-06-17 12:25 ` Johannes Berg
2019-06-18 15:20 ` Alex Elder
2019-06-18 18:06 ` Dan Williams
2019-06-24 16:21 ` Alex Elder
2019-06-25 14:14 ` Johannes Berg
2019-06-26 13:36 ` Alex Elder
2019-06-26 17:55 ` Johannes Berg
2019-06-18 18:48 ` Johannes Berg
2019-06-24 16:21 ` Alex Elder
2019-06-18 13:45 ` Alex Elder
2019-06-18 19:03 ` Johannes Berg
2019-06-18 20:09 ` Arnd Bergmann
2019-06-18 20:15 ` Johannes Berg
2019-06-18 20:33 ` Arnd Bergmann
2019-06-18 20:39 ` Johannes Berg
2019-06-18 21:06 ` Arnd Bergmann
2019-06-19 20:56 ` Dan Williams
2019-06-24 16:21 ` Alex Elder
2019-06-24 16:40 ` Arnd Bergmann
2019-06-25 14:19 ` Johannes Berg
2019-06-26 13:39 ` Alex Elder
2019-06-26 13:58 ` Arnd Bergmann
2019-06-26 17:48 ` Johannes Berg
2019-06-26 17:45 ` Johannes Berg
2019-06-26 13:51 ` Alex Elder
2019-06-17 11:28 ` Johannes Berg
2019-06-18 13:16 ` Alex Elder
2019-06-18 13:48 ` Arnd Bergmann
2019-06-18 19:14 ` Johannes Berg
2019-06-18 19:59 ` Arnd Bergmann
2019-06-18 20:36 ` Johannes Berg
2019-06-18 20:55 ` Arnd Bergmann
2019-06-18 21:02 ` Johannes Berg
2019-06-18 21:15 ` Subash Abhinov Kasiviswanathan
2019-06-19 12:23 ` Arnd Bergmann
2019-06-19 18:47 ` Subash Abhinov Kasiviswanathan
2019-06-20 1:25 ` Dan Williams
2019-06-24 16:21 ` Alex Elder
2019-06-17 12:14 ` Johannes Berg
2019-06-18 14:00 ` Alex Elder
2019-06-18 19:22 ` Johannes Berg
2019-06-24 16:21 ` Alex Elder
2019-06-03 14:50 ` Dan Williams
2019-06-03 14:54 ` Dan Williams
2019-06-03 15:52 ` Alex Elder
2019-06-03 16:18 ` Dan Williams
2019-06-03 19:04 ` Subash Abhinov Kasiviswanathan
2019-06-04 15:21 ` Dan Williams
2019-05-31 23:27 ` Bjorn Andersson
2019-06-10 2:44 ` Alex Elder
2019-06-24 16:30 ` WWAN Controller Framework (was IPA [PATCH v2 00/17]) Alex Elder
2019-06-24 17:06 ` Alex Elder
2019-06-25 14:34 ` Johannes Berg
2019-06-26 13:40 ` Alex Elder
2019-06-26 17:58 ` Johannes Berg
2019-06-24 19:54 ` Dan Williams
2019-06-24 21:16 ` Alex Elder
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=e75cd1c111233fdc05f47017046a6b0f0c97673a.camel@redhat.com \
--to=dcbw@redhat.com \
--cc=abhishek.esse@gmail.com \
--cc=arnd@arndb.de \
--cc=benchan@google.com \
--cc=bjorn.andersson@linaro.org \
--cc=cpratapa@codeaurora.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=ejcaruso@google.com \
--cc=elder@linaro.org \
--cc=evgreen@chromium.org \
--cc=ilias.apalodimas@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-soc@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=subashab@codeaurora.org \
--cc=syadagir@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).