Thread (1 message) 1 message, 1 author, 2022-02-21

Re: [PATCH] net: wwan: To support SAHARA port for Qualcomm WWAN module.

From: Loic Poulain <hidden>
Date: 2022-02-21 16:03:53
Also in: lkml, stable

Hi Yonglin,

On Mon, 21 Feb 2022 at 13:21, Yonglin Tan [off-list ref] wrote:
The SAHARA port for Qualcomm WWAN module is used to capture
memory dump. But now this feature has not been supported by
linux kernel code. Such that no SAHARA driver matched while
the device entered to DUMP mode. Once the device crashed due
to some reasons, device will enter into DUMP mode and running
in SBL stage. After that, the device change EE to SBL and the
host will detect the EE change event and re-enumerate SAHARA
port.

Cc: stable@vger.kernel.org
Fixes: fa588eba632d ("net: Add Qcom WWAN control driver")
Signed-off-by: Yonglin Tan <redacted>
Reviewed-by: Loic Poulain <redacted>
Sorry, but I've not yet offered that tag :-)

The WWAN framework is a generic way to expose a WWAN device and its
related control/data protocols, such as AT, QMI, MBIM, QCDM, etc...
All the exposed protocols are supported by open-source user
tools/daemons such as ModemManager, ofono, fwupd... SAHARA does not
seem to be WWAN specific and is not something needed for controlling a
modem, right?

I know it would be easier to just add this channel to the WWAN ports,
but we don't want to rawly expose something that could fit into an
existing framework/subsystem, that's why I referred to the devcoredump
framework, which 'seems' a better place for its integration. But I
could be wrong, I don't know much about devcoredump and maybe SAHARA
is doing much more than a firmware coredump...

As a last resort, I think this kind of debug interface should go to debugfs.

Regards,
Loic



quoted hunk
---
 drivers/net/wwan/mhi_wwan_ctrl.c | 1 +
 drivers/net/wwan/wwan_core.c     | 4 ++++
 include/linux/wwan.h             | 1 +
 3 files changed, 6 insertions(+)
diff --git a/drivers/net/wwan/mhi_wwan_ctrl.c b/drivers/net/wwan/mhi_wwan_ctrl.c
index e4d0f69..4cf420e 100644
--- a/drivers/net/wwan/mhi_wwan_ctrl.c
+++ b/drivers/net/wwan/mhi_wwan_ctrl.c
@@ -262,6 +262,7 @@ static const struct mhi_device_id mhi_wwan_ctrl_match_table[] = {
        { .chan = "QMI", .driver_data = WWAN_PORT_QMI },
        { .chan = "DIAG", .driver_data = WWAN_PORT_QCDM },
        { .chan = "FIREHOSE", .driver_data = WWAN_PORT_FIREHOSE },
+       { .chan = "SAHARA", .driver_data = WWAN_PORT_SAHARA },
        {},
 };
 MODULE_DEVICE_TABLE(mhi, mhi_wwan_ctrl_match_table);
diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
index b8c7843..2630677 100644
--- a/drivers/net/wwan/wwan_core.c
+++ b/drivers/net/wwan/wwan_core.c
@@ -318,6 +318,10 @@ static const struct {
                .name = "FIREHOSE",
                .devsuf = "firehose",
        },
+       [WWAN_PORT_SAHARA] = {
+               .name = "SAHARA",
+               .devsuf = "sahara",
+       },
 };

 static ssize_t type_show(struct device *dev, struct device_attribute *attr,
diff --git a/include/linux/wwan.h b/include/linux/wwan.h
index 5ce2acf..fc8ecaf 100644
--- a/include/linux/wwan.h
+++ b/include/linux/wwan.h
@@ -26,6 +26,7 @@ enum wwan_port_type {
        WWAN_PORT_QMI,
        WWAN_PORT_QCDM,
        WWAN_PORT_FIREHOSE,
+       WWAN_PORT_SAHARA,

        /* Add new port types above this line */

--
2.7.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help