add an option for releasing client ids
[project/uqmi.git] / dev.c
diff --git a/dev.c b/dev.c
index b00ee8d..76a8f30 100644 (file)
--- a/dev.c
+++ b/dev.c
@@ -49,7 +49,6 @@ static void __qmi_request_complete(struct qmi_dev *qmi, struct qmi_request *req,
 {
        void *tlv_buf;
        int tlv_len;
-       int ret;
 
        if (!req->pending)
                return;
@@ -103,7 +102,6 @@ static void qmi_notify_read(struct ustream *us, int bytes)
        struct qmi_msg *msg;
        char *buf;
        int len, msg_len;
-       int i;
 
        while (1) {
                buf = ustream_get_read_buf(us, &len);
@@ -128,8 +126,6 @@ int qmi_request_start(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_m
 {
        int len = qmi_complete_request_message(msg);
        uint16_t tid;
-       int ret;
-       int i;
 
        memset(req, 0, sizeof(*req));
        req->ret = -1;
@@ -265,6 +261,13 @@ static void __qmi_service_disconnect(struct qmi_dev *qmi, int idx)
        qmi_request_wait(qmi, &req);
 }
 
+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);
+       return 0;
+}
+
 static void qmi_close_all_services(struct qmi_dev *qmi)
 {
        uint32_t connected = qmi->service_connected;
@@ -314,7 +317,6 @@ int qmi_device_open(struct qmi_dev *qmi, const char *path)
 void qmi_device_close(struct qmi_dev *qmi)
 {
        struct qmi_request *req;
-       int idx;
 
        qmi_close_all_services(qmi);
        ustream_free(&qmi->sf.stream);