Loading drivers/soc/qcom/subsystem_restart.c +17 −0 Original line number Diff line number Diff line Loading @@ -620,6 +620,22 @@ static int for_each_subsys_device(struct subsys_device **list, return 0; } static void subsys_notif_uevent(struct subsys_desc *desc, enum subsys_notif_type notif) { char *envp[3]; if (notif == SUBSYS_AFTER_POWERUP) { envp[0] = kasprintf(GFP_KERNEL, "SUBSYSTEM=%s", desc->name); envp[1] = kasprintf(GFP_KERNEL, "NOTIFICATION=%d", notif); envp[2] = NULL; kobject_uevent_env(&desc->dev->kobj, KOBJ_CHANGE, envp); pr_debug("%s %s sent\n", envp[0], envp[1]); kfree(envp[1]); kfree(envp[0]); } } static void notify_each_subsys_device(struct subsys_device **list, unsigned int count, enum subsys_notif_type notif, void *data) Loading Loading @@ -666,6 +682,7 @@ static void notify_each_subsys_device(struct subsys_device **list, ¬if_data); cancel_timeout(dev->desc); trace_pil_notif("after_send_notif", notif, dev->desc->fw_name); subsys_notif_uevent(dev->desc, notif); } } Loading Loading
drivers/soc/qcom/subsystem_restart.c +17 −0 Original line number Diff line number Diff line Loading @@ -620,6 +620,22 @@ static int for_each_subsys_device(struct subsys_device **list, return 0; } static void subsys_notif_uevent(struct subsys_desc *desc, enum subsys_notif_type notif) { char *envp[3]; if (notif == SUBSYS_AFTER_POWERUP) { envp[0] = kasprintf(GFP_KERNEL, "SUBSYSTEM=%s", desc->name); envp[1] = kasprintf(GFP_KERNEL, "NOTIFICATION=%d", notif); envp[2] = NULL; kobject_uevent_env(&desc->dev->kobj, KOBJ_CHANGE, envp); pr_debug("%s %s sent\n", envp[0], envp[1]); kfree(envp[1]); kfree(envp[0]); } } static void notify_each_subsys_device(struct subsys_device **list, unsigned int count, enum subsys_notif_type notif, void *data) Loading Loading @@ -666,6 +682,7 @@ static void notify_each_subsys_device(struct subsys_device **list, ¬if_data); cancel_timeout(dev->desc); trace_pil_notif("after_send_notif", notif, dev->desc->fw_name); subsys_notif_uevent(dev->desc, notif); } } Loading