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);
Digging into the source the 60-second pause is the default firmware base/firmware_ class.c:
loading-timeout in drivers/
static int loading_timeout = 60; /* In seconds */
which is applied in _request_ firmware( ):
fw_priv = dev_get_ drvdata( f_dev);
if (uevent) { >timeout. expires = jiffies + loading_timeout * HZ; timer(& fw_priv- >timeout) ; uevent( &f_dev- >kobj, KOBJ_ADD); for_completion( &fw_priv- >completion) ; FW_STATUS_ DONE, &fw_priv->status); sync(&fw_ priv->timeout) ; for_completion( &fw_priv- >completion) ;
if (loading_timeout > 0) {
fw_priv-
add_
}
kobject_
wait_
set_bit(
del_timer_
} else
wait_
mutex_ lock(&fw_ lock);