Lines Matching refs:irq_ptr

77 void tiqdio_add_input_queues(struct qdio_irq *irq_ptr)  in tiqdio_add_input_queues()  argument
80 list_add_rcu(&irq_ptr->input_qs[0]->entry, &tiq_list); in tiqdio_add_input_queues()
82 xchg(irq_ptr->dsci, 1 << 7); in tiqdio_add_input_queues()
85 void tiqdio_remove_input_queues(struct qdio_irq *irq_ptr) in tiqdio_remove_input_queues() argument
89 q = irq_ptr->input_qs[0]; in tiqdio_remove_input_queues()
100 static inline int has_multiple_inq_on_dsci(struct qdio_irq *irq_ptr) in has_multiple_inq_on_dsci() argument
102 return irq_ptr->nr_input_qs > 1; in has_multiple_inq_on_dsci()
105 static inline int references_shared_dsci(struct qdio_irq *irq_ptr) in references_shared_dsci() argument
107 return irq_ptr->dsci == &q_indicators[TIQDIO_SHARED_IND].ind; in references_shared_dsci()
110 static inline int shared_ind(struct qdio_irq *irq_ptr) in shared_ind() argument
112 return references_shared_dsci(irq_ptr) || in shared_ind()
113 has_multiple_inq_on_dsci(irq_ptr); in shared_ind()
116 void clear_nonshared_ind(struct qdio_irq *irq_ptr) in clear_nonshared_ind() argument
118 if (!is_thinint_irq(irq_ptr)) in clear_nonshared_ind()
120 if (shared_ind(irq_ptr)) in clear_nonshared_ind()
122 xchg(irq_ptr->dsci, 0); in clear_nonshared_ind()
125 int test_nonshared_ind(struct qdio_irq *irq_ptr) in test_nonshared_ind() argument
127 if (!is_thinint_irq(irq_ptr)) in test_nonshared_ind()
129 if (shared_ind(irq_ptr)) in test_nonshared_ind()
131 if (*irq_ptr->dsci) in test_nonshared_ind()
198 irq = q->irq_ptr; in tiqdio_thinint_handler()
212 static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset) in set_subchannel_ind() argument
214 struct chsc_scssc_area *scssc = (void *)irq_ptr->chsc_page; in set_subchannel_ind()
223 subchannel_indicator_addr = virt_to_phys(irq_ptr->dsci); in set_subchannel_ind()
226 rc = chsc_sadc(irq_ptr->schid, scssc, summary_indicator_addr, in set_subchannel_ind()
229 DBF_ERROR("%4x SSI r:%4x", irq_ptr->schid.sch_no, in set_subchannel_ind()
269 int qdio_establish_thinint(struct qdio_irq *irq_ptr) in qdio_establish_thinint() argument
271 if (!is_thinint_irq(irq_ptr)) in qdio_establish_thinint()
273 return set_subchannel_ind(irq_ptr, 0); in qdio_establish_thinint()
276 void qdio_setup_thinint(struct qdio_irq *irq_ptr) in qdio_setup_thinint() argument
278 if (!is_thinint_irq(irq_ptr)) in qdio_setup_thinint()
280 irq_ptr->dsci = get_indicator(); in qdio_setup_thinint()
281 DBF_HEX(&irq_ptr->dsci, sizeof(void *)); in qdio_setup_thinint()
284 void qdio_shutdown_thinint(struct qdio_irq *irq_ptr) in qdio_shutdown_thinint() argument
286 if (!is_thinint_irq(irq_ptr)) in qdio_shutdown_thinint()
290 set_subchannel_ind(irq_ptr, 1); in qdio_shutdown_thinint()
291 put_indicator(irq_ptr->dsci); in qdio_shutdown_thinint()