Lines Matching refs:handler

344 	struct sys_off_handler *handler;  in sys_off_notify()  local
347 handler = container_of(nb, struct sys_off_handler, nb); in sys_off_notify()
348 data.cb_data = handler->cb_data; in sys_off_notify()
351 data.dev = handler->dev; in sys_off_notify()
353 return handler->sys_off_cb(&data); in sys_off_notify()
360 struct sys_off_handler *handler; in alloc_sys_off_handler() local
368 handler = &platform_sys_off_handler; in alloc_sys_off_handler()
369 if (handler->cb_data) in alloc_sys_off_handler()
377 handler = kzalloc(sizeof(*handler), flags); in alloc_sys_off_handler()
378 if (!handler) in alloc_sys_off_handler()
382 return handler; in alloc_sys_off_handler()
385 static void free_sys_off_handler(struct sys_off_handler *handler) in free_sys_off_handler() argument
387 if (handler == &platform_sys_off_handler) in free_sys_off_handler()
388 memset(handler, 0, sizeof(*handler)); in free_sys_off_handler()
390 kfree(handler); in free_sys_off_handler()
420 struct sys_off_handler *handler; in register_sys_off_handler() local
423 handler = alloc_sys_off_handler(priority); in register_sys_off_handler()
424 if (IS_ERR(handler)) in register_sys_off_handler()
425 return handler; in register_sys_off_handler()
429 handler->list = &power_off_prep_handler_list; in register_sys_off_handler()
430 handler->blocking = true; in register_sys_off_handler()
434 handler->list = &power_off_handler_list; in register_sys_off_handler()
438 handler->list = &restart_prep_handler_list; in register_sys_off_handler()
439 handler->blocking = true; in register_sys_off_handler()
443 handler->list = &restart_handler_list; in register_sys_off_handler()
447 free_sys_off_handler(handler); in register_sys_off_handler()
451 handler->nb.notifier_call = sys_off_notify; in register_sys_off_handler()
452 handler->nb.priority = priority; in register_sys_off_handler()
453 handler->sys_off_cb = callback; in register_sys_off_handler()
454 handler->cb_data = cb_data; in register_sys_off_handler()
455 handler->mode = mode; in register_sys_off_handler()
457 if (handler->blocking) { in register_sys_off_handler()
459 err = blocking_notifier_chain_register(handler->list, in register_sys_off_handler()
460 &handler->nb); in register_sys_off_handler()
462 err = blocking_notifier_chain_register_unique_prio(handler->list, in register_sys_off_handler()
463 &handler->nb); in register_sys_off_handler()
466 err = atomic_notifier_chain_register(handler->list, in register_sys_off_handler()
467 &handler->nb); in register_sys_off_handler()
469 err = atomic_notifier_chain_register_unique_prio(handler->list, in register_sys_off_handler()
470 &handler->nb); in register_sys_off_handler()
474 free_sys_off_handler(handler); in register_sys_off_handler()
478 return handler; in register_sys_off_handler()
488 void unregister_sys_off_handler(struct sys_off_handler *handler) in unregister_sys_off_handler() argument
492 if (IS_ERR_OR_NULL(handler)) in unregister_sys_off_handler()
495 if (handler->blocking) in unregister_sys_off_handler()
496 err = blocking_notifier_chain_unregister(handler->list, in unregister_sys_off_handler()
497 &handler->nb); in unregister_sys_off_handler()
499 err = atomic_notifier_chain_unregister(handler->list, in unregister_sys_off_handler()
500 &handler->nb); in unregister_sys_off_handler()
505 free_sys_off_handler(handler); in unregister_sys_off_handler()
511 struct sys_off_handler *handler = data; in devm_unregister_sys_off_handler() local
513 unregister_sys_off_handler(handler); in devm_unregister_sys_off_handler()
534 struct sys_off_handler *handler; in devm_register_sys_off_handler() local
536 handler = register_sys_off_handler(mode, priority, callback, cb_data); in devm_register_sys_off_handler()
537 if (IS_ERR(handler)) in devm_register_sys_off_handler()
538 return PTR_ERR(handler); in devm_register_sys_off_handler()
539 handler->dev = dev; in devm_register_sys_off_handler()
542 handler); in devm_register_sys_off_handler()
614 struct sys_off_handler *handler; in register_platform_power_off() local
616 handler = register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, in register_platform_power_off()
620 if (IS_ERR(handler)) in register_platform_power_off()
621 return PTR_ERR(handler); in register_platform_power_off()
623 platform_power_off_handler = handler; in register_platform_power_off()