Re: [PATCH net-next] net: wwan: iosm: add rpc interface for xmm modems

From: Loic Poulain
Date: Fri Oct 28 2022 - 06:36:30 EST


On Fri, 28 Oct 2022 at 02:37, Shane Parslow <shaneparslow808@xxxxxxxxx> wrote:
>
> Add a new iosm wwan port that connects to the modem rpc interface. This
> interface provides a configuration channel, and in the case of the 7360, is
> the only way to configure the modem (as it does not support mbim).

Doesn't the AT channel offer that possibility? what is the status of
7360 support without this change?

> The new interface is compatible with existing software, such as
> open_xdatachannel.py from the xmm7360-pci project [1].
>
> [1] https://github.com/xmm7360/xmm7360-pci
>
> Signed-off-by: Shane Parslow <shaneparslow808@xxxxxxxxx>
> ---
> drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c | 2 +-
> drivers/net/wwan/wwan_core.c | 4 ++++
> include/linux/wwan.h | 2 ++
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c b/drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c
> index 128c999e08bb..91e3e83fc47b 100644
> --- a/drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c
> +++ b/drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c
> @@ -39,7 +39,7 @@ static struct ipc_chnl_cfg modem_cfg[] = {
> /* RPC - 0 */
> { IPC_MEM_CTRL_CHL_ID_1, IPC_MEM_PIPE_2, IPC_MEM_PIPE_3,
> IPC_MEM_MAX_TDS_RPC, IPC_MEM_MAX_TDS_RPC,
> - IPC_MEM_MAX_DL_RPC_BUF_SIZE, WWAN_PORT_UNKNOWN },
> + IPC_MEM_MAX_DL_RPC_BUF_SIZE, WWAN_PORT_RPC },
> /* IAT0 */
> { IPC_MEM_CTRL_CHL_ID_2, IPC_MEM_PIPE_4, IPC_MEM_PIPE_5,
> IPC_MEM_MAX_TDS_AT, IPC_MEM_MAX_TDS_AT, IPC_MEM_MAX_DL_AT_BUF_SIZE,
> diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
> index 62e9f7d6c9fe..cf16a2704914 100644
> --- a/drivers/net/wwan/wwan_core.c
> +++ b/drivers/net/wwan/wwan_core.c
> @@ -319,6 +319,10 @@ static const struct {
> .name = "FIREHOSE",
> .devsuf = "firehose",
> },
> + [WWAN_PORT_RPC] = {
> + .name = "RPC",
> + .devsuf = "rpc",
> + },

RPC sounds more like a generic method than an actual XMM-specific
protocol, isn't there a more precise name for that protocol? if not,
maybe XMMRPC is more appropriate?

> };
>
> 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 5ce2acf444fb..3cf2182ad4e9 100644
> --- a/include/linux/wwan.h
> +++ b/include/linux/wwan.h
> @@ -15,6 +15,7 @@
> * @WWAN_PORT_QMI: Qcom modem/MSM interface for modem control
> * @WWAN_PORT_QCDM: Qcom Modem diagnostic interface
> * @WWAN_PORT_FIREHOSE: XML based command protocol
> + * @WWAN_PORT_RPC: Control protocol for Intel XMM modems
> *
> * @WWAN_PORT_MAX: Highest supported port types
> * @WWAN_PORT_UNKNOWN: Special value to indicate an unknown port type
> @@ -26,6 +27,7 @@ enum wwan_port_type {
> WWAN_PORT_QMI,
> WWAN_PORT_QCDM,
> WWAN_PORT_FIREHOSE,
> + WWAN_PORT_RPC,
>
> /* Add new port types above this line */
>
> --
> 2.38.1
>

Reagrds,
Loic