Skip to contentSkip to conversation

*** Add support for wifi QMI client driver ***

PATCH In review Govind Singh 4 participants 6 messages Mar 26, 2018 – May 14, 2018 Qualcomm Atheros ATH10K wireless driver

lore
Share & tools
lore
#0 lore raw

v3 cover *** Add support for wifi QMI client driver ***

Add QMI client driver for Q6 integrated WLAN connectivity subsystem. This module is responsible for communicating WLAN control messages to FW over QMI interface.

“QUALCOMM Messaging Interface”(QMI) provides the control interface between components running b/w remote processors with underlying transport layer based on integrated chipset(shared memory) or discrete chipset(PCI/USB/SDIO/UART).

QMI client driver implementation is based on qmi frmework https://lwn.net/Articles/729924/.

Below is the sequence of qmi handshake.

       QMI CLIENT(APPS)                                         QMI SERVER(FW in Q6)

                         <------wlan service discoverd----

                       -----connect to wlam qmi service----->

                       ------------wlan info request----->

                       <------------wlan info resp------------

                       ------------msa info req-------->

                     <------------msa info resp------------

                     ------------msa ready req-------->

                     <------------msa ready resp------------

                     <------------msa ready indication-------

                     ------------capability req------->

                    <------------capability resp------------

                    ------------qmi bdf req--------->

                     <------------qmi bdf resp------------

                      ------------qmi cal trigger------->

                  <------------ QMI FW ready indication-------

Govind Singh (12):
ath10k: Add qmi service for wlan qmi client
dt: bindings: add bindings for ath10k qmi client
ath10k: Add WCN3990 QMI client driver
ath10k: add support to start and stop qmi service
ath10k: Add support of QMI indication message
firmware: qcom: scm: Add WLAN VMID for Qualcomm SCM interface
ath10k: Add MSA handshake QMI mgs support
ath10k: Add QMI CAP request support
ath10k: Add QMI HOST CAP request support
ath10k: add bdf/cal indication support
ath10k: Add wlan mode on/off qmi message
ath10k: Add qmi wlan enable/disable support for WCN3990

 .../bindings/net/wireless/qcom,ath10k.txt          |    8 +
 drivers/net/wireless/ath/ath10k/Makefile           |    4 +
 drivers/net/wireless/ath/ath10k/qmi.c              | 1188 ++++++++++
 drivers/net/wireless/ath/ath10k/qmi.h              |  102 +
 drivers/net/wireless/ath/ath10k/qmi_svc_v01.c      | 2323 ++++++++++++++++++++
 drivers/net/wireless/ath/ath10k/qmi_svc_v01.h      |  685 ++++++
 drivers/net/wireless/ath/ath10k/snoc.c             |  179 +-
 include/linux/qcom_scm.h                           |    4 +-
 8 files changed, 4491 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/wireless/ath/ath10k/qmi.c
 create mode 100644 drivers/net/wireless/ath/ath10k/qmi.h
 create mode 100644 drivers/net/wireless/ath/ath10k/qmi_svc_v01.c
 create mode 100644 drivers/net/wireless/ath/ath10k/qmi_svc_v01.h
Signature · 1 line
1.9.1
#1 lore raw
Quoted 2 lines

Add QMI client driver for Q6 integrated WLAN connectivity subsystem.

Can you give an example which chipset series is Q6 integrated WLAN ?

Thanks,
Peter

#2 lore raw

Hi Peter,

Quoted 5 lines · Peter Oh
Quoted 1 line

Add QMI client driver for Q6 integrated WLAN connectivity subsystem.

Can you give an example which chipset series is Q6 integrated WLAN ?

Thanks,
Peter

SDM845/MSM8998 series is using the same, where WLAN firmware is running on Q6 processor.

Thanks,
Govind

#3 lore raw
In reply to Govind Singh
Quoted 36 lines · Govind Singh

Add QMI client driver for Q6 integrated WLAN connectivity subsystem. This module is responsible for communicating WLAN control messages to FW over QMI interface.

“QUALCOMM Messaging Interface”(QMI) provides the control interface between components running b/w remote processors with underlying transport layer based on integrated chipset(shared memory) or discrete chipset(PCI/USB/SDIO/UART).

QMI client driver implementation is based on qmi frmework https://lwn.net/Articles/729924/.

Below is the sequence of qmi handshake.

       QMI CLIENT(APPS)                                         QMI SERVER(FW in Q6)

                         <------wlan service discoverd----

                       -----connect to wlam qmi service----->

                       ------------wlan info request----->

                       <------------wlan info resp------------

                       ------------msa info req-------->

                     <------------msa info resp------------

                     ------------msa ready req-------->

                     <------------msa ready resp------------

                     <------------msa ready indication-------

                     ------------capability req------->

                    <------------capability resp------------
Quoted 7 lines
                    ------------qmi bdf req--------->

                     <------------qmi bdf resp------------

                      ------------qmi cal trigger------->

                  <------------ QMI FW ready indication-------

Does the responsibility of the driver ends here? I mean is this a driver for setting up the firmware and then there's something else doing the actual wifi operation, or does it simply hand over execution to the common ath10k logic at this point?

Quoted 14 lines

Govind Singh (12):
ath10k: Add qmi service for wlan qmi client
dt: bindings: add bindings for ath10k qmi client
ath10k: Add WCN3990 QMI client driver
ath10k: add support to start and stop qmi service
ath10k: Add support of QMI indication message
firmware: qcom: scm: Add WLAN VMID for Qualcomm SCM interface
ath10k: Add MSA handshake QMI mgs support
ath10k: Add QMI CAP request support
ath10k: Add QMI HOST CAP request support
ath10k: add bdf/cal indication support
ath10k: Add wlan mode on/off qmi message
ath10k: Add qmi wlan enable/disable support for WCN3990

I'm missing this last patch in my mailbox, and it would be nice if all the patches where in-reply-to the cover letter, to make them easier to find.

Regards,
Bjorn

#4 lore raw
Quoted 43 lines · Bjorn Andersson
Quoted 41 lines · Govind Singh

Add QMI client driver for Q6 integrated WLAN connectivity subsystem. This module is responsible for communicating WLAN control messages to FW over QMI interface.

“QUALCOMM Messaging Interface”(QMI) provides the control interface between components running b/w remote processors with underlying transport layer based on integrated chipset(shared memory) or discrete chipset(PCI/USB/SDIO/UART).

QMI client driver implementation is based on qmi frmework https://lwn.net/Articles/729924/.

Below is the sequence of qmi handshake.

QMI CLIENT(APPS) QMI
SERVER(FW in Q6)

                         <------wlan service discoverd----

                       -----connect to wlam qmi service----->

                       ------------wlan info request----->

                       <------------wlan info resp------------

                       ------------msa info req-------->

                     <------------msa info resp------------

                     ------------msa ready req-------->

                     <------------msa ready resp------------

                     <------------msa ready indication-------

                     ------------capability req------->

                    <------------capability resp------------

                    ------------qmi bdf req--------->

                     <------------qmi bdf resp------------
Quoted 9 lines
Quoted 3 lines
                      ------------qmi cal trigger------->

                  <------------ QMI FW ready indication-------

Does the responsibility of the driver ends here? I mean is this a driver for setting up the firmware and then there's something else doing the actual wifi operation, or does it simply hand over execution to the common ath10k logic at this point?

From wlan qmi client point of view once wlan qmi service is discovered, it connects to the service and does the above handshakes and later it handover the execution to common ath10k logic. These handshakes will be done as part of pd restart as well.

Quoted 15 lines
Quoted 14 lines

Govind Singh (12):
ath10k: Add qmi service for wlan qmi client
dt: bindings: add bindings for ath10k qmi client
ath10k: Add WCN3990 QMI client driver
ath10k: add support to start and stop qmi service
ath10k: Add support of QMI indication message
firmware: qcom: scm: Add WLAN VMID for Qualcomm SCM interface
ath10k: Add MSA handshake QMI mgs support
ath10k: Add QMI CAP request support
ath10k: Add QMI HOST CAP request support
ath10k: add bdf/cal indication support
ath10k: Add wlan mode on/off qmi message
ath10k: Add qmi wlan enable/disable support for WCN3990

Quoted 6 lines

I'm missing this last patch in my mailbox, and it would be nice if all the patches where in-reply-to the cover letter, to make them easier to find.

Regards,
Bjorn

Sure, I will take care this while submitting next version of this patch series.

BR,
Govind

#5 lore raw
In reply to Govind Singh
Quoted 5 lines · Govind Singh

Add QMI client driver for Q6 integrated WLAN connectivity subsystem. This module is responsible for communicating WLAN control messages to FW over QMI interface.

=E2=80=9CQUALCOMM Messaging Interface=E2=80=9D(QMI) provides the control =

interface between

Quoted 2 lines

components running b/w remote processors with underlying transport layer based on integrated chipset(shared memory) or discrete chipset(PCI/USB/SD=

IO/UART).

Quoted 2 lines

QMI client driver implementation is based on qmi frmework https://lwn.net=

/Articles/729924/.

Quoted 4 lines

Below is the sequence of qmi handshake.

QMI CLIENT(APPS) QMI SERVE=

R(FW in Q6)

Quoted 31 lines
                         <------wlan service discoverd----

                       -----connect to wlam qmi service----->

                       ------------wlan info request----->

                       <------------wlan info resp------------

                       ------------msa info req-------->

                     <------------msa info resp------------

                     ------------msa ready req-------->

                     <------------msa ready resp------------

                     <------------msa ready indication-------

                     ------------capability req------->

                    <------------capability resp------------

                    ------------qmi bdf req--------->

                     <------------qmi bdf resp------------

                      ------------qmi cal trigger------->

                  <------------ QMI FW ready indication-------
Quoted 13 lines

Govind Singh (12):
ath10k: Add qmi service for wlan qmi client
dt: bindings: add bindings for ath10k qmi client
ath10k: Add WCN3990 QMI client driver
ath10k: add support to start and stop qmi service
ath10k: Add support of QMI indication message
firmware: qcom: scm: Add WLAN VMID for Qualcomm SCM interface
ath10k: Add MSA handshake QMI mgs support
ath10k: Add QMI CAP request support
ath10k: Add QMI HOST CAP request support
ath10k: add bdf/cal indication support
ath10k: Add wlan mode on/off qmi message
ath10k: Add qmi wlan enable/disable support for WCN3990

BTW, I noticed that you had v3 only in the cover letter but the version number should be in every patch part of the set:

https://patchwork.kernel.org/patch/10307161/

--=20
Kalle Valo