Lines Matching refs:channel
68 _EFX_CHANNEL_MAGIC(_EFX_CHANNEL_MAGIC_TEST, (_channel)->channel)
79 static void efx_farch_magic_event(struct efx_channel *channel, u32 magic);
382 tx_queue->channel->channel, in efx_farch_tx_init()
544 efx_rx_queue_channel(rx_queue)->channel, in efx_farch_rx_init()
612 struct efx_channel *channel; in efx_check_tx_flush_complete() local
615 efx_for_each_channel(channel, efx) { in efx_check_tx_flush_complete()
616 efx_for_each_channel_tx_queue(tx_queue, channel) { in efx_check_tx_flush_complete()
639 efx_farch_magic_event(channel, in efx_check_tx_flush_complete()
655 struct efx_channel *channel; in efx_farch_do_flush() local
660 efx_for_each_channel(channel, efx) { in efx_farch_do_flush()
661 efx_for_each_channel_tx_queue(tx_queue, channel) { in efx_farch_do_flush()
664 efx_for_each_channel_rx_queue(rx_queue, channel) { in efx_farch_do_flush()
685 efx_for_each_channel(channel, efx) { in efx_farch_do_flush()
686 efx_for_each_channel_rx_queue(rx_queue, channel) { in efx_farch_do_flush()
724 struct efx_channel *channel; in efx_farch_fini_dmaq() local
738 efx_for_each_channel(channel, efx) { in efx_farch_fini_dmaq()
739 efx_for_each_channel_rx_queue(rx_queue, channel) in efx_farch_fini_dmaq()
741 efx_for_each_channel_tx_queue(tx_queue, channel) in efx_farch_fini_dmaq()
783 void efx_farch_ev_read_ack(struct efx_channel *channel) in efx_farch_ev_read_ack() argument
786 struct efx_nic *efx = channel->efx; in efx_farch_ev_read_ack()
789 channel->eventq_read_ptr & channel->eventq_mask); in efx_farch_ev_read_ack()
796 FR_BZ_EVQ_RPTR_STEP * channel->channel); in efx_farch_ev_read_ack()
815 static void efx_farch_magic_event(struct efx_channel *channel, u32 magic) in efx_farch_magic_event() argument
822 efx_farch_generate_event(channel->efx, channel->channel, &event); in efx_farch_magic_event()
831 efx_farch_handle_tx_event(struct efx_channel *channel, efx_qword_t *event) in efx_farch_handle_tx_event() argument
836 struct efx_nic *efx = channel->efx; in efx_farch_handle_tx_event()
847 channel, tx_ev_q_label % EFX_TXQ_TYPES); in efx_farch_handle_tx_event()
855 channel, tx_ev_q_label % EFX_TXQ_TYPES); in efx_farch_handle_tx_event()
865 EFX_QWORD_FMT"\n", channel->channel, in efx_farch_handle_tx_event()
876 struct efx_channel *channel = efx_rx_queue_channel(rx_queue); in efx_farch_handle_rx_not_ok() local
909 ++channel->n_rx_frm_trunc; in efx_farch_handle_rx_not_ok()
911 ++channel->n_rx_tobe_disc; in efx_farch_handle_rx_not_ok()
914 ++channel->n_rx_ip_hdr_chksum_err; in efx_farch_handle_rx_not_ok()
916 ++channel->n_rx_tcp_udp_chksum_err; in efx_farch_handle_rx_not_ok()
955 struct efx_channel *channel = efx_rx_queue_channel(rx_queue); in efx_farch_handle_rx_bad_index() local
962 ++channel->n_rx_nodesc_trunc; in efx_farch_handle_rx_bad_index()
985 efx_farch_handle_rx_event(struct efx_channel *channel, const efx_qword_t *event) in efx_farch_handle_rx_event() argument
993 struct efx_nic *efx = channel->efx; in efx_farch_handle_rx_event()
1001 channel->channel); in efx_farch_handle_rx_event()
1003 rx_queue = efx_channel_get_rx_queue(channel); in efx_farch_handle_rx_event()
1076 ++channel->n_rx_mcast_mismatch; in efx_farch_handle_rx_event()
1081 channel->irq_mod_score += 2; in efx_farch_handle_rx_event()
1106 efx_farch_magic_event(tx_queue->channel, in efx_farch_handle_tx_flush_done()
1119 struct efx_channel *channel; in efx_farch_handle_rx_flush_done() local
1128 channel = efx_get_channel(efx, qid); in efx_farch_handle_rx_flush_done()
1129 if (!efx_channel_has_rx_queue(channel)) in efx_farch_handle_rx_flush_done()
1131 rx_queue = efx_channel_get_rx_queue(channel); in efx_farch_handle_rx_flush_done()
1148 efx_farch_handle_drain_event(struct efx_channel *channel) in efx_farch_handle_drain_event() argument
1150 struct efx_nic *efx = channel->efx; in efx_farch_handle_drain_event()
1158 static void efx_farch_handle_generated_event(struct efx_channel *channel, in efx_farch_handle_generated_event() argument
1161 struct efx_nic *efx = channel->efx; in efx_farch_handle_generated_event()
1163 efx_channel_has_rx_queue(channel) ? in efx_farch_handle_generated_event()
1164 efx_channel_get_rx_queue(channel) : NULL; in efx_farch_handle_generated_event()
1170 if (magic == EFX_CHANNEL_MAGIC_TEST(channel)) { in efx_farch_handle_generated_event()
1171 channel->event_test_cpu = raw_smp_processor_id(); in efx_farch_handle_generated_event()
1178 efx_farch_handle_drain_event(channel); in efx_farch_handle_generated_event()
1180 efx_farch_handle_drain_event(channel); in efx_farch_handle_generated_event()
1184 channel->channel, EFX_QWORD_VAL(*event)); in efx_farch_handle_generated_event()
1189 efx_farch_handle_driver_event(struct efx_channel *channel, efx_qword_t *event) in efx_farch_handle_driver_event() argument
1191 struct efx_nic *efx = channel->efx; in efx_farch_handle_driver_event()
1201 channel->channel, ev_sub_data); in efx_farch_handle_driver_event()
1207 channel->channel, ev_sub_data); in efx_farch_handle_driver_event()
1214 channel->channel, ev_sub_data); in efx_farch_handle_driver_event()
1218 "channel %d SRAM update done\n", channel->channel); in efx_farch_handle_driver_event()
1223 channel->channel, ev_sub_data); in efx_farch_handle_driver_event()
1228 channel->channel, ev_sub_data); in efx_farch_handle_driver_event()
1233 "Resetting.\n", channel->channel); in efx_farch_handle_driver_event()
1263 "data %04x\n", channel->channel, ev_sub_code, in efx_farch_handle_driver_event()
1269 int efx_farch_ev_process(struct efx_channel *channel, int budget) in efx_farch_ev_process() argument
1271 struct efx_nic *efx = channel->efx; in efx_farch_ev_process()
1281 read_ptr = channel->eventq_read_ptr; in efx_farch_ev_process()
1284 p_event = efx_event(channel, read_ptr); in efx_farch_ev_process()
1291 netif_vdbg(channel->efx, intr, channel->efx->net_dev, in efx_farch_ev_process()
1293 channel->channel, EFX_QWORD_VAL(event)); in efx_farch_ev_process()
1304 efx_farch_handle_rx_event(channel, &event); in efx_farch_ev_process()
1309 tx_packets += efx_farch_handle_tx_event(channel, in efx_farch_ev_process()
1317 efx_farch_handle_generated_event(channel, &event); in efx_farch_ev_process()
1320 efx_farch_handle_driver_event(channel, &event); in efx_farch_ev_process()
1323 efx_siena_sriov_event(channel, &event); in efx_farch_ev_process()
1326 efx_mcdi_process_event(channel, &event); in efx_farch_ev_process()
1330 efx->type->handle_global_event(channel, &event)) in efx_farch_ev_process()
1334 netif_err(channel->efx, hw, channel->efx->net_dev, in efx_farch_ev_process()
1336 EFX_QWORD_FMT ")\n", channel->channel, in efx_farch_ev_process()
1342 channel->eventq_read_ptr = read_ptr; in efx_farch_ev_process()
1347 int efx_farch_ev_probe(struct efx_channel *channel) in efx_farch_ev_probe() argument
1349 struct efx_nic *efx = channel->efx; in efx_farch_ev_probe()
1352 entries = channel->eventq_mask + 1; in efx_farch_ev_probe()
1353 return efx_alloc_special_buffer(efx, &channel->eventq, in efx_farch_ev_probe()
1357 int efx_farch_ev_init(struct efx_channel *channel) in efx_farch_ev_init() argument
1360 struct efx_nic *efx = channel->efx; in efx_farch_ev_init()
1364 channel->channel, channel->eventq.index, in efx_farch_ev_init()
1365 channel->eventq.index + channel->eventq.entries - 1); in efx_farch_ev_init()
1372 efx_writeo_table(efx, ®, FR_BZ_TIMER_TBL, channel->channel); in efx_farch_ev_init()
1376 efx_init_special_buffer(efx, &channel->eventq); in efx_farch_ev_init()
1379 memset(channel->eventq.buf.addr, 0xff, channel->eventq.buf.len); in efx_farch_ev_init()
1384 FRF_AZ_EVQ_SIZE, __ffs(channel->eventq.entries), in efx_farch_ev_init()
1385 FRF_AZ_EVQ_BUF_BASE_ID, channel->eventq.index); in efx_farch_ev_init()
1387 channel->channel); in efx_farch_ev_init()
1392 void efx_farch_ev_fini(struct efx_channel *channel) in efx_farch_ev_fini() argument
1395 struct efx_nic *efx = channel->efx; in efx_farch_ev_fini()
1400 channel->channel); in efx_farch_ev_fini()
1402 efx_writeo_table(efx, ®, FR_BZ_TIMER_TBL, channel->channel); in efx_farch_ev_fini()
1405 efx_fini_special_buffer(efx, &channel->eventq); in efx_farch_ev_fini()
1409 void efx_farch_ev_remove(struct efx_channel *channel) in efx_farch_ev_remove() argument
1411 efx_free_special_buffer(channel->efx, &channel->eventq); in efx_farch_ev_remove()
1415 void efx_farch_ev_test_generate(struct efx_channel *channel) in efx_farch_ev_test_generate() argument
1417 efx_farch_magic_event(channel, EFX_CHANNEL_MAGIC_TEST(channel)); in efx_farch_ev_test_generate()
1535 struct efx_channel *channel; in efx_farch_legacy_interrupt() local
1567 efx_for_each_channel(channel, efx) { in efx_farch_legacy_interrupt()
1569 efx_schedule_channel_irq(channel); in efx_farch_legacy_interrupt()
1587 efx_for_each_channel(channel, efx) { in efx_farch_legacy_interrupt()
1588 event = efx_event(channel, in efx_farch_legacy_interrupt()
1589 channel->eventq_read_ptr); in efx_farch_legacy_interrupt()
1591 efx_schedule_channel_irq(channel); in efx_farch_legacy_interrupt()
1593 efx_farch_ev_read_ack(channel); in efx_farch_legacy_interrupt()
1636 efx_schedule_channel_irq(efx->channel[context->index]); in efx_farch_msi_interrupt()