From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Ricardo Martinez <ricardo.martinez@linux.intel.com>
Cc: Netdev <netdev@vger.kernel.org>,
linux-wireless@vger.kernel.org, kuba@kernel.org,
davem@davemloft.net, johannes@sipsolutions.net,
ryazanov.s.a@gmail.com, loic.poulain@linaro.org,
m.chetan.kumar@intel.com, chandrashekar.devegowda@intel.com,
linuxwwan@intel.com, chiranjeevi.rapolu@linux.intel.com,
haijun.liu@mediatek.com, amir.hanania@intel.com,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
dinesh.sharma@intel.com, eliot.lee@intel.com,
moises.veleta@intel.com, pierre-louis.bossart@intel.com,
muralidharan.sethuraman@intel.com,
Soumya.Prakash.Mishra@intel.com, sreehari.kancharla@intel.com,
madhusmita.sahu@intel.com
Subject: Re: [PATCH net-next v5 04/13] net: wwan: t7xx: Add port proxy infrastructure
Date: Fri, 25 Feb 2022 13:47:09 +0200 (EET) [thread overview]
Message-ID: <b7b7c5d1-e6c8-4c74-d5aa-b12443d5aee@linux.intel.com> (raw)
In-Reply-To: <20220223223326.28021-5-ricardo.martinez@linux.intel.com>
On Wed, 23 Feb 2022, Ricardo Martinez wrote:
> From: Haijun Liu <haijun.liu@mediatek.com>
>
> Port-proxy provides a common interface to interact with different types
> of ports. Ports export their configuration via `struct t7xx_port` and
> operate as defined by `struct port_ops`.
>
> Signed-off-by: Haijun Liu <haijun.liu@mediatek.com>
> Co-developed-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
> Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
> Co-developed-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
> Signed-off-by: Ricardo Martinez <ricardo.martinez@linux.intel.com>
>
> >From a WWAN framework perspective:
> Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
> ---
> +static u16 t7xx_port_next_rx_seq_num(struct t7xx_port *port, struct ccci_header *ccci_h)
> +{
> + u16 seq_num, next_seq_num, assert_bit;
assert_bit could be bool.
> +
> + seq_num = FIELD_GET(CCCI_H_SEQ_FLD, le32_to_cpu(ccci_h->status));
> + next_seq_num = (seq_num + 1) & FIELD_MAX(CCCI_H_SEQ_FLD);
> + assert_bit = !!(le32_to_cpu(ccci_h->status) & CCCI_H_AST_BIT);
> + if (!assert_bit || port->seq_nums[MTK_RX] > FIELD_MAX(CCCI_H_SEQ_FLD))
Is this an obfuscated way to say:
... || port->seq_nums[MTK_RX] == INVALID_SEQ_NUM
?
> +int t7xx_port_proxy_node_control(struct t7xx_modem *md, struct port_msg *port_msg)
> +{
> + u32 *port_info_base = (void *)port_msg + sizeof(*port_msg);
__le32 *port_info_base = (void *)port_msg + sizeof(*port_msg);
As port_msg has __le32 fields, the endianess likely should disappear in
this casting?
> + struct device *dev = &md->t7xx_dev->pdev->dev;
> + unsigned int version, ports, i;
> +
> + version = FIELD_GET(PORT_MSG_VERSION, le32_to_cpu(port_msg->info));
> + if (version != PORT_ENUM_VER ||
> + le32_to_cpu(port_msg->head_pattern) != PORT_ENUM_HEAD_PATTERN ||
> + le32_to_cpu(port_msg->tail_pattern) != PORT_ENUM_TAIL_PATTERN) {
> + dev_err(dev, "Invalid port control message %x:%x:%x\n",
> + version, le32_to_cpu(port_msg->head_pattern),
> + le32_to_cpu(port_msg->tail_pattern));
> + return -EFAULT;
> + }
> +
> + ports = FIELD_GET(PORT_MSG_PRT_CNT, le32_to_cpu(port_msg->info));
> + for (i = 0; i < ports; i++) {
> + struct t7xx_port_static *port_static;
> + u32 *port_info = port_info_base + i;
__le32 *port_info = port_info_base + i;
> + struct t7xx_port *port;
> + unsigned int ch_id;
> + bool en_flag;
> +
> + ch_id = FIELD_GET(PORT_INFO_CH_ID, *port_info);
ch_id = FIELD_GET(PORT_INFO_CH_ID, le32_to_cpu(*port_info));
> + port = t7xx_proxy_get_port_by_ch(md->port_prox, ch_id);
> + if (!port) {
> + dev_dbg(dev, "Port:%x not found\n", ch_id);
> + continue;
> + }
> +
> + en_flag = !!(PORT_INFO_ENFLG & *port_info);
*port_info & PORT_INFO_ENFLG
--
i.
next prev parent reply other threads:[~2022-02-25 11:47 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-23 22:33 [PATCH net-next v5 00/13] net: wwan: t7xx: PCIe driver for MediaTek M.2 modem Ricardo Martinez
2022-02-23 22:33 ` [PATCH net-next v5 01/13] list: Add list_next_entry_circular() and list_prev_entry_circular() Ricardo Martinez
2022-02-23 22:33 ` [PATCH net-next v5 02/13] net: wwan: t7xx: Add control DMA interface Ricardo Martinez
2022-02-25 10:54 ` Ilpo Järvinen
2022-03-08 0:46 ` Martinez, Ricardo
2022-03-07 2:42 ` Sergey Ryazanov
2022-02-23 22:33 ` [PATCH net-next v5 03/13] net: wwan: t7xx: Add core components Ricardo Martinez
2022-02-25 11:10 ` Ilpo Järvinen
2022-03-08 0:47 ` Martinez, Ricardo
2022-03-07 2:44 ` Sergey Ryazanov
2022-02-23 22:33 ` [PATCH net-next v5 04/13] net: wwan: t7xx: Add port proxy infrastructure Ricardo Martinez
2022-02-25 11:47 ` Ilpo Järvinen [this message]
2022-03-08 0:48 ` Martinez, Ricardo
2022-03-07 2:52 ` Sergey Ryazanov
2022-03-12 3:45 ` Martinez, Ricardo
2022-02-23 22:33 ` [PATCH net-next v5 05/13] net: wwan: t7xx: Add control port Ricardo Martinez
2022-02-25 12:05 ` Ilpo Järvinen
2022-03-07 2:55 ` Sergey Ryazanov
2022-03-17 17:59 ` Martinez, Ricardo
2022-02-23 22:33 ` [PATCH net-next v5 06/13] net: wwan: t7xx: Add AT and MBIM WWAN ports Ricardo Martinez
2022-02-25 12:23 ` Ilpo Järvinen
2022-03-07 2:56 ` Sergey Ryazanov
2022-03-09 0:01 ` Martinez, Ricardo
2022-03-10 0:13 ` Sergey Ryazanov
2022-03-11 21:41 ` Martinez, Ricardo
2022-02-23 22:33 ` [PATCH net-next v5 07/13] net: wwan: t7xx: Data path HW layer Ricardo Martinez
2022-02-25 16:18 ` Ilpo Järvinen
2022-02-23 22:33 ` [PATCH net-next v5 08/13] net: wwan: t7xx: Add data path interface Ricardo Martinez
2022-03-01 13:05 ` Ilpo Järvinen
2022-03-07 2:58 ` Sergey Ryazanov
2022-04-04 23:29 ` Martinez, Ricardo
2022-04-04 23:50 ` Sergey Ryazanov
2022-04-05 0:10 ` Martinez, Ricardo
2022-02-23 22:33 ` [PATCH net-next v5 09/13] net: wwan: t7xx: Add WWAN network interface Ricardo Martinez
2022-03-07 2:59 ` Sergey Ryazanov
2022-02-23 22:33 ` [PATCH net-next v5 10/13] net: wwan: t7xx: Introduce power management Ricardo Martinez
2022-03-01 13:26 ` Ilpo Järvinen
2022-03-08 0:54 ` Martinez, Ricardo
2022-02-23 22:33 ` [PATCH net-next v5 11/13] net: wwan: t7xx: Runtime PM Ricardo Martinez
2022-02-23 22:33 ` [PATCH net-next v5 12/13] net: wwan: t7xx: Device deep sleep lock/unlock Ricardo Martinez
2022-03-10 10:21 ` Ilpo Järvinen
2022-03-18 23:49 ` Martinez, Ricardo
2022-03-22 12:31 ` Ilpo Järvinen
2022-02-23 22:33 ` [PATCH net-next v5 13/13] net: wwan: t7xx: Add maintainers and documentation Ricardo Martinez
2022-03-07 3:00 ` [PATCH net-next v5 00/13] net: wwan: t7xx: PCIe driver for MediaTek M.2 modem Sergey Ryazanov
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=b7b7c5d1-e6c8-4c74-d5aa-b12443d5aee@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=Soumya.Prakash.Mishra@intel.com \
--cc=amir.hanania@intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=chandrashekar.devegowda@intel.com \
--cc=chiranjeevi.rapolu@linux.intel.com \
--cc=davem@davemloft.net \
--cc=dinesh.sharma@intel.com \
--cc=eliot.lee@intel.com \
--cc=haijun.liu@mediatek.com \
--cc=johannes@sipsolutions.net \
--cc=kuba@kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linuxwwan@intel.com \
--cc=loic.poulain@linaro.org \
--cc=m.chetan.kumar@intel.com \
--cc=madhusmita.sahu@intel.com \
--cc=moises.veleta@intel.com \
--cc=muralidharan.sethuraman@intel.com \
--cc=netdev@vger.kernel.org \
--cc=pierre-louis.bossart@intel.com \
--cc=ricardo.martinez@linux.intel.com \
--cc=ryazanov.s.a@gmail.com \
--cc=sreehari.kancharla@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.