Thread (12 messages) 12 messages, 3 authors, 2017-08-08

Re: [PATCH 0/6] In-kernel QMI handling

flat view

From: Dan Williams <hidden>
Date: 2017-08-04 15:37:27
Also in: linux-arm-msm, lkml

On Fri, 2017-08-04 at 07:59 -0700, Bjorn Andersson wrote:
This series starts by moving the common definitions of the QMUX
protocol to the
uapi header, as they are shared with clients - both in kernel and
userspace.

This series then introduces in-kernel helper functions for aiding the
handling
of QMI encoded messages in the kernel. QMI encoding is a wire-format
used in
exchanging messages between the majority of QRTR clients and
services.
This raises a few red-flags for me.  So far, we've kept almost
everything QMI related in userspace and handled all QMI control-channel 
messages from libraries like libqmi or uqmi via the cdc-wdm driver and
the "rmnet" interface via the qmi_wwan driver.  The kernel drivers just
serve as the transport.

Can you describe what kinds of in-kernel drivers need to actually parse
QMI messages as part of their operation?

Dan
It then adds an abstractions to reduce the duplication of common code
in
drivers that needs to query the name server and send and receive
encoded
messages to a remote service.

Finally it introduces a sample implementation for showing QRTR and
the QMI
helpers in action. The sample device instantiates in response to
finding the
"test service" and implements the "test protocol".

Bjorn Andersson (6):
  net: qrtr: Invoke sk_error_report() after setting sk_err
  net: qrtr: Move constants to header file
  net: qrtr: Add control packet definition to uapi
  soc: qcom: Introduce QMI encoder/decoder
  soc: qcom: Introduce QMI helpers
  samples: Introduce Qualcomm QRTR sample client

 drivers/soc/qcom/Kconfig          |   8 +
 drivers/soc/qcom/Makefile         |   3 +
 drivers/soc/qcom/qmi_encdec.c     | 812
++++++++++++++++++++++++++++++++++++++
 drivers/soc/qcom/qmi_interface.c  | 540 +++++++++++++++++++++++++
 include/linux/soc/qcom/qmi.h      | 249 ++++++++++++
 include/uapi/linux/qrtr.h         |  35 ++
 net/qrtr/qrtr.c                   |  16 +-
 samples/Kconfig                   |   8 +
 samples/Makefile                  |   2 +-
 samples/qrtr/Makefile             |   1 +
 samples/qrtr/qrtr_sample_client.c | 603 ++++++++++++++++++++++++++++
 11 files changed, 2261 insertions(+), 16 deletions(-)
 create mode 100644 drivers/soc/qcom/qmi_encdec.c
 create mode 100644 drivers/soc/qcom/qmi_interface.c
 create mode 100644 include/linux/soc/qcom/qmi.h
 create mode 100644 samples/qrtr/Makefile
 create mode 100644 samples/qrtr/qrtr_sample_client.c
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help