From: Huang, Tao Date: Fri, 26 Aug 2016 11:19:04 +0000 (+0800) Subject: HACK: lib/kobject_uevent.c: ignore thermal uevent when suspend X-Git-Tag: firefly_0821_release~1653 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=58f443ef96965f083dda689adafa404bd321877c;p=firefly-linux-kernel-4.4.55.git HACK: lib/kobject_uevent.c: ignore thermal uevent when suspend Android healthd try to listen power_supply subsystem uevent, but which will block system from suspend on big.LITTLE system because thermal_cooling_device_unregister will called when cpufreq_exit. So ignore this uevent when suspend. Change-Id: I35948498916560d5ec75fe561c9e9d588663ad22 Signed-off-by: Huang, Tao --- diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index f6c2c1e7779c..586f2f57fbfc 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -223,6 +223,21 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, return 0; } + if (IS_ENABLED(CONFIG_ARCH_ROCKCHIP) && + IS_ENABLED(CONFIG_FREEZER) && + IS_ENABLED(CONFIG_ANDROID)) { + /* + * Android healthd try to listen power_supply subsystem uevent, + * but which will block system from suspend on big.LITTLE system + * because thermal_cooling_device_unregister will called when + * cpufreq_exit. So ignore this uevent when suspend. + */ + extern bool pm_freezing; + + if (pm_freezing && !strcmp(subsystem, "thermal")) + return 0; + } + /* environment buffer */ env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL); if (!env)