Lines Matching refs:acpi_aml_io
50 struct acpi_aml_io { struct
65 static struct acpi_aml_io acpi_aml_io; argument
72 return acpi_aml_io.thread ? true : false; in __acpi_aml_running()
84 if (!(acpi_aml_io.flags & ACPI_AML_OPENED) || in __acpi_aml_access_ok()
85 (acpi_aml_io.flags & ACPI_AML_CLOSED) || in __acpi_aml_access_ok()
89 current != acpi_aml_io.thread) in __acpi_aml_access_ok()
100 if (!(acpi_aml_io.flags & flag) && circ_count(circ)) in __acpi_aml_readable()
111 if (!(acpi_aml_io.flags & flag) && circ_space(circ)) in __acpi_aml_writable()
118 if (acpi_aml_io.flags & ACPI_AML_BUSY) in __acpi_aml_busy()
125 if (acpi_aml_io.flags & ACPI_AML_OPEN) in __acpi_aml_opened()
132 return acpi_aml_io.usages ? true : false; in __acpi_aml_used()
139 mutex_lock(&acpi_aml_io.lock); in acpi_aml_running()
141 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_running()
149 mutex_lock(&acpi_aml_io.lock); in acpi_aml_busy()
151 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_busy()
163 mutex_lock(&acpi_aml_io.lock); in acpi_aml_used()
165 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_used()
173 mutex_lock(&acpi_aml_io.lock); in acpi_aml_kern_readable()
175 __acpi_aml_readable(&acpi_aml_io.in_crc, ACPI_AML_IN_KERN); in acpi_aml_kern_readable()
176 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_kern_readable()
184 mutex_lock(&acpi_aml_io.lock); in acpi_aml_kern_writable()
186 __acpi_aml_writable(&acpi_aml_io.out_crc, ACPI_AML_OUT_KERN); in acpi_aml_kern_writable()
187 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_kern_writable()
195 mutex_lock(&acpi_aml_io.lock); in acpi_aml_user_readable()
197 __acpi_aml_readable(&acpi_aml_io.out_crc, ACPI_AML_OUT_USER); in acpi_aml_user_readable()
198 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_user_readable()
206 mutex_lock(&acpi_aml_io.lock); in acpi_aml_user_writable()
208 __acpi_aml_writable(&acpi_aml_io.in_crc, ACPI_AML_IN_USER); in acpi_aml_user_writable()
209 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_user_writable()
217 mutex_lock(&acpi_aml_io.lock); in acpi_aml_lock_write()
226 acpi_aml_io.flags |= flag; in acpi_aml_lock_write()
228 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_lock_write()
236 mutex_lock(&acpi_aml_io.lock); in acpi_aml_lock_read()
245 acpi_aml_io.flags |= flag; in acpi_aml_lock_read()
247 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_lock_read()
253 mutex_lock(&acpi_aml_io.lock); in acpi_aml_unlock_fifo()
254 acpi_aml_io.flags &= ~flag; in acpi_aml_unlock_fifo()
256 wake_up_interruptible(&acpi_aml_io.wait); in acpi_aml_unlock_fifo()
257 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_unlock_fifo()
263 struct circ_buf *crc = &acpi_aml_io.out_crc; in acpi_aml_write_kern()
285 struct circ_buf *crc = &acpi_aml_io.in_crc; in acpi_aml_readb_kern()
323 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_write_log()
367 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_read_cmd()
398 mutex_lock(&acpi_aml_io.lock); in acpi_aml_thread()
399 if (acpi_aml_io.function) { in acpi_aml_thread()
400 acpi_aml_io.usages++; in acpi_aml_thread()
401 function = acpi_aml_io.function; in acpi_aml_thread()
402 context = acpi_aml_io.context; in acpi_aml_thread()
404 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_thread()
409 mutex_lock(&acpi_aml_io.lock); in acpi_aml_thread()
410 acpi_aml_io.usages--; in acpi_aml_thread()
412 acpi_aml_io.thread = NULL; in acpi_aml_thread()
413 wake_up(&acpi_aml_io.wait); in acpi_aml_thread()
415 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_thread()
432 mutex_lock(&acpi_aml_io.lock); in acpi_aml_create_thread()
433 acpi_aml_io.function = function; in acpi_aml_create_thread()
434 acpi_aml_io.context = context; in acpi_aml_create_thread()
435 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_create_thread()
443 mutex_lock(&acpi_aml_io.lock); in acpi_aml_create_thread()
444 acpi_aml_io.thread = t; in acpi_aml_create_thread()
447 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_create_thread()
477 mutex_lock(&acpi_aml_io.lock); in acpi_aml_open()
482 if (acpi_aml_io.flags & ACPI_AML_CLOSED) { in acpi_aml_open()
503 if (!(acpi_aml_io.flags & ACPI_AML_OPENED)) { in acpi_aml_open()
510 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_open()
521 mutex_lock(&acpi_aml_io.lock); in acpi_aml_open()
522 acpi_aml_io.flags |= ACPI_AML_OPENED; in acpi_aml_open()
523 acpi_aml_io.out_crc.head = acpi_aml_io.out_crc.tail = 0; in acpi_aml_open()
524 acpi_aml_io.in_crc.head = acpi_aml_io.in_crc.tail = 0; in acpi_aml_open()
527 acpi_aml_io.users++; in acpi_aml_open()
533 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_open()
540 mutex_lock(&acpi_aml_io.lock); in acpi_aml_release()
541 acpi_aml_io.users--; in acpi_aml_release()
547 acpi_aml_io.flags |= ACPI_AML_CLOSED; in acpi_aml_release()
553 wake_up_interruptible(&acpi_aml_io.wait); in acpi_aml_release()
554 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_release()
560 wait_event(acpi_aml_io.wait, !acpi_aml_busy()); in acpi_aml_release()
568 wait_event(acpi_aml_io.wait, !acpi_aml_used()); in acpi_aml_release()
571 mutex_lock(&acpi_aml_io.lock); in acpi_aml_release()
572 acpi_aml_io.flags &= ~ACPI_AML_OPENED; in acpi_aml_release()
574 if (acpi_aml_io.users == 0) { in acpi_aml_release()
576 acpi_aml_io.flags &= ~ACPI_AML_CLOSED; in acpi_aml_release()
578 mutex_unlock(&acpi_aml_io.lock); in acpi_aml_release()
585 struct circ_buf *crc = &acpi_aml_io.out_crc; in acpi_aml_read_user()
627 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_read()
655 struct circ_buf *crc = &acpi_aml_io.in_crc; in acpi_aml_write_user()
697 ret = wait_event_interruptible(acpi_aml_io.wait, in acpi_aml_write()
725 poll_wait(file, &acpi_aml_io.wait, wait); in acpi_aml_poll()
761 mutex_init(&acpi_aml_io.lock); in acpi_aml_init()
762 init_waitqueue_head(&acpi_aml_io.wait); in acpi_aml_init()
763 acpi_aml_io.out_crc.buf = acpi_aml_io.out_buf; in acpi_aml_init()
764 acpi_aml_io.in_crc.buf = acpi_aml_io.in_buf; in acpi_aml_init()