@@ -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 (l_streq0(modem->vendor, "2c7c")) {
+ if (l_streq0(modem->model, "0296"))
+ ofono_modem_set_integer(modem->modem,
+ "RequestThrottleTimeUs", 2000);
+ }
+
for (list = modem->devices; list; list = g_slist_next(list)) {
const struct device_info *info = list->data;
const char *subsystem =