Lines Matching refs:acpi_aml_io

47 struct acpi_aml_io {  struct
62 static struct acpi_aml_io acpi_aml_io; argument
69 return acpi_aml_io.thread ? true : false; in __acpi_aml_running()
81 if (!(acpi_aml_io.flags & ACPI_AML_OPENED) || in __acpi_aml_access_ok()
82 (acpi_aml_io.flags & ACPI_AML_CLOSED) || in __acpi_aml_access_ok()
86 current != acpi_aml_io.thread) in __acpi_aml_access_ok()
97 if (!(acpi_aml_io.flags & flag) && circ_count(circ)) in __acpi_aml_readable()
108 if (!(acpi_aml_io.flags & flag) && circ_space(circ)) in __acpi_aml_writable()
115 if (acpi_aml_io.flags & ACPI_AML_BUSY) in __acpi_aml_busy()
122 if (acpi_aml_io.flags & ACPI_AML_OPEN) in __acpi_aml_opened()
129 return acpi_aml_io.usages ? true : false; in __acpi_aml_used()
136 mutex_lock(&acpi_aml_io.lock); in acpi_aml_running()
138 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_running()
146 mutex_lock(&acpi_aml_io.lock); in acpi_aml_busy()
148 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_busy()
160 mutex_lock(&acpi_aml_io.lock); in acpi_aml_used()
162 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_used()
170 mutex_lock(&acpi_aml_io.lock); in acpi_aml_kern_readable()
172 __acpi_aml_readable(&acpi_aml_io.in_crc, ACPI_AML_IN_KERN); in acpi_aml_kern_readable()
173 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_kern_readable()
181 mutex_lock(&acpi_aml_io.lock); in acpi_aml_kern_writable()
183 __acpi_aml_writable(&acpi_aml_io.out_crc, ACPI_AML_OUT_KERN); in acpi_aml_kern_writable()
184 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_kern_writable()
192 mutex_lock(&acpi_aml_io.lock); in acpi_aml_user_readable()
194 __acpi_aml_readable(&acpi_aml_io.out_crc, ACPI_AML_OUT_USER); in acpi_aml_user_readable()
195 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_user_readable()
203 mutex_lock(&acpi_aml_io.lock); in acpi_aml_user_writable()
205 __acpi_aml_writable(&acpi_aml_io.in_crc, ACPI_AML_IN_USER); in acpi_aml_user_writable()
206 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_user_writable()
214 mutex_lock(&acpi_aml_io.lock); in acpi_aml_lock_write()
223 acpi_aml_io.flags |= flag; in acpi_aml_lock_write()
225 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_lock_write()
233 mutex_lock(&acpi_aml_io.lock); in acpi_aml_lock_read()
242 acpi_aml_io.flags |= flag; in acpi_aml_lock_read()
244 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_lock_read()
250 mutex_lock(&acpi_aml_io.lock); in acpi_aml_unlock_fifo()
251 acpi_aml_io.flags &= ~flag; in acpi_aml_unlock_fifo()
253 wake_up_interruptible(&acpi_aml_io.wait); in acpi_aml_unlock_fifo()
254 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_unlock_fifo()
260 struct circ_buf *crc = &acpi_aml_io.out_crc; in acpi_aml_write_kern()
282 struct circ_buf *crc = &acpi_aml_io.in_crc; in acpi_aml_readb_kern()
320 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_write_log()
364 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_read_cmd()
395 mutex_lock(&acpi_aml_io.lock); in acpi_aml_thread()
396 if (acpi_aml_io.function) { in acpi_aml_thread()
397 acpi_aml_io.usages++; in acpi_aml_thread()
398 function = acpi_aml_io.function; in acpi_aml_thread()
399 context = acpi_aml_io.context; in acpi_aml_thread()
401 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_thread()
406 mutex_lock(&acpi_aml_io.lock); in acpi_aml_thread()
407 acpi_aml_io.usages--; in acpi_aml_thread()
409 acpi_aml_io.thread = NULL; in acpi_aml_thread()
410 wake_up(&acpi_aml_io.wait); in acpi_aml_thread()
412 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_thread()
429 mutex_lock(&acpi_aml_io.lock); in acpi_aml_create_thread()
430 acpi_aml_io.function = function; in acpi_aml_create_thread()
431 acpi_aml_io.context = context; in acpi_aml_create_thread()
432 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_create_thread()
440 mutex_lock(&acpi_aml_io.lock); in acpi_aml_create_thread()
441 acpi_aml_io.thread = t; in acpi_aml_create_thread()
444 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_create_thread()
474 mutex_lock(&acpi_aml_io.lock); in acpi_aml_open()
479 if (acpi_aml_io.flags & ACPI_AML_CLOSED) { in acpi_aml_open()
500 if (!(acpi_aml_io.flags & ACPI_AML_OPENED)) { in acpi_aml_open()
507 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_open()
518 mutex_lock(&acpi_aml_io.lock); in acpi_aml_open()
519 acpi_aml_io.flags |= ACPI_AML_OPENED; in acpi_aml_open()
520 acpi_aml_io.out_crc.head = acpi_aml_io.out_crc.tail = 0; in acpi_aml_open()
521 acpi_aml_io.in_crc.head = acpi_aml_io.in_crc.tail = 0; in acpi_aml_open()
524 acpi_aml_io.users++; in acpi_aml_open()
530 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_open()
537 mutex_lock(&acpi_aml_io.lock); in acpi_aml_release()
538 acpi_aml_io.users--; in acpi_aml_release()
544 acpi_aml_io.flags |= ACPI_AML_CLOSED; in acpi_aml_release()
550 wake_up_interruptible(&acpi_aml_io.wait); in acpi_aml_release()
551 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_release()
557 wait_event(acpi_aml_io.wait, !acpi_aml_busy()); in acpi_aml_release()
565 wait_event(acpi_aml_io.wait, !acpi_aml_used()); in acpi_aml_release()
568 mutex_lock(&acpi_aml_io.lock); in acpi_aml_release()
569 acpi_aml_io.flags &= ~ACPI_AML_OPENED; in acpi_aml_release()
571 if (acpi_aml_io.users == 0) { in acpi_aml_release()
573 acpi_aml_io.flags &= ~ACPI_AML_CLOSED; in acpi_aml_release()
575 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_release()
582 struct circ_buf *crc = &acpi_aml_io.out_crc; in acpi_aml_read_user()
624 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_read()
652 struct circ_buf *crc = &acpi_aml_io.in_crc; in acpi_aml_write_user()
694 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_write()
722 poll_wait(file, &acpi_aml_io.wait, wait); in acpi_aml_poll()
756 mutex_init(&acpi_aml_io.lock); in acpi_aml_init()
757 init_waitqueue_head(&acpi_aml_io.wait); in acpi_aml_init()
758 acpi_aml_io.out_crc.buf = acpi_aml_io.out_buf; in acpi_aml_init()
759 acpi_aml_io.in_crc.buf = acpi_aml_io.in_buf; in acpi_aml_init()