Lines Matching refs:sc

119 	struct scmi_syspower_conf *sc = reboot_nb_to_sconf(nb);
121 mutex_lock(&sc->state_mtx);
125 if (sc->required_transition == SCMI_SYSTEM_SHUTDOWN)
126 sc->state = SCMI_SYSPOWER_REBOOTING;
129 if (sc->required_transition == SCMI_SYSTEM_COLDRESET ||
130 sc->required_transition == SCMI_SYSTEM_WARMRESET)
131 sc->state = SCMI_SYSPOWER_REBOOTING;
137 if (sc->state == SCMI_SYSPOWER_REBOOTING) {
138 dev_dbg(sc->dev, "Reboot in progress...cancel delayed work.\n");
139 cancel_delayed_work_sync(&sc->forceful_work);
141 mutex_unlock(&sc->state_mtx);
148 * @sc: A reference to the configuration data
155 scmi_request_forceful_transition(struct scmi_syspower_conf *sc)
157 dev_dbg(sc->dev, "Serving forceful request:%d\n",
158 sc->required_transition);
163 switch (sc->required_transition) {
178 struct scmi_syspower_conf *sc;
185 sc = dwork_to_sconf(dwork);
187 dev_dbg(sc->dev, "Graceful request timed out...forcing !\n");
188 mutex_lock(&sc->state_mtx);
190 unregister_reboot_notifier(&sc->reboot_nb);
191 if (sc->state == SCMI_SYSPOWER_IN_PROGRESS)
192 scmi_request_forceful_transition(sc);
193 mutex_unlock(&sc->state_mtx);
198 * @sc: A reference to the configuration data
210 static void scmi_request_graceful_transition(struct scmi_syspower_conf *sc,
218 sc->reboot_nb.notifier_call = &scmi_reboot_notifier;
219 ret = register_reboot_notifier(&sc->reboot_nb);
223 INIT_DELAYED_WORK(&sc->forceful_work,
225 schedule_delayed_work(&sc->forceful_work,
229 dev_warn(sc->dev,
234 dev_dbg(sc->dev,
236 sc->required_transition, timeout_ms, adj_timeout_ms);
238 switch (sc->required_transition) {
278 struct scmi_syspower_conf *sc = userspace_nb_to_sconf(nb);
281 dev_err(sc->dev, "Ignoring unsupported system_state: 0x%X\n",
287 dev_err(sc->dev, "Ignoring forceful notification.\n");
297 mutex_lock(&sc->state_mtx);
298 if (sc->state != SCMI_SYSPOWER_IDLE) {
299 dev_dbg(sc->dev,
301 mutex_unlock(&sc->state_mtx);
304 sc->state = SCMI_SYSPOWER_IN_PROGRESS;
305 mutex_unlock(&sc->state_mtx);
307 sc->required_transition = er->system_state;
310 dev_info(sc->dev, "Serving shutdown/reboot request: %d\n",
311 sc->required_transition);
313 scmi_request_graceful_transition(sc, er->timeout);
321 struct scmi_syspower_conf *sc;
331 sc = devm_kzalloc(&sdev->dev, sizeof(*sc), GFP_KERNEL);
332 if (!sc)
335 sc->state = SCMI_SYSPOWER_IDLE;
336 mutex_init(&sc->state_mtx);
337 sc->required_transition = SCMI_SYSTEM_MAX;
338 sc->userspace_nb.notifier_call = &scmi_userspace_notifier;
339 sc->dev = &sdev->dev;
344 NULL, &sc->userspace_nb);