Lines Matching refs:irq_ptr

135 		nr += q->irq_ptr->nr_input_qs;  in qdio_do_eqbs()
137 ccq = do_eqbs(q->irq_ptr->sch_token, state, nr, &tmp_start, &tmp_count, in qdio_do_eqbs()
144 DBF_DEV_EVENT(DBF_WARN, q->irq_ptr, "EQBS again:%2d", ccq); in qdio_do_eqbs()
150 DBF_DEV_EVENT(DBF_WARN, q->irq_ptr, "EQBS part:%02x", in qdio_do_eqbs()
164 q->handler(q->irq_ptr->cdev, QDIO_ERROR_GET_BUF_STATE, in qdio_do_eqbs()
165 q->nr, q->first_to_kick, count, q->irq_ptr->int_parm); in qdio_do_eqbs()
193 nr += q->irq_ptr->nr_input_qs; in qdio_do_sqbs()
195 ccq = do_sqbs(q->irq_ptr->sch_token, state, nr, &tmp_start, &tmp_count); in qdio_do_sqbs()
203 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "SQBS again:%2d", ccq); in qdio_do_sqbs()
210 q->handler(q->irq_ptr->cdev, QDIO_ERROR_SET_BUF_STATE, in qdio_do_sqbs()
211 q->nr, q->first_to_kick, count, q->irq_ptr->int_parm); in qdio_do_sqbs()
271 static void qdio_init_buf_states(struct qdio_irq *irq_ptr) in qdio_init_buf_states() argument
276 for_each_input_queue(irq_ptr, q, i) in qdio_init_buf_states()
279 for_each_output_queue(irq_ptr, q, i) in qdio_init_buf_states()
287 unsigned long schid = *((u32 *) &q->irq_ptr->schid); in qdio_siga_sync()
291 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-s:%1d", q->nr); in qdio_siga_sync()
295 schid = q->irq_ptr->sch_token; in qdio_siga_sync()
316 unsigned long schid = *((u32 *) &q->irq_ptr->schid); in qdio_siga_output()
330 schid = q->irq_ptr->sch_token; in qdio_siga_output()
348 DBF_DEV_EVENT(DBF_WARN, q->irq_ptr, in qdio_siga_output()
350 DBF_DEV_EVENT(DBF_WARN, q->irq_ptr, "count:%u", retries); in qdio_siga_output()
357 unsigned long schid = *((u32 *) &q->irq_ptr->schid); in qdio_siga_input()
361 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-r:%1d", q->nr); in qdio_siga_input()
365 schid = q->irq_ptr->sch_token; in qdio_siga_input()
436 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x", in process_buffer_error()
460 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "in prim: %02x", count); in inbound_primed()
532 if (q->irq_ptr->perf_stat_enabled) in get_inbound_buffer_frontier()
539 if (q->irq_ptr->perf_stat_enabled) in get_inbound_buffer_frontier()
545 if (q->irq_ptr->perf_stat_enabled) in get_inbound_buffer_frontier()
547 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "in nop"); in get_inbound_buffer_frontier()
564 if (!is_thinint_irq(q->irq_ptr) && MACHINE_IS_LPAR) in qdio_inbound_q_moved()
586 if (is_thinint_irq(q->irq_ptr)) in qdio_inbound_q_done()
598 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "in done:%02x", in qdio_inbound_q_done()
665 if (unlikely(q->irq_ptr->state != QDIO_IRQ_STATE_ACTIVE)) in qdio_kick_handler()
672 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "kih s:%02x c:%02x", start, count); in qdio_kick_handler()
675 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "koh: s:%02x c:%02x", in qdio_kick_handler()
681 q->handler(q->irq_ptr->cdev, q->qdio_error, q->nr, start, count, in qdio_kick_handler()
682 q->irq_ptr->int_parm); in qdio_kick_handler()
701 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) { in __qdio_inbound_processing()
714 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) in __qdio_inbound_processing()
755 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, in get_outbound_buffer_frontier()
760 if (q->irq_ptr->perf_stat_enabled) in get_outbound_buffer_frontier()
768 if (q->irq_ptr->perf_stat_enabled) in get_outbound_buffer_frontier()
773 if (q->irq_ptr->perf_stat_enabled) in get_outbound_buffer_frontier()
775 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "out primed:%1d", in get_outbound_buffer_frontier()
803 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "out moved:%1d", q->nr); in qdio_outbound_q_moved()
817 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-w:%1d", q->nr); in qdio_kick_outbound_q()
834 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-w cc2:%1d", q->nr); in qdio_kick_outbound_q()
879 if (unlikely(q->irq_ptr->state == QDIO_IRQ_STATE_STOPPED)) in __qdio_outbound_processing()
895 if (unlikely(q->irq_ptr->state == QDIO_IRQ_STATE_STOPPED)) in qdio_outbound_timer()
908 for_each_output_queue(q->irq_ptr, out, i) in qdio_check_outbound_after_thinint()
932 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) { in __tiqdio_inbound_processing()
945 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) in __tiqdio_inbound_processing()
956 static inline void qdio_set_state(struct qdio_irq *irq_ptr, in qdio_set_state() argument
959 DBF_DEV_EVENT(DBF_INFO, irq_ptr, "newstate: %1d", state); in qdio_set_state()
961 irq_ptr->state = state; in qdio_set_state()
965 static void qdio_irq_check_sense(struct qdio_irq *irq_ptr, struct irb *irb) in qdio_irq_check_sense() argument
968 DBF_ERROR("%4x sense:", irq_ptr->schid.sch_no); in qdio_irq_check_sense()
975 static void qdio_int_handler_pci(struct qdio_irq *irq_ptr) in qdio_int_handler_pci() argument
980 if (unlikely(irq_ptr->state == QDIO_IRQ_STATE_STOPPED)) in qdio_int_handler_pci()
983 for_each_input_queue(irq_ptr, q, i) { in qdio_int_handler_pci()
991 q->u.in.queue_start_poll(q->irq_ptr->cdev, q->nr, in qdio_int_handler_pci()
992 q->irq_ptr->int_parm); in qdio_int_handler_pci()
998 if (!(irq_ptr->qib.ac & QIB_AC_OUTBOUND_PCI_SUPPORTED)) in qdio_int_handler_pci()
1001 for_each_output_queue(irq_ptr, q, i) { in qdio_int_handler_pci()
1013 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_handle_activate_check() local
1017 DBF_ERROR("%4x ACT CHECK", irq_ptr->schid.sch_no); in qdio_handle_activate_check()
1021 if (irq_ptr->nr_input_qs) { in qdio_handle_activate_check()
1022 q = irq_ptr->input_qs[0]; in qdio_handle_activate_check()
1023 } else if (irq_ptr->nr_output_qs) { in qdio_handle_activate_check()
1024 q = irq_ptr->output_qs[0]; in qdio_handle_activate_check()
1031 q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE, in qdio_handle_activate_check()
1032 q->nr, q->first_to_kick, count, irq_ptr->int_parm); in qdio_handle_activate_check()
1034 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_STOPPED); in qdio_handle_activate_check()
1045 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_establish_handle_irq() local
1047 DBF_DEV_EVENT(DBF_INFO, irq_ptr, "qest irq"); in qdio_establish_handle_irq()
1055 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_ESTABLISHED); in qdio_establish_handle_irq()
1059 DBF_ERROR("%4x EQ:error", irq_ptr->schid.sch_no); in qdio_establish_handle_irq()
1061 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_ERR); in qdio_establish_handle_irq()
1068 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_int_handler() local
1071 if (!intparm || !irq_ptr) { in qdio_int_handler()
1076 if (irq_ptr->perf_stat_enabled) in qdio_int_handler()
1077 irq_ptr->perf_stat.qdio_int++; in qdio_int_handler()
1080 DBF_ERROR("%4x IO error", irq_ptr->schid.sch_no); in qdio_int_handler()
1081 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_ERR); in qdio_int_handler()
1085 qdio_irq_check_sense(irq_ptr, irb); in qdio_int_handler()
1089 switch (irq_ptr->state) { in qdio_int_handler()
1094 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_INACTIVE); in qdio_int_handler()
1099 qdio_int_handler_pci(irq_ptr); in qdio_int_handler()
1136 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_shutdown_queues() local
1140 for_each_input_queue(irq_ptr, q, i) in qdio_shutdown_queues()
1143 for_each_output_queue(irq_ptr, q, i) { in qdio_shutdown_queues()
1156 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_shutdown() local
1160 if (!irq_ptr) in qdio_shutdown()
1166 mutex_lock(&irq_ptr->setup_mutex); in qdio_shutdown()
1171 if (irq_ptr->state == QDIO_IRQ_STATE_INACTIVE) { in qdio_shutdown()
1172 mutex_unlock(&irq_ptr->setup_mutex); in qdio_shutdown()
1180 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_STOPPED); in qdio_shutdown()
1182 tiqdio_remove_input_queues(irq_ptr); in qdio_shutdown()
1184 qdio_shutdown_debug_entries(irq_ptr); in qdio_shutdown()
1195 DBF_ERROR("%4x SHUTD ERR", irq_ptr->schid.sch_no); in qdio_shutdown()
1200 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_CLEANUP); in qdio_shutdown()
1203 irq_ptr->state == QDIO_IRQ_STATE_INACTIVE || in qdio_shutdown()
1204 irq_ptr->state == QDIO_IRQ_STATE_ERR, in qdio_shutdown()
1209 qdio_shutdown_thinint(irq_ptr); in qdio_shutdown()
1213 cdev->handler = irq_ptr->orig_handler; in qdio_shutdown()
1216 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_INACTIVE); in qdio_shutdown()
1217 mutex_unlock(&irq_ptr->setup_mutex); in qdio_shutdown()
1230 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_free() local
1232 if (!irq_ptr) in qdio_free()
1236 DBF_DEV_EVENT(DBF_ERR, irq_ptr, "dbf abandoned"); in qdio_free()
1237 mutex_lock(&irq_ptr->setup_mutex); in qdio_free()
1239 irq_ptr->debug_area = NULL; in qdio_free()
1241 mutex_unlock(&irq_ptr->setup_mutex); in qdio_free()
1243 qdio_release_memory(irq_ptr); in qdio_free()
1254 struct qdio_irq *irq_ptr; in qdio_allocate() local
1271 irq_ptr = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); in qdio_allocate()
1272 if (!irq_ptr) in qdio_allocate()
1275 mutex_init(&irq_ptr->setup_mutex); in qdio_allocate()
1276 if (qdio_allocate_dbf(init_data, irq_ptr)) in qdio_allocate()
1285 irq_ptr->chsc_page = get_zeroed_page(GFP_KERNEL); in qdio_allocate()
1286 if (!irq_ptr->chsc_page) in qdio_allocate()
1290 irq_ptr->qdr = (struct qdr *) get_zeroed_page(GFP_KERNEL | GFP_DMA); in qdio_allocate()
1291 if (!irq_ptr->qdr) in qdio_allocate()
1294 if (qdio_allocate_qs(irq_ptr, init_data->no_input_qs, in qdio_allocate()
1298 init_data->cdev->private->qdio_data = irq_ptr; in qdio_allocate()
1299 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_INACTIVE); in qdio_allocate()
1302 qdio_release_memory(irq_ptr); in qdio_allocate()
1308 static void qdio_detect_hsicq(struct qdio_irq *irq_ptr) in qdio_detect_hsicq() argument
1310 struct qdio_q *q = irq_ptr->input_qs[0]; in qdio_detect_hsicq()
1313 if (irq_ptr->nr_input_qs > 1 && queue_type(q) == QDIO_IQDIO_QFMT) in qdio_detect_hsicq()
1316 for_each_output_queue(irq_ptr, q, i) { in qdio_detect_hsicq()
1334 struct qdio_irq *irq_ptr; in qdio_establish() local
1341 irq_ptr = cdev->private->qdio_data; in qdio_establish()
1342 if (!irq_ptr) in qdio_establish()
1348 mutex_lock(&irq_ptr->setup_mutex); in qdio_establish()
1351 rc = qdio_establish_thinint(irq_ptr); in qdio_establish()
1353 mutex_unlock(&irq_ptr->setup_mutex); in qdio_establish()
1359 irq_ptr->ccw.cmd_code = irq_ptr->equeue.cmd; in qdio_establish()
1360 irq_ptr->ccw.flags = CCW_FLAG_SLI; in qdio_establish()
1361 irq_ptr->ccw.count = irq_ptr->equeue.count; in qdio_establish()
1362 irq_ptr->ccw.cda = (u32)((addr_t)irq_ptr->qdr); in qdio_establish()
1367 rc = ccw_device_start(cdev, &irq_ptr->ccw, QDIO_DOING_ESTABLISH, 0, 0); in qdio_establish()
1369 DBF_ERROR("%4x est IO ERR", irq_ptr->schid.sch_no); in qdio_establish()
1375 mutex_unlock(&irq_ptr->setup_mutex); in qdio_establish()
1381 irq_ptr->state == QDIO_IRQ_STATE_ESTABLISHED || in qdio_establish()
1382 irq_ptr->state == QDIO_IRQ_STATE_ERR, HZ); in qdio_establish()
1384 if (irq_ptr->state != QDIO_IRQ_STATE_ESTABLISHED) { in qdio_establish()
1385 mutex_unlock(&irq_ptr->setup_mutex); in qdio_establish()
1390 qdio_setup_ssqd_info(irq_ptr); in qdio_establish()
1392 qdio_detect_hsicq(irq_ptr); in qdio_establish()
1395 qdio_init_buf_states(irq_ptr); in qdio_establish()
1397 mutex_unlock(&irq_ptr->setup_mutex); in qdio_establish()
1398 qdio_print_subchannel_info(irq_ptr, cdev); in qdio_establish()
1399 qdio_setup_debug_entries(irq_ptr, cdev); in qdio_establish()
1410 struct qdio_irq *irq_ptr; in qdio_activate() local
1416 irq_ptr = cdev->private->qdio_data; in qdio_activate()
1417 if (!irq_ptr) in qdio_activate()
1423 mutex_lock(&irq_ptr->setup_mutex); in qdio_activate()
1424 if (irq_ptr->state == QDIO_IRQ_STATE_INACTIVE) { in qdio_activate()
1429 irq_ptr->ccw.cmd_code = irq_ptr->aqueue.cmd; in qdio_activate()
1430 irq_ptr->ccw.flags = CCW_FLAG_SLI; in qdio_activate()
1431 irq_ptr->ccw.count = irq_ptr->aqueue.count; in qdio_activate()
1432 irq_ptr->ccw.cda = 0; in qdio_activate()
1437 rc = ccw_device_start(cdev, &irq_ptr->ccw, QDIO_DOING_ACTIVATE, in qdio_activate()
1440 DBF_ERROR("%4x act IO ERR", irq_ptr->schid.sch_no); in qdio_activate()
1448 if (is_thinint_irq(irq_ptr)) in qdio_activate()
1449 tiqdio_add_input_queues(irq_ptr); in qdio_activate()
1454 switch (irq_ptr->state) { in qdio_activate()
1460 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_ACTIVE); in qdio_activate()
1464 mutex_unlock(&irq_ptr->setup_mutex); in qdio_activate()
1607 struct qdio_irq *irq_ptr; in do_QDIO() local
1612 irq_ptr = cdev->private->qdio_data; in do_QDIO()
1613 if (!irq_ptr) in do_QDIO()
1616 DBF_DEV_EVENT(DBF_INFO, irq_ptr, in do_QDIO()
1619 if (irq_ptr->state != QDIO_IRQ_STATE_ACTIVE) in do_QDIO()
1624 return handle_inbound(irq_ptr->input_qs[q_nr], in do_QDIO()
1627 return handle_outbound(irq_ptr->output_qs[q_nr], in do_QDIO()
1645 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_start_irq() local
1647 if (!irq_ptr) in qdio_start_irq()
1649 q = irq_ptr->input_qs[nr]; in qdio_start_irq()
1651 clear_nonshared_ind(irq_ptr); in qdio_start_irq()
1659 if (test_nonshared_ind(irq_ptr)) in qdio_start_irq()
1692 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_get_next_buffers() local
1694 if (!irq_ptr) in qdio_get_next_buffers()
1696 q = irq_ptr->input_qs[nr]; in qdio_get_next_buffers()
1712 if (unlikely(q->irq_ptr->state != QDIO_IRQ_STATE_ACTIVE)) in qdio_get_next_buffers()
1739 struct qdio_irq *irq_ptr = cdev->private->qdio_data; in qdio_stop_irq() local
1741 if (!irq_ptr) in qdio_stop_irq()
1743 q = irq_ptr->input_qs[nr]; in qdio_stop_irq()