X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuqmi.git;a=blobdiff_plain;f=dev.c;h=a586157a996649c70df16bd86bfdce04fb1f2dbb;hp=68d404c2cbc0235a936c90356c4ce62c192953e3;hb=695ac858744ee1321582b76d8faaecbe00f79ab7;hpb=b61b3e8ff2b29e08b53eabc7b813c1c87c734947 diff --git a/dev.c b/dev.c index 68d404c..a586157 100644 --- a/dev.c +++ b/dev.c @@ -266,7 +266,7 @@ static void __qmi_service_disconnect(struct qmi_dev *qmi, int idx) int qmi_service_release_client_id(struct qmi_dev *qmi, QmiService svc) { int idx = qmi_get_service_idx(svc); - qmi->service_keep_cid &= ~(1 << idx); + qmi->service_release_cid |= 1 << idx; return 0; } @@ -275,6 +275,7 @@ static void qmi_close_all_services(struct qmi_dev *qmi) uint32_t connected = qmi->service_connected; int idx; + qmi->service_keep_cid &= ~qmi->service_release_cid; for (idx = 0; connected; idx++, connected >>= 1) { if (!(connected & 1)) continue; @@ -341,6 +342,7 @@ QmiService qmi_service_get_by_name(const char *str) { "pds", QMI_SERVICE_PDS }, { "wds", QMI_SERVICE_WDS }, { "wms", QMI_SERVICE_WMS }, + { "wda", QMI_SERVICE_WDA }, }; int i;