Lines Matching refs:optee

21 static bool have_key(struct optee *optee, u_int key)  in have_key()  argument
25 list_for_each_entry(entry, &optee->notif.db, link) in have_key()
32 int optee_notif_wait(struct optee *optee, u_int key) in optee_notif_wait() argument
38 if (key > optee->notif.max_key) in optee_notif_wait()
47 spin_lock_irqsave(&optee->notif.lock, flags); in optee_notif_wait()
53 if (test_bit(key, optee->notif.bitmap)) { in optee_notif_wait()
54 clear_bit(key, optee->notif.bitmap); in optee_notif_wait()
62 if (have_key(optee, key)) { in optee_notif_wait()
67 list_add_tail(&entry->link, &optee->notif.db); in optee_notif_wait()
72 spin_unlock_irqrestore(&optee->notif.lock, flags); in optee_notif_wait()
74 spin_lock_irqsave(&optee->notif.lock, flags); in optee_notif_wait()
78 spin_unlock_irqrestore(&optee->notif.lock, flags); in optee_notif_wait()
85 int optee_notif_send(struct optee *optee, u_int key) in optee_notif_send() argument
90 if (key > optee->notif.max_key) in optee_notif_send()
93 spin_lock_irqsave(&optee->notif.lock, flags); in optee_notif_send()
95 list_for_each_entry(entry, &optee->notif.db, link) in optee_notif_send()
102 set_bit(key, optee->notif.bitmap); in optee_notif_send()
104 spin_unlock_irqrestore(&optee->notif.lock, flags); in optee_notif_send()
109 int optee_notif_init(struct optee *optee, u_int max_key) in optee_notif_init() argument
111 spin_lock_init(&optee->notif.lock); in optee_notif_init()
112 INIT_LIST_HEAD(&optee->notif.db); in optee_notif_init()
113 optee->notif.bitmap = bitmap_zalloc(max_key, GFP_KERNEL); in optee_notif_init()
114 if (!optee->notif.bitmap) in optee_notif_init()
117 optee->notif.max_key = max_key; in optee_notif_init()
122 void optee_notif_uninit(struct optee *optee) in optee_notif_uninit() argument
124 bitmap_free(optee->notif.bitmap); in optee_notif_uninit()