Lines Matching refs:irq_ptr

75 void tiqdio_add_input_queues(struct qdio_irq *irq_ptr)
78 BUG_ON(irq_ptr->nr_input_qs < 1);
79 list_add_rcu(&irq_ptr->input_qs[0]->entry, &tiq_list);
81 xchg(irq_ptr->dsci, 1 << 7);
84 void tiqdio_remove_input_queues(struct qdio_irq *irq_ptr)
88 BUG_ON(irq_ptr->nr_input_qs < 1);
89 q = irq_ptr->input_qs[0];
100 static inline int has_multiple_inq_on_dsci(struct qdio_irq *irq_ptr)
102 return irq_ptr->nr_input_qs > 1;
105 static inline int references_shared_dsci(struct qdio_irq *irq_ptr)
107 return irq_ptr->dsci == &q_indicators[TIQDIO_SHARED_IND].ind;
110 static inline int shared_ind(struct qdio_irq *irq_ptr)
112 return references_shared_dsci(irq_ptr) ||
113 has_multiple_inq_on_dsci(irq_ptr);
116 void clear_nonshared_ind(struct qdio_irq *irq_ptr)
118 if (!is_thinint_irq(irq_ptr))
120 if (shared_ind(irq_ptr))
122 xchg(irq_ptr->dsci, 0);
125 int test_nonshared_ind(struct qdio_irq *irq_ptr)
127 if (!is_thinint_irq(irq_ptr))
129 if (shared_ind(irq_ptr))
131 if (*irq_ptr->dsci)
152 xchg(q->irq_ptr->dsci, 0);
163 q->u.in.queue_start_poll(q->irq_ptr->cdev, q->nr,
164 q->irq_ptr->int_parm);
166 if (!shared_ind(q->irq_ptr))
167 xchg(q->irq_ptr->dsci, 0);
199 irq = q->irq_ptr;
213 static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset)
218 scssc_area = (struct scssc_area *)irq_ptr->chsc_page;
227 virt_to_phys(irq_ptr->dsci);
238 scssc_area->schid = irq_ptr->schid;
250 DBF_ERROR("%4x SSI r:%4x", irq_ptr->schid.sch_no,
291 int qdio_establish_thinint(struct qdio_irq *irq_ptr)
293 if (!is_thinint_irq(irq_ptr))
295 return set_subchannel_ind(irq_ptr, 0);
298 void qdio_setup_thinint(struct qdio_irq *irq_ptr)
300 if (!is_thinint_irq(irq_ptr))
302 irq_ptr->dsci = get_indicator();
303 DBF_HEX(&irq_ptr->dsci, sizeof(void *));
306 void qdio_shutdown_thinint(struct qdio_irq *irq_ptr)
308 if (!is_thinint_irq(irq_ptr))
312 set_subchannel_ind(irq_ptr, 1);
313 put_indicator(irq_ptr->dsci);