Input: synaptics-rmi4 - unlock on error
[sfrench/cifs-2.6.git] / drivers / input / rmi4 / rmi_f54.c
index cf805b960866215f52e96b2ae9a21ae373ddedfb..2e934aef3d2a8b675635fcdf9ccd4af807c4ef87 100644 (file)
@@ -200,7 +200,7 @@ static int rmi_f54_request_report(struct rmi_function *fn, u8 report_type)
 
        error = rmi_write(rmi_dev, fn->fd.command_base_addr, F54_GET_REPORT);
        if (error < 0)
-               return error;
+               goto unlock;
 
        init_completion(&f54->cmd_done);
 
@@ -209,9 +209,10 @@ static int rmi_f54_request_report(struct rmi_function *fn, u8 report_type)
 
        queue_delayed_work(f54->workqueue, &f54->work, 0);
 
+unlock:
        mutex_unlock(&f54->data_mutex);
 
-       return 0;
+       return error;
 }
 
 static size_t rmi_f54_get_report_size(struct f54_data *f54)