Lines Matching refs:irq_ptr
69 void tiqdio_add_device(struct qdio_irq *irq_ptr) in tiqdio_add_device() argument
72 list_add_rcu(&irq_ptr->entry, &tiq_list); in tiqdio_add_device()
76 void tiqdio_remove_device(struct qdio_irq *irq_ptr) in tiqdio_remove_device() argument
79 list_del_rcu(&irq_ptr->entry); in tiqdio_remove_device()
82 INIT_LIST_HEAD(&irq_ptr->entry); in tiqdio_remove_device()
85 static inline int references_shared_dsci(struct qdio_irq *irq_ptr) in references_shared_dsci() argument
87 return irq_ptr->dsci == &q_indicators[TIQDIO_SHARED_IND].ind; in references_shared_dsci()
90 int test_nonshared_ind(struct qdio_irq *irq_ptr) in test_nonshared_ind() argument
92 if (!is_thinint_irq(irq_ptr)) in test_nonshared_ind()
94 if (references_shared_dsci(irq_ptr)) in test_nonshared_ind()
96 if (*irq_ptr->dsci) in test_nonshared_ind()
171 static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset) in set_subchannel_ind() argument
173 struct chsc_scssc_area *scssc = (void *)irq_ptr->chsc_page; in set_subchannel_ind()
182 subchannel_indicator_addr = virt_to_phys(irq_ptr->dsci); in set_subchannel_ind()
185 rc = chsc_sadc(irq_ptr->schid, scssc, summary_indicator_addr, in set_subchannel_ind()
188 DBF_ERROR("%4x SSI r:%4x", irq_ptr->schid.sch_no, in set_subchannel_ind()
200 int qdio_establish_thinint(struct qdio_irq *irq_ptr) in qdio_establish_thinint() argument
204 if (!is_thinint_irq(irq_ptr)) in qdio_establish_thinint()
207 irq_ptr->dsci = get_indicator(); in qdio_establish_thinint()
208 DBF_HEX(&irq_ptr->dsci, sizeof(void *)); in qdio_establish_thinint()
210 rc = set_subchannel_ind(irq_ptr, 0); in qdio_establish_thinint()
212 put_indicator(irq_ptr->dsci); in qdio_establish_thinint()
217 void qdio_shutdown_thinint(struct qdio_irq *irq_ptr) in qdio_shutdown_thinint() argument
219 if (!is_thinint_irq(irq_ptr)) in qdio_shutdown_thinint()
223 set_subchannel_ind(irq_ptr, 1); in qdio_shutdown_thinint()
224 put_indicator(irq_ptr->dsci); in qdio_shutdown_thinint()