public inbox for ofono@lists.linux.dev
 help / color / mirror / Atom feed
From: Grant Erickson <gerickson@nuovations.com>
To: ofono@lists.linux.dev
Subject: [PATCH v4 0/7] Add QMI Device Service Request Rate-limit Option
Date: Fri, 14 Feb 2025 09:22:34 -0800	[thread overview]
Message-ID: <cover.1739553712.git.gerickson@nuovations.com> (raw)

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


             reply	other threads:[~2025-02-14 17:22 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-14 17:22 Grant Erickson [this message]
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

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=cover.1739553712.git.gerickson@nuovations.com \
    --to=gerickson@nuovations.com \
    --cc=ofono@lists.linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox