|
@@ -322,6 +322,15 @@ fail:
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
+static void fw_finish_direct_load(struct device *device,
|
|
|
+ struct firmware_buf *buf)
|
|
|
+{
|
|
|
+ mutex_lock(&fw_lock);
|
|
|
+ set_bit(FW_STATUS_DONE, &buf->status);
|
|
|
+ complete_all(&buf->completion);
|
|
|
+ mutex_unlock(&fw_lock);
|
|
|
+}
|
|
|
+
|
|
|
static int fw_get_filesystem_firmware(struct device *device,
|
|
|
struct firmware_buf *buf)
|
|
|
{
|
|
@@ -363,10 +372,7 @@ static int fw_get_filesystem_firmware(struct device *device,
|
|
|
if (!rc) {
|
|
|
dev_dbg(device, "direct-loading %s\n",
|
|
|
buf->fw_id);
|
|
|
- mutex_lock(&fw_lock);
|
|
|
- set_bit(FW_STATUS_DONE, &buf->status);
|
|
|
- complete_all(&buf->completion);
|
|
|
- mutex_unlock(&fw_lock);
|
|
|
+ fw_finish_direct_load(device, buf);
|
|
|
}
|
|
|
|
|
|
return rc;
|