Lines Matching refs:consumer
87 struct irq_bypass_consumer *consumer;
107 list_for_each_entry(consumer, &consumers, node) {
108 if (consumer->token == producer->token) {
109 ret = __connect(producer, consumer);
133 * and disconnect it from any connected IRQ consumer.
138 struct irq_bypass_consumer *consumer;
154 list_for_each_entry(consumer, &consumers, node) {
155 if (consumer->token == producer->token) {
156 __disconnect(producer, consumer);
173 * irq_bypass_register_consumer - register IRQ bypass consumer
174 * @consumer: pointer to consumer structure
176 * Add the provided IRQ consumer to the list of consumers and connect
179 int irq_bypass_register_consumer(struct irq_bypass_consumer *consumer)
185 if (!consumer->token ||
186 !consumer->add_producer || !consumer->del_producer)
197 if (tmp->token == consumer->token || tmp == consumer) {
204 if (producer->token == consumer->token) {
205 ret = __connect(producer, consumer);
212 list_add(&consumer->node, &consumers);
225 * irq_bypass_unregister_consumer - unregister IRQ bypass consumer
226 * @consumer: pointer to consumer structure
228 * Remove a previously registered IRQ consumer from the list of consumers
231 void irq_bypass_unregister_consumer(struct irq_bypass_consumer *consumer)
236 if (!consumer->token)
247 if (tmp != consumer)
251 if (producer->token == consumer->token) {
252 __disconnect(producer, consumer);
257 list_del(&consumer->node);