Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8be65bee authored by Tim Murray's avatar Tim Murray Committed by Gerrit - the friendly Code Review server
Browse files

firmware_class: make firmware caching configurable



Because firmware caching generates uevent messages that are sent over a
netlink socket, it can prevent suspend on many platforms. It's also not
always useful, so make it a configurable option.

bug 32180327

Change-Id: I1250512b27edb56caa78d536e5ccf1fb669476ad
Signed-off-by: default avatarTim Murray <timmurray@google.com>
Git-repo: https://source.codeaurora.org/quic/la/kernel/msm-4.4


Git-commit: e3198d51be98ec5606e2a2c5112a8a974d354fbc
Signed-off-by: default avatarChintan Pandya <cpandya@codeaurora.org>
Signed-off-by: default avatarSrinivasarao P <spathi@codeaurora.org>
parent 385635a1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -165,6 +165,11 @@ config FW_LOADER_USER_HELPER_FALLBACK

	  If you are unsure about this, say N here.

config FW_CACHE
       bool "Enable firmware caching during suspend"
       depends on PM_SLEEP
       default n

config WANT_DEV_COREDUMP
	bool
	help
+4 −4
Original line number Diff line number Diff line
@@ -1148,7 +1148,7 @@ static int fw_load_from_user_helper(struct firmware *firmware,
	return _request_firmware_load(fw_priv, desc->opt_flags, timeout);
}

#ifdef CONFIG_PM_SLEEP
#ifdef CONFIG_FW_CACHE
/* kill pending requests without uevent to avoid blocking suspend */
static void kill_requests_without_uevent(void)
{
@@ -1626,7 +1626,7 @@ request_firmware_nowait_into_buf(
}
EXPORT_SYMBOL_GPL(request_firmware_nowait_into_buf);

#ifdef CONFIG_PM_SLEEP
#ifdef CONFIG_FW_CACHE
static ASYNC_DOMAIN_EXCLUSIVE(fw_cache_domain);

/**
@@ -1972,7 +1972,7 @@ static void __init fw_cache_init(void)
	INIT_LIST_HEAD(&fw_cache.head);
	fw_cache.state = FW_LOADER_NO_CACHE;

#ifdef CONFIG_PM_SLEEP
#ifdef CONFIG_FW_CACHE
	spin_lock_init(&fw_cache.name_lock);
	INIT_LIST_HEAD(&fw_cache.fw_names);

@@ -1999,7 +1999,7 @@ static int __init firmware_class_init(void)

static void __exit firmware_class_exit(void)
{
#ifdef CONFIG_PM_SLEEP
#ifdef CONFIG_FW_CACHE
	unregister_syscore_ops(&fw_syscore_ops);
	unregister_pm_notifier(&fw_cache.pm_notify);
#endif