diff options
author | Mark Brown <broonie@kernel.org> | 2015-08-27 20:30:46 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-08-27 20:30:46 +0100 |
commit | 2002e90412df17ef7f714be62ed96a3c80b2f907 (patch) | |
tree | 3dd03684f7436320ec64f9c702b5d057a25dca17 /drivers/base/firmware_class.c | |
parent | 02a9547e9b3f10d73fde66f52fc8b2a375a300cd (diff) | |
parent | 3b7ce99748f0d006f9d1aa85709872e7b46787f7 (diff) | |
download | kernel_replicant_linux-2002e90412df17ef7f714be62ed96a3c80b2f907.tar.gz kernel_replicant_linux-2002e90412df17ef7f714be62ed96a3c80b2f907.tar.bz2 kernel_replicant_linux-2002e90412df17ef7f714be62ed96a3c80b2f907.zip |
Merge branch 'topic/ics43432' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-gtm601
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r-- | drivers/base/firmware_class.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 9c4288362a8e..894bda114224 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -563,10 +563,8 @@ static void fw_dev_release(struct device *dev) kfree(fw_priv); } -static int firmware_uevent(struct device *dev, struct kobj_uevent_env *env) +static int do_firmware_uevent(struct firmware_priv *fw_priv, struct kobj_uevent_env *env) { - struct firmware_priv *fw_priv = to_firmware_priv(dev); - if (add_uevent_var(env, "FIRMWARE=%s", fw_priv->buf->fw_id)) return -ENOMEM; if (add_uevent_var(env, "TIMEOUT=%i", loading_timeout)) @@ -577,6 +575,18 @@ static int firmware_uevent(struct device *dev, struct kobj_uevent_env *env) return 0; } +static int firmware_uevent(struct device *dev, struct kobj_uevent_env *env) +{ + struct firmware_priv *fw_priv = to_firmware_priv(dev); + int err = 0; + + mutex_lock(&fw_lock); + if (fw_priv->buf) + err = do_firmware_uevent(fw_priv, env); + mutex_unlock(&fw_lock); + return err; +} + static struct class firmware_class = { .name = "firmware", .class_attrs = firmware_class_attrs, |