Re: [PATCH 09/10] udevng: Set the QMI minimum service request period for Quectel BG96 modems.
Denis Kenzior <[email protected]> Wed, 12 Feb 2025 13:30:48 -0600
| Newsgroups | dev.linux.lists.ofono |
|---|---|
| Message-ID | <[email protected]> |
Hi Grant,
On 2/11/25 11:52 PM, Grant Erickson wrote:
> The Quectel Wireless Solutions Co., Ltd. (2c7c) BG96 CAT-M1/NB-IoT
> modem (0296) has a firmware issue where it can lock up and hang (not
> responding to subsequent commands) due to high QMI service request
> arrival rates. If the vendor and model match those, then rate limit
> QMI service requests to no more than one every 2,000 us.
> ---
> plugins/udevng.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/plugins/udevng.c b/plugins/udevng.c
> index 64875a47752b..e7cf494a70ff 100644
> --- a/plugins/udevng.c
> +++ b/plugins/udevng.c
> @@ -1118,6 +1118,20 @@ static gboolean setup_quectelqmi(struct modem_info *modem)
>
> DBG("%s", modem->syspath);
>
> + /*
> + * The Quectel Wireless Solutions Co., Ltd. (2c7c) BG96
> + * CAT-M1/NB-IoT modem (0296) has a firmware issue where it can
> + * lock up and hang (not responding to subsequent commands) due to
> + * high QMI service request arrival rates. If the vendor and model
> + * match those, then rate limit QMI service requests to no more
> + * than one every 2,000 us.
> + */
> + if (g_strcmp0(modem->vendor, "2c7c") == 0) {
Please use ell for all new code. l_streq0 or so.
> + if (g_strcmp0(modem->model, "0296") == 0) {
> + ofono_modem_set_integer(modem->modem, "QMIMinReqPeriodUs", 2000);
> + }
> + }
The {} are unnecessary.
> +
> for (list = modem->devices; list; list = g_slist_next(list)) {
> const struct device_info *info = list->data;
> const char *subsystem =
Regards,
-Denis