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