public inbox for ofono@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH v4 0/7] Add QMI Device Service Request Rate-limit Option
@ 2025-02-14 17:22 Grant Erickson
  2025-02-14 17:22 ` [PATCH v4 1/7] qmi: Added enumeration for device quirk flags Grant Erickson
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Grant Erickson @ 2025-02-14 17:22 UTC (permalink / raw)
  To: ofono

Certain modems, among them the Quectel Wireless Solutions Co.,
Ltd. (2c7c) BG96 CAT-M1/NB-IoT modem (0296), have a firmware issue
where they can lock up and hang (not responding to subsequent
commands) due to high QMI service request arrival rates.

QMI service request rate limiting is achieved by:

1. Adding a new, optional options structure to qmi_qmux_device_new
   that has its rate-limit "quirk" and minimum request period fields
   set when the modem "RequestThrottleTimeUs" integer property is set.

2. Adding logic to the QMI driver that, when a minimum request period
   is set, limits the QMI service request rate accordingly.

(1) and (2) are used by the udevng and gobi plugins such that when the
modem vendor and model match 2c7c/0296, then the option to rate limit
QMI service requests is set to no more than one every 2,000 us.

Grant Erickson (7):
  qmi: Added enumeration for device quirk flags.
  qmi: Added structure for device options.
  qmi: Added device options parameter to 'qmi_qmux_device_new'.
  qmi: Implement QMI service request rate limiting in 'can_write_data'.
  qmi: Handle request rate limit option in 'qmi_qmux_device_new'.
  udevng: Set the QMI minimum service request period for Quectel BG96
    modems.
  gobi: Pass QMI qmux device options to 'qmi_qmux_device_new'.

 drivers/qmimodem/qmi.c | 48 +++++++++++++++++++++++++++++++++++++++++-
 drivers/qmimodem/qmi.h | 40 ++++++++++++++++++++++++++++++++++-
 plugins/gobi.c         | 22 ++++++++++++++++++-
 plugins/udevng.c       | 14 ++++++++++++
 4 files changed, 121 insertions(+), 3 deletions(-)

-- 
2.45.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-02-14 23:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-14 17:22 [PATCH v4 0/7] Add QMI Device Service Request Rate-limit Option Grant Erickson
2025-02-14 17:22 ` [PATCH v4 1/7] qmi: Added enumeration for device quirk flags Grant Erickson
2025-02-14 17:22 ` [PATCH v4 2/7] qmi: Added structure for device options Grant Erickson
2025-02-14 17:22 ` [PATCH v4 3/7] qmi: Added device options parameter to 'qmi_qmux_device_new' Grant Erickson
2025-02-14 17:22 ` [PATCH v4 4/7] qmi: Implement QMI service request rate limiting in 'can_write_data' Grant Erickson
2025-02-14 21:08   ` Denis Kenzior
2025-02-14 23:42     ` Grant Erickson
2025-02-14 17:22 ` [PATCH v4 5/7] qmi: Handle request rate limit option in 'qmi_qmux_device_new' Grant Erickson
2025-02-14 17:22 ` [PATCH v4 6/7] udevng: Set the QMI minimum service request period for Quectel BG96 modems Grant Erickson
2025-02-14 17:22 ` [PATCH v4 7/7] gobi: Pass QMI qmux device options to 'qmi_qmux_device_new' Grant Erickson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox