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