Comment 1 for bug 331415

Revision history for this message
TJ (tj) wrote : Re: [Bug 331415] [NEW] request_firmware() fails on resume from suspend

Digging into the source the 60-second pause is the default firmware
loading-timeout in drivers/base/firmware_class.c:

static int loading_timeout = 60; /* In seconds */

which is applied in _request_firmware():

 fw_priv = dev_get_drvdata(f_dev);

 if (uevent) {
  if (loading_timeout > 0) {
   fw_priv->timeout.expires = jiffies + loading_timeout * HZ;
   add_timer(&fw_priv->timeout);
  }
  kobject_uevent(&f_dev->kobj, KOBJ_ADD);
  wait_for_completion(&fw_priv->completion);
  set_bit(FW_STATUS_DONE, &fw_priv->status);
  del_timer_sync(&fw_priv->timeout);
 } else
  wait_for_completion(&fw_priv->completion);

 mutex_lock(&fw_lock);