X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2Fkobject_uevent.c;h=586f2f57fbfc359946d50c7098c621038ac99de0;hb=d5b8a8a44ceb4250adc1847e02c2d7af7c8cbbc5;hp=f6c2c1e7779c9c93a11133a27c57081746f5fd2c;hpb=07f2d8c63fa439613405760841e41fce3041023f;p=firefly-linux-kernel-4.4.55.git 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)