On 07/28/2016 07:57 PM, Dmitry Torokhov wrote:
On Thu, Jul 28, 2016 at 09:55:07AM +0200, Daniel Wagner wrote:
+int __firmware_stat_wait(struct firmware_stat *fwst,
+                               long timeout)
+{
+       int err;
+       err = swait_event_interruptible_timeout(fwst->wq,
+                               is_fw_sync_done(READ_ONCE(fwst->status)),
+                               timeout);
+       if (err == 0 && fwst->status == FW_STATUS_ABORT)
+               return -ENOENT;
+
+       return err;
+}
+EXPORT_SYMBOL(__firmware_stat_wait);
+
+void __firmware_stat_set(struct firmware_stat *fwst, unsigned long status)
+{
+       WRITE_ONCE(fwst->status, status);
+       swake_up(&fwst->wq);

Do we need to notify everyone for FW_STATUS_LOADING status?

Hmm, I don't think so. In the end drivers are probably only interested in the final result which is either success or fail.

cheers,
daniel

Reply via email to