Lines Matching refs:handler
809 acpi_ec_get_query_handler(struct acpi_ec_query_handler *handler) in acpi_ec_get_query_handler() argument
811 if (handler) in acpi_ec_get_query_handler()
812 kref_get(&handler->kref); in acpi_ec_get_query_handler()
813 return handler; in acpi_ec_get_query_handler()
818 struct acpi_ec_query_handler *handler = in acpi_ec_query_handler_release() local
821 kfree(handler); in acpi_ec_query_handler_release()
824 static void acpi_ec_put_query_handler(struct acpi_ec_query_handler *handler) in acpi_ec_put_query_handler() argument
826 kref_put(&handler->kref, acpi_ec_query_handler_release); in acpi_ec_put_query_handler()
833 struct acpi_ec_query_handler *handler = in acpi_ec_add_query_handler() local
836 if (!handler) in acpi_ec_add_query_handler()
839 handler->query_bit = query_bit; in acpi_ec_add_query_handler()
840 handler->handle = handle; in acpi_ec_add_query_handler()
841 handler->func = func; in acpi_ec_add_query_handler()
842 handler->data = data; in acpi_ec_add_query_handler()
844 kref_init(&handler->kref); in acpi_ec_add_query_handler()
845 list_add(&handler->node, &ec->list); in acpi_ec_add_query_handler()
853 struct acpi_ec_query_handler *handler, *tmp; in acpi_ec_remove_query_handler() local
857 list_for_each_entry_safe(handler, tmp, &ec->list, node) { in acpi_ec_remove_query_handler()
858 if (query_bit == handler->query_bit) { in acpi_ec_remove_query_handler()
859 list_del_init(&handler->node); in acpi_ec_remove_query_handler()
860 list_add(&handler->node, &free_list); in acpi_ec_remove_query_handler()
864 list_for_each_entry_safe(handler, tmp, &free_list, node) in acpi_ec_remove_query_handler()
865 acpi_ec_put_query_handler(handler); in acpi_ec_remove_query_handler()
871 struct acpi_ec_query_handler *handler = cxt; in acpi_ec_run() local
873 if (!handler) in acpi_ec_run()
875 ec_dbg_evt("Query(0x%02x) started", handler->query_bit); in acpi_ec_run()
876 if (handler->func) in acpi_ec_run()
877 handler->func(handler->data); in acpi_ec_run()
878 else if (handler->handle) in acpi_ec_run()
879 acpi_evaluate_object(handler->handle, NULL, NULL, NULL); in acpi_ec_run()
880 ec_dbg_evt("Query(0x%02x) stopped", handler->query_bit); in acpi_ec_run()
881 acpi_ec_put_query_handler(handler); in acpi_ec_run()
889 struct acpi_ec_query_handler *handler; in acpi_ec_query() local
908 list_for_each_entry(handler, &ec->list, node) { in acpi_ec_query()
909 if (value == handler->query_bit) { in acpi_ec_query()
911 handler = acpi_ec_get_query_handler(handler); in acpi_ec_query()
913 handler->query_bit); in acpi_ec_query()
914 status = acpi_os_execute((handler->func) ? in acpi_ec_query()
916 acpi_ec_run, handler); in acpi_ec_query()
1165 struct acpi_ec_query_handler *handler, *tmp; in acpi_ec_remove() local
1173 list_for_each_entry_safe(handler, tmp, &ec->list, node) { in acpi_ec_remove()
1174 list_del(&handler->node); in acpi_ec_remove()
1175 kfree(handler); in acpi_ec_remove()