sde 264 arch/mips/include/asm/octeon/cvmx-pciercx-defs.h __BITFIELD_FIELD(uint32_t sde:1, sde 793 drivers/infiniband/hw/hfi1/affinity.c struct sdma_engine *sde = msix->arg; sde 794 drivers/infiniband/hw/hfi1/affinity.c struct hfi1_devdata *dd = sde->dd; sde 799 drivers/infiniband/hw/hfi1/affinity.c if (cpu > num_online_cpus() || cpu == sde->cpu) sde 807 drivers/infiniband/hw/hfi1/affinity.c old_cpu = sde->cpu; sde 808 drivers/infiniband/hw/hfi1/affinity.c sde->cpu = cpu; sde 813 drivers/infiniband/hw/hfi1/affinity.c sde->this_idx, cpu); sde 891 drivers/infiniband/hw/hfi1/affinity.c struct sdma_engine *sde = NULL; sde 903 drivers/infiniband/hw/hfi1/affinity.c sde = (struct sdma_engine *)msix->arg; sde 904 drivers/infiniband/hw/hfi1/affinity.c scnprintf(extra, 64, "engine %u", sde->this_idx); sde 949 drivers/infiniband/hw/hfi1/affinity.c sde->cpu = cpu; sde 6030 drivers/infiniband/hw/hfi1/chip.c struct sdma_engine *sde; sde 6033 drivers/infiniband/hw/hfi1/chip.c sde = &dd->per_sdma[source]; sde 6035 drivers/infiniband/hw/hfi1/chip.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde->this_idx, sde 6037 drivers/infiniband/hw/hfi1/chip.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) source: %u status 0x%llx\n", sde 6038 drivers/infiniband/hw/hfi1/chip.c sde->this_idx, source, (unsigned long long)status); sde 6040 drivers/infiniband/hw/hfi1/chip.c sde->err_cnt++; sde 6041 drivers/infiniband/hw/hfi1/chip.c sdma_engine_error(sde, status); sde 6060 drivers/infiniband/hw/hfi1/chip.c struct sdma_engine *sde = &dd->per_sdma[source]; sde 6062 drivers/infiniband/hw/hfi1/chip.c dd_dev_err(dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde->this_idx, sde 6064 drivers/infiniband/hw/hfi1/chip.c dd_dev_err(dd, "CONFIG SDMA(%u) source: %u\n", sde->this_idx, sde 6066 drivers/infiniband/hw/hfi1/chip.c sdma_dumpstate(sde); sde 8343 drivers/infiniband/hw/hfi1/chip.c struct sdma_engine *sde = data; sde 8344 drivers/infiniband/hw/hfi1/chip.c struct hfi1_devdata *dd = sde->dd; sde 8348 drivers/infiniband/hw/hfi1/chip.c dd_dev_err(dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde->this_idx, sde 8350 drivers/infiniband/hw/hfi1/chip.c sdma_dumpstate(sde); sde 8358 drivers/infiniband/hw/hfi1/chip.c & sde->imask; sde 8366 drivers/infiniband/hw/hfi1/chip.c sdma_engine_interrupt(sde, status); sde 8369 drivers/infiniband/hw/hfi1/chip.c sde->this_idx); sde 44 drivers/infiniband/hw/hfi1/iowait.c int (*sleep)(struct sdma_engine *sde, sde 142 drivers/infiniband/hw/hfi1/iowait.h struct sdma_engine *sde, sde 174 drivers/infiniband/hw/hfi1/iowait.h int (*sleep)(struct sdma_engine *sde, sde 229 drivers/infiniband/hw/hfi1/msix.c int msix_request_sdma_irq(struct sdma_engine *sde) sde 233 drivers/infiniband/hw/hfi1/msix.c nr = msix_request_irq(sde->dd, sde, sdma_interrupt, NULL, sde 234 drivers/infiniband/hw/hfi1/msix.c sde->this_idx, IRQ_SDMA); sde 237 drivers/infiniband/hw/hfi1/msix.c sde->msix_intr = nr; sde 238 drivers/infiniband/hw/hfi1/msix.c remap_sdma_interrupts(sde->dd, sde->this_idx, nr); sde 275 drivers/infiniband/hw/hfi1/msix.c struct sdma_engine *sde = &dd->per_sdma[i]; sde 277 drivers/infiniband/hw/hfi1/msix.c ret = msix_request_sdma_irq(sde); sde 280 drivers/infiniband/hw/hfi1/msix.c enable_sdma_srcs(sde->dd, i); sde 58 drivers/infiniband/hw/hfi1/msix.h int msix_request_sdma_irq(struct sdma_engine *sde); sde 68 drivers/infiniband/hw/hfi1/qp.c struct sdma_engine *sde, sde 489 drivers/infiniband/hw/hfi1/qp.c struct sdma_engine *sde, sde 513 drivers/infiniband/hw/hfi1/qp.c write_seqlock(&sde->waitlock); sde 514 drivers/infiniband/hw/hfi1/qp.c if (sdma_progress(sde, seq, stx)) sde 524 drivers/infiniband/hw/hfi1/qp.c &sde->dmawait); sde 525 drivers/infiniband/hw/hfi1/qp.c priv->s_iowait.lock = &sde->waitlock; sde 529 drivers/infiniband/hw/hfi1/qp.c write_sequnlock(&sde->waitlock); sde 539 drivers/infiniband/hw/hfi1/qp.c write_sequnlock(&sde->waitlock); sde 594 drivers/infiniband/hw/hfi1/qp.c struct sdma_engine *sde; sde 604 drivers/infiniband/hw/hfi1/qp.c sde = sdma_select_engine_sc(dd, qp->ibqp.qp_num >> dd->qos_shift, sc5); sde 605 drivers/infiniband/hw/hfi1/qp.c return sde; sde 655 drivers/infiniband/hw/hfi1/qp.c struct sdma_engine *sde; sde 661 drivers/infiniband/hw/hfi1/qp.c sde = qp_to_sdma_engine(qp, priv->s_sc); sde 701 drivers/infiniband/hw/hfi1/qp.c sde, sde 702 drivers/infiniband/hw/hfi1/qp.c sde ? sde->this_idx : 0, sde 395 drivers/infiniband/hw/hfi1/rc.c ps->s_txreq->sde = qpriv->s_sde; sde 1189 drivers/infiniband/hw/hfi1/rc.c ps->s_txreq->sde = priv->s_sde; sde 243 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde, sde 246 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde, sde 248 drivers/infiniband/hw/hfi1/sdma.c static void dump_sdma_state(struct sdma_engine *sde); sde 249 drivers/infiniband/hw/hfi1/sdma.c static void sdma_make_progress(struct sdma_engine *sde, u64 status); sde 250 drivers/infiniband/hw/hfi1/sdma.c static void sdma_desc_avail(struct sdma_engine *sde, uint avail); sde 251 drivers/infiniband/hw/hfi1/sdma.c static void sdma_flush_descq(struct sdma_engine *sde); sde 287 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde, sde 291 drivers/infiniband/hw/hfi1/sdma.c write_kctxt_csr(sde->dd, sde->this_idx, offset0, value); sde 295 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde, sde 298 drivers/infiniband/hw/hfi1/sdma.c return read_kctxt_csr(sde->dd, sde->this_idx, offset0); sde 305 drivers/infiniband/hw/hfi1/sdma.c static void sdma_wait_for_packet_egress(struct sdma_engine *sde, sde 308 drivers/infiniband/hw/hfi1/sdma.c u64 off = 8 * sde->this_idx; sde 309 drivers/infiniband/hw/hfi1/sdma.c struct hfi1_devdata *dd = sde->dd; sde 328 drivers/infiniband/hw/hfi1/sdma.c __func__, sde->this_idx, (u32)reg); sde 346 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde = &dd->per_sdma[i]; sde 348 drivers/infiniband/hw/hfi1/sdma.c sdma_wait_for_packet_egress(sde, 0); sde 352 drivers/infiniband/hw/hfi1/sdma.c static inline void sdma_set_desc_cnt(struct sdma_engine *sde, unsigned cnt) sde 356 drivers/infiniband/hw/hfi1/sdma.c if (!(sde->dd->flags & HFI1_HAS_SDMA_TIMEOUT)) sde 361 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(DESC_CNT), reg); sde 364 drivers/infiniband/hw/hfi1/sdma.c static inline void complete_tx(struct sdma_engine *sde, sde 373 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_out_sn(sde, tx->sn); sde 374 drivers/infiniband/hw/hfi1/sdma.c if (WARN_ON_ONCE(sde->head_sn != tx->sn)) sde 375 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "expected %llu got %llu\n", sde 376 drivers/infiniband/hw/hfi1/sdma.c sde->head_sn, tx->sn); sde 377 drivers/infiniband/hw/hfi1/sdma.c sde->head_sn++; sde 379 drivers/infiniband/hw/hfi1/sdma.c __sdma_txclean(sde->dd, tx); sde 404 drivers/infiniband/hw/hfi1/sdma.c static void sdma_flush(struct sdma_engine *sde) sde 412 drivers/infiniband/hw/hfi1/sdma.c sdma_flush_descq(sde); sde 413 drivers/infiniband/hw/hfi1/sdma.c spin_lock_irqsave(&sde->flushlist_lock, flags); sde 415 drivers/infiniband/hw/hfi1/sdma.c list_splice_init(&sde->flushlist, &flushlist); sde 416 drivers/infiniband/hw/hfi1/sdma.c spin_unlock_irqrestore(&sde->flushlist_lock, flags); sde 419 drivers/infiniband/hw/hfi1/sdma.c complete_tx(sde, txp, SDMA_TXREQ_S_ABORTED); sde 424 drivers/infiniband/hw/hfi1/sdma.c seq = read_seqbegin(&sde->waitlock); sde 425 drivers/infiniband/hw/hfi1/sdma.c if (!list_empty(&sde->dmawait)) { sde 426 drivers/infiniband/hw/hfi1/sdma.c write_seqlock(&sde->waitlock); sde 427 drivers/infiniband/hw/hfi1/sdma.c list_for_each_entry_safe(w, nw, &sde->dmawait, list) { sde 433 drivers/infiniband/hw/hfi1/sdma.c write_sequnlock(&sde->waitlock); sde 435 drivers/infiniband/hw/hfi1/sdma.c } while (read_seqretry(&sde->waitlock, seq)); sde 451 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde = sde 454 drivers/infiniband/hw/hfi1/sdma.c write_seqlock_irqsave(&sde->head_lock, flags); sde 455 drivers/infiniband/hw/hfi1/sdma.c if (!__sdma_running(sde)) sde 456 drivers/infiniband/hw/hfi1/sdma.c sdma_flush(sde); sde 457 drivers/infiniband/hw/hfi1/sdma.c write_sequnlock_irqrestore(&sde->head_lock, flags); sde 462 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde = container_of(work, struct sdma_engine, sde 469 drivers/infiniband/hw/hfi1/sdma.c statuscsr = read_sde_csr(sde, SD(STATUS)); sde 474 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, sde 476 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx); sde 486 drivers/infiniband/hw/hfi1/sdma.c sdma_process_event(sde, sdma_event_e15_hw_halt_done); sde 489 drivers/infiniband/hw/hfi1/sdma.c static void sdma_err_progress_check_schedule(struct sdma_engine *sde) sde 491 drivers/infiniband/hw/hfi1/sdma.c if (!is_bx(sde->dd) && HFI1_CAP_IS_KSET(SDMA_AHG)) { sde 493 drivers/infiniband/hw/hfi1/sdma.c struct hfi1_devdata *dd = sde->dd; sde 498 drivers/infiniband/hw/hfi1/sdma.c if (curr_sdma != sde) sde 502 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, sde 504 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx); sde 505 drivers/infiniband/hw/hfi1/sdma.c mod_timer(&sde->err_progress_check_timer, jiffies + 10); sde 512 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde = from_timer(sde, t, err_progress_check_timer); sde 514 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "SDE progress check event\n"); sde 515 drivers/infiniband/hw/hfi1/sdma.c for (index = 0; index < sde->dd->num_sdma; index++) { sde 516 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *curr_sde = &sde->dd->per_sdma[index]; sde 520 drivers/infiniband/hw/hfi1/sdma.c if (curr_sde == sde) sde 545 drivers/infiniband/hw/hfi1/sdma.c schedule_work(&sde->err_halt_worker); sde 550 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde = (struct sdma_engine *)opaque; sde 555 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde 556 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, slashstrip(__FILE__), __LINE__, sde 559 drivers/infiniband/hw/hfi1/sdma.c statuscsr = read_sde_csr(sde, SD(STATUS)); sde 566 drivers/infiniband/hw/hfi1/sdma.c sdma_process_event(sde, sdma_event_e25_hw_clean_up_done); sde 569 drivers/infiniband/hw/hfi1/sdma.c static inline struct sdma_txreq *get_txhead(struct sdma_engine *sde) sde 571 drivers/infiniband/hw/hfi1/sdma.c return sde->tx_ring[sde->tx_head & sde->sdma_mask]; sde 577 drivers/infiniband/hw/hfi1/sdma.c static void sdma_flush_descq(struct sdma_engine *sde) sde 581 drivers/infiniband/hw/hfi1/sdma.c struct sdma_txreq *txp = get_txhead(sde); sde 588 drivers/infiniband/hw/hfi1/sdma.c head = sde->descq_head & sde->sdma_mask; sde 589 drivers/infiniband/hw/hfi1/sdma.c tail = sde->descq_tail & sde->sdma_mask; sde 592 drivers/infiniband/hw/hfi1/sdma.c head = ++sde->descq_head & sde->sdma_mask; sde 596 drivers/infiniband/hw/hfi1/sdma.c sde->tx_ring[sde->tx_head++ & sde->sdma_mask] = NULL; sde 597 drivers/infiniband/hw/hfi1/sdma.c complete_tx(sde, txp, SDMA_TXREQ_S_ABORTED); sde 598 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_progress(sde, head, tail, txp); sde 599 drivers/infiniband/hw/hfi1/sdma.c txp = get_txhead(sde); sde 604 drivers/infiniband/hw/hfi1/sdma.c sdma_desc_avail(sde, sdma_descq_freecnt(sde)); sde 609 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde = (struct sdma_engine *)opaque; sde 612 drivers/infiniband/hw/hfi1/sdma.c spin_lock_irqsave(&sde->tail_lock, flags); sde 613 drivers/infiniband/hw/hfi1/sdma.c write_seqlock(&sde->head_lock); sde 634 drivers/infiniband/hw/hfi1/sdma.c sdma_make_progress(sde, 0); sde 636 drivers/infiniband/hw/hfi1/sdma.c sdma_flush(sde); sde 643 drivers/infiniband/hw/hfi1/sdma.c sde->descq_tail = 0; sde 644 drivers/infiniband/hw/hfi1/sdma.c sde->descq_head = 0; sde 645 drivers/infiniband/hw/hfi1/sdma.c sde->desc_avail = sdma_descq_freecnt(sde); sde 646 drivers/infiniband/hw/hfi1/sdma.c *sde->head_dma = 0; sde 648 drivers/infiniband/hw/hfi1/sdma.c __sdma_process_event(sde, sdma_event_e40_sw_cleaned); sde 650 drivers/infiniband/hw/hfi1/sdma.c write_sequnlock(&sde->head_lock); sde 651 drivers/infiniband/hw/hfi1/sdma.c spin_unlock_irqrestore(&sde->tail_lock, flags); sde 654 drivers/infiniband/hw/hfi1/sdma.c static void sdma_sw_tear_down(struct sdma_engine *sde) sde 656 drivers/infiniband/hw/hfi1/sdma.c struct sdma_state *ss = &sde->state; sde 662 drivers/infiniband/hw/hfi1/sdma.c atomic_set(&sde->dd->sdma_unfreeze_count, -1); sde 663 drivers/infiniband/hw/hfi1/sdma.c wake_up_interruptible(&sde->dd->sdma_unfreeze_wq); sde 666 drivers/infiniband/hw/hfi1/sdma.c static void sdma_start_hw_clean_up(struct sdma_engine *sde) sde 668 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_hw_clean_up_task); sde 671 drivers/infiniband/hw/hfi1/sdma.c static void sdma_set_state(struct sdma_engine *sde, sde 674 drivers/infiniband/hw/hfi1/sdma.c struct sdma_state *ss = &sde->state; sde 679 drivers/infiniband/hw/hfi1/sdma.c sde, sde 690 drivers/infiniband/hw/hfi1/sdma.c sdma_flush(sde); sde 711 drivers/infiniband/hw/hfi1/sdma.c sdma_sendctrl(sde, ss->current_op); sde 749 drivers/infiniband/hw/hfi1/sdma.c int sdma_engine_get_vl(struct sdma_engine *sde) sde 751 drivers/infiniband/hw/hfi1/sdma.c struct hfi1_devdata *dd = sde->dd; sde 755 drivers/infiniband/hw/hfi1/sdma.c if (sde->this_idx >= TXE_NUM_SDMA_ENGINES) sde 764 drivers/infiniband/hw/hfi1/sdma.c vl = m->engine_to_vl[sde->this_idx]; sde 805 drivers/infiniband/hw/hfi1/sdma.c rval = e->sde[selector & e->mask]; sde 836 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde[0]; sde 872 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde = NULL; sde 890 drivers/infiniband/hw/hfi1/sdma.c sde = map->sde[selector & map->mask]; sde 894 drivers/infiniband/hw/hfi1/sdma.c if (sde) sde 895 drivers/infiniband/hw/hfi1/sdma.c return sde; sde 906 drivers/infiniband/hw/hfi1/sdma.c map->sde[map->ctr + i] = map->sde[i]; sde 910 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde) sde 916 drivers/infiniband/hw/hfi1/sdma.c if (map->sde[i] == sde) { sde 917 drivers/infiniband/hw/hfi1/sdma.c memmove(&map->sde[i], &map->sde[i + 1], sde 918 drivers/infiniband/hw/hfi1/sdma.c (map->ctr - i - 1) * sizeof(map->sde[0])); sde 933 drivers/infiniband/hw/hfi1/sdma.c ssize_t sdma_set_cpu_to_sde_map(struct sdma_engine *sde, const char *buf, sde 936 drivers/infiniband/hw/hfi1/sdma.c struct hfi1_devdata *dd = sde->dd; sde 942 drivers/infiniband/hw/hfi1/sdma.c vl = sdma_engine_get_vl(sde); sde 960 drivers/infiniband/hw/hfi1/sdma.c dd_dev_warn(sde->dd, "Invalid CPU mask\n"); sde 972 drivers/infiniband/hw/hfi1/sdma.c if (cpumask_test_cpu(cpu, &sde->cpu_mask)) { sde 995 drivers/infiniband/hw/hfi1/sdma.c rht_node->map[vl]->sde[0] = sde; sde 1003 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "Failed to set process to sde affinity for cpu %lu\n", sde 1022 drivers/infiniband/hw/hfi1/sdma.c rht_node->map[vl]->sde[ctr - 1] = sde; sde 1050 drivers/infiniband/hw/hfi1/sdma.c sde); sde 1077 drivers/infiniband/hw/hfi1/sdma.c cpumask_copy(&sde->cpu_mask, new_mask); sde 1086 drivers/infiniband/hw/hfi1/sdma.c ssize_t sdma_get_cpu_to_sde_map(struct sdma_engine *sde, char *buf) sde 1089 drivers/infiniband/hw/hfi1/sdma.c if (cpumask_empty(&sde->cpu_mask)) sde 1092 drivers/infiniband/hw/hfi1/sdma.c cpumap_print_to_pagebuf(true, buf, &sde->cpu_mask); sde 1136 drivers/infiniband/hw/hfi1/sdma.c if (!rht_node->map[i]->sde[j]) sde 1143 drivers/infiniband/hw/hfi1/sdma.c rht_node->map[i]->sde[j]->this_idx); sde 1252 drivers/infiniband/hw/hfi1/sdma.c newmap->map[i]->sde[j] = sde 1297 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde; sde 1314 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[i]; sde 1316 drivers/infiniband/hw/hfi1/sdma.c sde->head_dma = NULL; sde 1317 drivers/infiniband/hw/hfi1/sdma.c sde->head_phys = 0; sde 1319 drivers/infiniband/hw/hfi1/sdma.c if (sde->descq) { sde 1322 drivers/infiniband/hw/hfi1/sdma.c sde->descq_cnt * sizeof(u64[2]), sde 1323 drivers/infiniband/hw/hfi1/sdma.c sde->descq, sde 1324 drivers/infiniband/hw/hfi1/sdma.c sde->descq_phys sde 1326 drivers/infiniband/hw/hfi1/sdma.c sde->descq = NULL; sde 1327 drivers/infiniband/hw/hfi1/sdma.c sde->descq_phys = 0; sde 1329 drivers/infiniband/hw/hfi1/sdma.c kvfree(sde->tx_ring); sde 1330 drivers/infiniband/hw/hfi1/sdma.c sde->tx_ring = NULL; sde 1361 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde; sde 1417 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[this_idx]; sde 1418 drivers/infiniband/hw/hfi1/sdma.c sde->dd = dd; sde 1419 drivers/infiniband/hw/hfi1/sdma.c sde->ppd = ppd; sde 1420 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx = this_idx; sde 1421 drivers/infiniband/hw/hfi1/sdma.c sde->descq_cnt = descq_cnt; sde 1422 drivers/infiniband/hw/hfi1/sdma.c sde->desc_avail = sdma_descq_freecnt(sde); sde 1423 drivers/infiniband/hw/hfi1/sdma.c sde->sdma_shift = ilog2(descq_cnt); sde 1424 drivers/infiniband/hw/hfi1/sdma.c sde->sdma_mask = (1 << sde->sdma_shift) - 1; sde 1427 drivers/infiniband/hw/hfi1/sdma.c sde->int_mask = (u64)1 << (0 * TXE_NUM_SDMA_ENGINES + sde 1429 drivers/infiniband/hw/hfi1/sdma.c sde->progress_mask = (u64)1 << (1 * TXE_NUM_SDMA_ENGINES + sde 1431 drivers/infiniband/hw/hfi1/sdma.c sde->idle_mask = (u64)1 << (2 * TXE_NUM_SDMA_ENGINES + sde 1434 drivers/infiniband/hw/hfi1/sdma.c sde->imask = sde->int_mask | sde->progress_mask | sde 1435 drivers/infiniband/hw/hfi1/sdma.c sde->idle_mask; sde 1437 drivers/infiniband/hw/hfi1/sdma.c spin_lock_init(&sde->tail_lock); sde 1438 drivers/infiniband/hw/hfi1/sdma.c seqlock_init(&sde->head_lock); sde 1439 drivers/infiniband/hw/hfi1/sdma.c spin_lock_init(&sde->senddmactrl_lock); sde 1440 drivers/infiniband/hw/hfi1/sdma.c spin_lock_init(&sde->flushlist_lock); sde 1441 drivers/infiniband/hw/hfi1/sdma.c seqlock_init(&sde->waitlock); sde 1443 drivers/infiniband/hw/hfi1/sdma.c sde->ahg_bits = 0xfffffffe00000000ULL; sde 1445 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 1448 drivers/infiniband/hw/hfi1/sdma.c kref_init(&sde->state.kref); sde 1449 drivers/infiniband/hw/hfi1/sdma.c init_completion(&sde->state.comp); sde 1451 drivers/infiniband/hw/hfi1/sdma.c INIT_LIST_HEAD(&sde->flushlist); sde 1452 drivers/infiniband/hw/hfi1/sdma.c INIT_LIST_HEAD(&sde->dmawait); sde 1454 drivers/infiniband/hw/hfi1/sdma.c sde->tail_csr = sde 1457 drivers/infiniband/hw/hfi1/sdma.c tasklet_init(&sde->sdma_hw_clean_up_task, sdma_hw_clean_up_task, sde 1458 drivers/infiniband/hw/hfi1/sdma.c (unsigned long)sde); sde 1460 drivers/infiniband/hw/hfi1/sdma.c tasklet_init(&sde->sdma_sw_clean_up_task, sdma_sw_clean_up_task, sde 1461 drivers/infiniband/hw/hfi1/sdma.c (unsigned long)sde); sde 1462 drivers/infiniband/hw/hfi1/sdma.c INIT_WORK(&sde->err_halt_worker, sdma_err_halt_wait); sde 1463 drivers/infiniband/hw/hfi1/sdma.c INIT_WORK(&sde->flush_worker, sdma_field_flush); sde 1465 drivers/infiniband/hw/hfi1/sdma.c sde->progress_check_head = 0; sde 1467 drivers/infiniband/hw/hfi1/sdma.c timer_setup(&sde->err_progress_check_timer, sde 1470 drivers/infiniband/hw/hfi1/sdma.c sde->descq = dma_alloc_coherent(&dd->pcidev->dev, sde 1472 drivers/infiniband/hw/hfi1/sdma.c &sde->descq_phys, GFP_KERNEL); sde 1473 drivers/infiniband/hw/hfi1/sdma.c if (!sde->descq) sde 1475 drivers/infiniband/hw/hfi1/sdma.c sde->tx_ring = sde 1479 drivers/infiniband/hw/hfi1/sdma.c if (!sde->tx_ring) sde 1507 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[this_idx]; sde 1509 drivers/infiniband/hw/hfi1/sdma.c sde->head_dma = curr_head; sde 1511 drivers/infiniband/hw/hfi1/sdma.c phys_offset = (unsigned long)sde->head_dma - sde 1513 drivers/infiniband/hw/hfi1/sdma.c sde->head_phys = dd->sdma_heads_phys + phys_offset; sde 1514 drivers/infiniband/hw/hfi1/sdma.c init_sdma_regs(sde, per_sdma_credits, idle_cnt); sde 1553 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde; sde 1558 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[i]; sde 1559 drivers/infiniband/hw/hfi1/sdma.c sdma_process_event(sde, sdma_event_e30_go_running); sde 1571 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde; sde 1576 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[i]; sde 1577 drivers/infiniband/hw/hfi1/sdma.c sdma_process_event(sde, sdma_event_e70_go_idle); sde 1592 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde; sde 1596 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[i]; sde 1597 drivers/infiniband/hw/hfi1/sdma.c sdma_process_event(sde, sdma_event_e10_go_hw_start); sde 1608 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde; sde 1612 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[this_idx]; sde 1613 drivers/infiniband/hw/hfi1/sdma.c if (!list_empty(&sde->dmawait)) sde 1615 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx); sde 1616 drivers/infiniband/hw/hfi1/sdma.c sdma_process_event(sde, sdma_event_e00_go_hw_down); sde 1618 drivers/infiniband/hw/hfi1/sdma.c del_timer_sync(&sde->err_progress_check_timer); sde 1625 drivers/infiniband/hw/hfi1/sdma.c sdma_finalput(&sde->state); sde 1702 drivers/infiniband/hw/hfi1/sdma.c static inline u16 sdma_gethead(struct sdma_engine *sde) sde 1704 drivers/infiniband/hw/hfi1/sdma.c struct hfi1_devdata *dd = sde->dd; sde 1709 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde 1710 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, slashstrip(__FILE__), __LINE__, __func__); sde 1714 drivers/infiniband/hw/hfi1/sdma.c use_dmahead = HFI1_CAP_IS_KSET(USE_SDMA_HEAD) && __sdma_running(sde) && sde 1717 drivers/infiniband/hw/hfi1/sdma.c (u16)le64_to_cpu(*sde->head_dma) : sde 1718 drivers/infiniband/hw/hfi1/sdma.c (u16)read_sde_csr(sde, SD(HEAD)); sde 1726 drivers/infiniband/hw/hfi1/sdma.c swhead = sde->descq_head & sde->sdma_mask; sde 1728 drivers/infiniband/hw/hfi1/sdma.c swtail = READ_ONCE(sde->descq_tail) & sde->sdma_mask; sde 1729 drivers/infiniband/hw/hfi1/sdma.c cnt = sde->descq_cnt; sde 1744 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, sde 1765 drivers/infiniband/hw/hfi1/sdma.c static void sdma_desc_avail(struct sdma_engine *sde, uint avail) sde 1772 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde->this_idx, sde 1774 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "avail: %u\n", avail); sde 1778 drivers/infiniband/hw/hfi1/sdma.c seq = read_seqbegin(&sde->waitlock); sde 1779 drivers/infiniband/hw/hfi1/sdma.c if (!list_empty(&sde->dmawait)) { sde 1781 drivers/infiniband/hw/hfi1/sdma.c write_seqlock(&sde->waitlock); sde 1786 drivers/infiniband/hw/hfi1/sdma.c &sde->dmawait, sde 1811 drivers/infiniband/hw/hfi1/sdma.c write_sequnlock(&sde->waitlock); sde 1814 drivers/infiniband/hw/hfi1/sdma.c } while (read_seqretry(&sde->waitlock, seq)); sde 1826 drivers/infiniband/hw/hfi1/sdma.c static void sdma_make_progress(struct sdma_engine *sde, u64 status) sde 1833 drivers/infiniband/hw/hfi1/sdma.c hwhead = sdma_gethead(sde); sde 1842 drivers/infiniband/hw/hfi1/sdma.c txp = get_txhead(sde); sde 1843 drivers/infiniband/hw/hfi1/sdma.c swhead = sde->descq_head & sde->sdma_mask; sde 1844 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_progress(sde, hwhead, swhead, txp); sde 1847 drivers/infiniband/hw/hfi1/sdma.c swhead = ++sde->descq_head & sde->sdma_mask; sde 1852 drivers/infiniband/hw/hfi1/sdma.c sde->tx_ring[sde->tx_head++ & sde->sdma_mask] = NULL; sde 1853 drivers/infiniband/hw/hfi1/sdma.c complete_tx(sde, txp, SDMA_TXREQ_S_OK); sde 1855 drivers/infiniband/hw/hfi1/sdma.c txp = get_txhead(sde); sde 1857 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_progress(sde, hwhead, swhead, txp); sde 1870 drivers/infiniband/hw/hfi1/sdma.c if ((status & sde->idle_mask) && !idle_check_done) { sde 1873 drivers/infiniband/hw/hfi1/sdma.c swtail = READ_ONCE(sde->descq_tail) & sde->sdma_mask; sde 1875 drivers/infiniband/hw/hfi1/sdma.c hwhead = (u16)read_sde_csr(sde, SD(HEAD)); sde 1881 drivers/infiniband/hw/hfi1/sdma.c sde->last_status = status; sde 1883 drivers/infiniband/hw/hfi1/sdma.c sdma_desc_avail(sde, sdma_descq_freecnt(sde)); sde 1895 drivers/infiniband/hw/hfi1/sdma.c void sdma_engine_interrupt(struct sdma_engine *sde, u64 status) sde 1897 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_engine_interrupt(sde, status); sde 1898 drivers/infiniband/hw/hfi1/sdma.c write_seqlock(&sde->head_lock); sde 1899 drivers/infiniband/hw/hfi1/sdma.c sdma_set_desc_cnt(sde, sdma_desct_intr); sde 1900 drivers/infiniband/hw/hfi1/sdma.c if (status & sde->idle_mask) sde 1901 drivers/infiniband/hw/hfi1/sdma.c sde->idle_int_cnt++; sde 1902 drivers/infiniband/hw/hfi1/sdma.c else if (status & sde->progress_mask) sde 1903 drivers/infiniband/hw/hfi1/sdma.c sde->progress_int_cnt++; sde 1904 drivers/infiniband/hw/hfi1/sdma.c else if (status & sde->int_mask) sde 1905 drivers/infiniband/hw/hfi1/sdma.c sde->sdma_int_cnt++; sde 1906 drivers/infiniband/hw/hfi1/sdma.c sdma_make_progress(sde, status); sde 1907 drivers/infiniband/hw/hfi1/sdma.c write_sequnlock(&sde->head_lock); sde 1915 drivers/infiniband/hw/hfi1/sdma.c void sdma_engine_error(struct sdma_engine *sde, u64 status) sde 1920 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) error status 0x%llx state %s\n", sde 1921 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, sde 1923 drivers/infiniband/hw/hfi1/sdma.c sdma_state_names[sde->state.current_state]); sde 1925 drivers/infiniband/hw/hfi1/sdma.c spin_lock_irqsave(&sde->tail_lock, flags); sde 1926 drivers/infiniband/hw/hfi1/sdma.c write_seqlock(&sde->head_lock); sde 1928 drivers/infiniband/hw/hfi1/sdma.c __sdma_process_event(sde, sdma_event_e60_hw_halted); sde 1930 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, sde 1932 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, sde 1934 drivers/infiniband/hw/hfi1/sdma.c sdma_state_names[sde->state.current_state]); sde 1935 drivers/infiniband/hw/hfi1/sdma.c dump_sdma_state(sde); sde 1937 drivers/infiniband/hw/hfi1/sdma.c write_sequnlock(&sde->head_lock); sde 1938 drivers/infiniband/hw/hfi1/sdma.c spin_unlock_irqrestore(&sde->tail_lock, flags); sde 1941 drivers/infiniband/hw/hfi1/sdma.c static void sdma_sendctrl(struct sdma_engine *sde, unsigned op) sde 1948 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) senddmactrl E=%d I=%d H=%d C=%d\n", sde 1949 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, sde 1971 drivers/infiniband/hw/hfi1/sdma.c spin_lock_irqsave(&sde->senddmactrl_lock, flags); sde 1973 drivers/infiniband/hw/hfi1/sdma.c sde->p_senddmactrl |= set_senddmactrl; sde 1974 drivers/infiniband/hw/hfi1/sdma.c sde->p_senddmactrl &= ~clr_senddmactrl; sde 1977 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(CTRL), sde 1978 drivers/infiniband/hw/hfi1/sdma.c sde->p_senddmactrl | sde 1981 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(CTRL), sde->p_senddmactrl); sde 1983 drivers/infiniband/hw/hfi1/sdma.c spin_unlock_irqrestore(&sde->senddmactrl_lock, flags); sde 1986 drivers/infiniband/hw/hfi1/sdma.c sdma_dumpstate(sde); sde 1990 drivers/infiniband/hw/hfi1/sdma.c static void sdma_setlengen(struct sdma_engine *sde) sde 1993 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde 1994 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, slashstrip(__FILE__), __LINE__, __func__); sde 2002 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(LEN_GEN), sde 2003 drivers/infiniband/hw/hfi1/sdma.c (sde->descq_cnt / 64) << SD(LEN_GEN_LENGTH_SHIFT)); sde 2004 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(LEN_GEN), sde 2005 drivers/infiniband/hw/hfi1/sdma.c ((sde->descq_cnt / 64) << SD(LEN_GEN_LENGTH_SHIFT)) | sde 2009 drivers/infiniband/hw/hfi1/sdma.c static inline void sdma_update_tail(struct sdma_engine *sde, u16 tail) sde 2013 drivers/infiniband/hw/hfi1/sdma.c writeq(tail, sde->tail_csr); sde 2020 drivers/infiniband/hw/hfi1/sdma.c static void sdma_hw_start_up(struct sdma_engine *sde) sde 2025 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) %s:%d %s()\n", sde 2026 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, slashstrip(__FILE__), __LINE__, __func__); sde 2029 drivers/infiniband/hw/hfi1/sdma.c sdma_setlengen(sde); sde 2030 drivers/infiniband/hw/hfi1/sdma.c sdma_update_tail(sde, 0); /* Set SendDmaTail */ sde 2031 drivers/infiniband/hw/hfi1/sdma.c *sde->head_dma = 0; sde 2035 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(ENG_ERR_CLEAR), reg); sde 2043 drivers/infiniband/hw/hfi1/sdma.c static void set_sdma_integrity(struct sdma_engine *sde) sde 2045 drivers/infiniband/hw/hfi1/sdma.c struct hfi1_devdata *dd = sde->dd; sde 2047 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(CHECK_ENABLE), sde 2052 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde, sde 2058 drivers/infiniband/hw/hfi1/sdma.c struct hfi1_devdata *dd = sde->dd; sde 2061 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, slashstrip(__FILE__), __LINE__, __func__); sde 2064 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(BASE_ADDR), sde->descq_phys); sde 2065 drivers/infiniband/hw/hfi1/sdma.c sdma_setlengen(sde); sde 2066 drivers/infiniband/hw/hfi1/sdma.c sdma_update_tail(sde, 0); /* Set SendDmaTail */ sde 2067 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(RELOAD_CNT), idle_cnt); sde 2068 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(DESC_CNT), 0); sde 2069 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(HEAD_ADDR), sde->head_phys); sde 2070 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(MEMORY), sde 2072 drivers/infiniband/hw/hfi1/sdma.c ((u64)(credits * sde->this_idx) << sde 2074 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(ENG_ERR_MASK), ~0ull); sde 2075 drivers/infiniband/hw/hfi1/sdma.c set_sdma_integrity(sde); sde 2078 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(CHECK_OPCODE), sde 2086 drivers/infiniband/hw/hfi1/sdma.c csr = read_csr(sde->dd, reg); \ sde 2087 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "%36s 0x%016llx\n", #reg, csr); \ sde 2091 drivers/infiniband/hw/hfi1/sdma.c csr = read_sde_csr(sde, reg); \ sde 2092 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "%36s[%02u] 0x%016llx\n", \ sde 2093 drivers/infiniband/hw/hfi1/sdma.c #reg, sde->this_idx, csr); \ sde 2097 drivers/infiniband/hw/hfi1/sdma.c csr = read_csr(sde->dd, reg + (8 * i)); \ sde 2098 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "%33s_%02u 0x%016llx\n", \ sde 2102 drivers/infiniband/hw/hfi1/sdma.c void sdma_dumpstate(struct sdma_engine *sde) sde 2143 drivers/infiniband/hw/hfi1/sdma.c static void dump_sdma_state(struct sdma_engine *sde) sde 2152 drivers/infiniband/hw/hfi1/sdma.c head = sde->descq_head & sde->sdma_mask; sde 2153 drivers/infiniband/hw/hfi1/sdma.c tail = sde->descq_tail & sde->sdma_mask; sde 2154 drivers/infiniband/hw/hfi1/sdma.c cnt = sdma_descq_freecnt(sde); sde 2156 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, sde 2158 drivers/infiniband/hw/hfi1/sdma.c sde->this_idx, head, tail, cnt, sde 2159 drivers/infiniband/hw/hfi1/sdma.c !list_empty(&sde->flushlist)); sde 2165 drivers/infiniband/hw/hfi1/sdma.c descqp = &sde->descq[head]; sde 2179 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, sde 2182 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, sde 2186 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, sde 2198 drivers/infiniband/hw/hfi1/sdma.c head &= sde->sdma_mask; sde 2211 drivers/infiniband/hw/hfi1/sdma.c void sdma_seqfile_dump_sde(struct seq_file *s, struct sdma_engine *sde) sde 2220 drivers/infiniband/hw/hfi1/sdma.c head = sde->descq_head & sde->sdma_mask; sde 2221 drivers/infiniband/hw/hfi1/sdma.c tail = READ_ONCE(sde->descq_tail) & sde->sdma_mask; sde 2222 drivers/infiniband/hw/hfi1/sdma.c seq_printf(s, SDE_FMT, sde->this_idx, sde 2223 drivers/infiniband/hw/hfi1/sdma.c sde->cpu, sde 2224 drivers/infiniband/hw/hfi1/sdma.c sdma_state_name(sde->state.current_state), sde 2225 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(CTRL)), sde 2226 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(STATUS)), sde 2227 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(ENG_ERR_STATUS)), sde 2228 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(TAIL)), tail, sde 2229 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(HEAD)), head, sde 2230 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)le64_to_cpu(*sde->head_dma), sde 2231 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(MEMORY)), sde 2232 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(LEN_GEN)), sde 2233 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SD(RELOAD_CNT)), sde 2234 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)sde->last_status, sde 2235 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)sde->ahg_bits, sde 2236 drivers/infiniband/hw/hfi1/sdma.c sde->tx_tail, sde 2237 drivers/infiniband/hw/hfi1/sdma.c sde->tx_head, sde 2238 drivers/infiniband/hw/hfi1/sdma.c sde->descq_tail, sde 2239 drivers/infiniband/hw/hfi1/sdma.c sde->descq_head, sde 2240 drivers/infiniband/hw/hfi1/sdma.c !list_empty(&sde->flushlist), sde 2241 drivers/infiniband/hw/hfi1/sdma.c sde->descq_full_count, sde 2242 drivers/infiniband/hw/hfi1/sdma.c (unsigned long long)read_sde_csr(sde, SEND_DMA_CHECK_SLID)); sde 2248 drivers/infiniband/hw/hfi1/sdma.c descqp = &sde->descq[head]; sde 2273 drivers/infiniband/hw/hfi1/sdma.c head = (head + 1) & sde->sdma_mask; sde 2281 drivers/infiniband/hw/hfi1/sdma.c static inline u64 add_gen(struct sdma_engine *sde, u64 qw1) sde 2283 drivers/infiniband/hw/hfi1/sdma.c u8 generation = (sde->descq_tail >> sde->sdma_shift) & 3; sde 2307 drivers/infiniband/hw/hfi1/sdma.c static inline u16 submit_tx(struct sdma_engine *sde, struct sdma_txreq *tx) sde 2314 drivers/infiniband/hw/hfi1/sdma.c tail = sde->descq_tail & sde->sdma_mask; sde 2315 drivers/infiniband/hw/hfi1/sdma.c sde->descq[tail].qw[0] = cpu_to_le64(descp->qw[0]); sde 2316 drivers/infiniband/hw/hfi1/sdma.c sde->descq[tail].qw[1] = cpu_to_le64(add_gen(sde, descp->qw[1])); sde 2317 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_descriptor(sde, descp->qw[0], descp->qw[1], sde 2318 drivers/infiniband/hw/hfi1/sdma.c tail, &sde->descq[tail]); sde 2319 drivers/infiniband/hw/hfi1/sdma.c tail = ++sde->descq_tail & sde->sdma_mask; sde 2326 drivers/infiniband/hw/hfi1/sdma.c sde->descq[tail].qw[0] = cpu_to_le64(descp->qw[0]); sde 2333 drivers/infiniband/hw/hfi1/sdma.c qw1 = add_gen(sde, descp->qw[1]); sde 2335 drivers/infiniband/hw/hfi1/sdma.c sde->descq[tail].qw[1] = cpu_to_le64(qw1); sde 2336 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_descriptor(sde, descp->qw[0], qw1, sde 2337 drivers/infiniband/hw/hfi1/sdma.c tail, &sde->descq[tail]); sde 2338 drivers/infiniband/hw/hfi1/sdma.c tail = ++sde->descq_tail & sde->sdma_mask; sde 2342 drivers/infiniband/hw/hfi1/sdma.c tx->sn = sde->tail_sn++; sde 2343 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_in_sn(sde, tx->sn); sde 2344 drivers/infiniband/hw/hfi1/sdma.c WARN_ON_ONCE(sde->tx_ring[sde->tx_tail & sde->sdma_mask]); sde 2346 drivers/infiniband/hw/hfi1/sdma.c sde->tx_ring[sde->tx_tail++ & sde->sdma_mask] = tx; sde 2347 drivers/infiniband/hw/hfi1/sdma.c sde->desc_avail -= tx->num_desc; sde 2355 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde, sde 2362 drivers/infiniband/hw/hfi1/sdma.c sde->desc_avail = sdma_descq_freecnt(sde); sde 2363 drivers/infiniband/hw/hfi1/sdma.c if (tx->num_desc <= sde->desc_avail) sde 2370 drivers/infiniband/hw/hfi1/sdma.c (const seqcount_t *)&sde->head_lock.seqcount); sde 2371 drivers/infiniband/hw/hfi1/sdma.c ret = wait->iow->sleep(sde, wait, tx, seq, pkts_sent); sde 2373 drivers/infiniband/hw/hfi1/sdma.c sde->desc_avail = sdma_descq_freecnt(sde); sde 2395 drivers/infiniband/hw/hfi1/sdma.c int sdma_send_txreq(struct sdma_engine *sde, sde 2408 drivers/infiniband/hw/hfi1/sdma.c spin_lock_irqsave(&sde->tail_lock, flags); sde 2410 drivers/infiniband/hw/hfi1/sdma.c if (unlikely(!__sdma_running(sde))) sde 2412 drivers/infiniband/hw/hfi1/sdma.c if (unlikely(tx->num_desc > sde->desc_avail)) sde 2414 drivers/infiniband/hw/hfi1/sdma.c tail = submit_tx(sde, tx); sde 2417 drivers/infiniband/hw/hfi1/sdma.c sdma_update_tail(sde, tail); sde 2419 drivers/infiniband/hw/hfi1/sdma.c spin_unlock_irqrestore(&sde->tail_lock, flags); sde 2426 drivers/infiniband/hw/hfi1/sdma.c tx->sn = sde->tail_sn++; sde 2427 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_in_sn(sde, tx->sn); sde 2429 drivers/infiniband/hw/hfi1/sdma.c spin_lock(&sde->flushlist_lock); sde 2430 drivers/infiniband/hw/hfi1/sdma.c list_add_tail(&tx->list, &sde->flushlist); sde 2431 drivers/infiniband/hw/hfi1/sdma.c spin_unlock(&sde->flushlist_lock); sde 2433 drivers/infiniband/hw/hfi1/sdma.c queue_work_on(sde->cpu, system_highpri_wq, &sde->flush_worker); sde 2437 drivers/infiniband/hw/hfi1/sdma.c ret = sdma_check_progress(sde, wait, tx, pkts_sent); sde 2442 drivers/infiniband/hw/hfi1/sdma.c sde->descq_full_count++; sde 2474 drivers/infiniband/hw/hfi1/sdma.c int sdma_send_txlist(struct sdma_engine *sde, struct iowait_work *wait, sde 2483 drivers/infiniband/hw/hfi1/sdma.c spin_lock_irqsave(&sde->tail_lock, flags); sde 2487 drivers/infiniband/hw/hfi1/sdma.c if (unlikely(!__sdma_running(sde))) sde 2489 drivers/infiniband/hw/hfi1/sdma.c if (unlikely(tx->num_desc > sde->desc_avail)) sde 2496 drivers/infiniband/hw/hfi1/sdma.c tail = submit_tx(sde, tx); sde 2500 drivers/infiniband/hw/hfi1/sdma.c sdma_update_tail(sde, tail); sde 2512 drivers/infiniband/hw/hfi1/sdma.c sdma_update_tail(sde, tail); sde 2513 drivers/infiniband/hw/hfi1/sdma.c spin_unlock_irqrestore(&sde->tail_lock, flags); sde 2517 drivers/infiniband/hw/hfi1/sdma.c spin_lock(&sde->flushlist_lock); sde 2523 drivers/infiniband/hw/hfi1/sdma.c tx->sn = sde->tail_sn++; sde 2524 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_in_sn(sde, tx->sn); sde 2526 drivers/infiniband/hw/hfi1/sdma.c list_add_tail(&tx->list, &sde->flushlist); sde 2530 drivers/infiniband/hw/hfi1/sdma.c spin_unlock(&sde->flushlist_lock); sde 2531 drivers/infiniband/hw/hfi1/sdma.c queue_work_on(sde->cpu, system_highpri_wq, &sde->flush_worker); sde 2535 drivers/infiniband/hw/hfi1/sdma.c ret = sdma_check_progress(sde, wait, tx, submit_count > 0); sde 2540 drivers/infiniband/hw/hfi1/sdma.c sde->descq_full_count++; sde 2544 drivers/infiniband/hw/hfi1/sdma.c static void sdma_process_event(struct sdma_engine *sde, enum sdma_events event) sde 2548 drivers/infiniband/hw/hfi1/sdma.c spin_lock_irqsave(&sde->tail_lock, flags); sde 2549 drivers/infiniband/hw/hfi1/sdma.c write_seqlock(&sde->head_lock); sde 2551 drivers/infiniband/hw/hfi1/sdma.c __sdma_process_event(sde, event); sde 2553 drivers/infiniband/hw/hfi1/sdma.c if (sde->state.current_state == sdma_state_s99_running) sde 2554 drivers/infiniband/hw/hfi1/sdma.c sdma_desc_avail(sde, sdma_descq_freecnt(sde)); sde 2556 drivers/infiniband/hw/hfi1/sdma.c write_sequnlock(&sde->head_lock); sde 2557 drivers/infiniband/hw/hfi1/sdma.c spin_unlock_irqrestore(&sde->tail_lock, flags); sde 2560 drivers/infiniband/hw/hfi1/sdma.c static void __sdma_process_event(struct sdma_engine *sde, sde 2563 drivers/infiniband/hw/hfi1/sdma.c struct sdma_state *ss = &sde->state; sde 2568 drivers/infiniband/hw/hfi1/sdma.c dd_dev_err(sde->dd, "CONFIG SDMA(%u) [%s] %s\n", sde->this_idx, sde 2590 drivers/infiniband/hw/hfi1/sdma.c sdma_get(&sde->state); sde 2591 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sde 2599 drivers/infiniband/hw/hfi1/sdma.c sdma_sw_tear_down(sde); sde 2623 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2624 drivers/infiniband/hw/hfi1/sdma.c sdma_sw_tear_down(sde); sde 2629 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sde 2631 drivers/infiniband/hw/hfi1/sdma.c sdma_start_hw_clean_up(sde); sde 2643 drivers/infiniband/hw/hfi1/sdma.c schedule_work(&sde->err_halt_worker); sde 2664 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2665 drivers/infiniband/hw/hfi1/sdma.c sdma_sw_tear_down(sde); sde 2672 drivers/infiniband/hw/hfi1/sdma.c sdma_hw_start_up(sde); sde 2673 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, ss->go_s99_running ? sde 2705 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2706 drivers/infiniband/hw/hfi1/sdma.c sdma_sw_tear_down(sde); sde 2715 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s99_running); sde 2723 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s50_hw_halt_wait); sde 2724 drivers/infiniband/hw/hfi1/sdma.c schedule_work(&sde->err_halt_worker); sde 2731 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s80_hw_freeze); sde 2732 drivers/infiniband/hw/hfi1/sdma.c atomic_dec(&sde->dd->sdma_unfreeze_count); sde 2733 drivers/infiniband/hw/hfi1/sdma.c wake_up_interruptible(&sde->dd->sdma_unfreeze_wq); sde 2747 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2759 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s40_hw_clean_up_wait); sde 2760 drivers/infiniband/hw/hfi1/sdma.c sdma_start_hw_clean_up(sde); sde 2786 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2787 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2794 drivers/infiniband/hw/hfi1/sdma.c sdma_hw_start_up(sde); sde 2795 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, ss->go_s99_running ? sde 2828 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2829 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2834 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s30_sw_clean_up_wait); sde 2835 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2847 drivers/infiniband/hw/hfi1/sdma.c schedule_work(&sde->err_halt_worker); sde 2869 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2870 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2875 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s30_sw_clean_up_wait); sde 2876 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2888 drivers/infiniband/hw/hfi1/sdma.c schedule_work(&sde->err_halt_worker); sde 2909 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2910 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2933 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s82_freeze_sw_clean); sde 2934 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2948 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2949 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 2962 drivers/infiniband/hw/hfi1/sdma.c atomic_dec(&sde->dd->sdma_unfreeze_count); sde 2963 drivers/infiniband/hw/hfi1/sdma.c wake_up_interruptible(&sde->dd->sdma_unfreeze_wq); sde 2977 drivers/infiniband/hw/hfi1/sdma.c sdma_hw_start_up(sde); sde 2978 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, ss->go_s99_running ? sde 2992 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s00_hw_down); sde 2993 drivers/infiniband/hw/hfi1/sdma.c tasklet_hi_schedule(&sde->sdma_sw_clean_up_task); sde 3009 drivers/infiniband/hw/hfi1/sdma.c sdma_err_progress_check_schedule(sde); sde 3016 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s50_hw_halt_wait); sde 3017 drivers/infiniband/hw/hfi1/sdma.c schedule_work(&sde->err_halt_worker); sde 3020 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s60_idle_halt_wait); sde 3026 drivers/infiniband/hw/hfi1/sdma.c sdma_set_state(sde, sdma_state_s80_hw_freeze); sde 3027 drivers/infiniband/hw/hfi1/sdma.c atomic_dec(&sde->dd->sdma_unfreeze_count); sde 3028 drivers/infiniband/hw/hfi1/sdma.c wake_up_interruptible(&sde->dd->sdma_unfreeze_wq); sde 3040 drivers/infiniband/hw/hfi1/sdma.c sdma_make_progress(sde, 0); sde 3183 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde; sde 3195 drivers/infiniband/hw/hfi1/sdma.c sde = &dd->per_sdma[i]; sde 3196 drivers/infiniband/hw/hfi1/sdma.c write_sde_csr(sde, SD(CHECK_SLID), sreg); sde 3290 drivers/infiniband/hw/hfi1/sdma.c int sdma_ahg_alloc(struct sdma_engine *sde) sde 3295 drivers/infiniband/hw/hfi1/sdma.c if (!sde) { sde 3296 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_ahg_allocate(sde, -EINVAL); sde 3300 drivers/infiniband/hw/hfi1/sdma.c nr = ffz(READ_ONCE(sde->ahg_bits)); sde 3302 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_ahg_allocate(sde, -ENOSPC); sde 3305 drivers/infiniband/hw/hfi1/sdma.c oldbit = test_and_set_bit(nr, &sde->ahg_bits); sde 3310 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_ahg_allocate(sde, nr); sde 3321 drivers/infiniband/hw/hfi1/sdma.c void sdma_ahg_free(struct sdma_engine *sde, int ahg_index) sde 3323 drivers/infiniband/hw/hfi1/sdma.c if (!sde) sde 3325 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_ahg_deallocate(sde, ahg_index); sde 3328 drivers/infiniband/hw/hfi1/sdma.c clear_bit(ahg_index, &sde->ahg_bits); sde 3416 drivers/infiniband/hw/hfi1/sdma.c struct sdma_engine *sde) sde 3418 drivers/infiniband/hw/hfi1/sdma.c trace_hfi1_sdma_engine_progress(sde, sde->progress_mask); sde 3420 drivers/infiniband/hw/hfi1/sdma.c write_csr(sde->dd, sde 3422 drivers/infiniband/hw/hfi1/sdma.c sde->progress_mask); sde 432 drivers/infiniband/hw/hfi1/sdma.h static inline int sdma_empty(struct sdma_engine *sde) sde 434 drivers/infiniband/hw/hfi1/sdma.h return sde->descq_tail == sde->descq_head; sde 437 drivers/infiniband/hw/hfi1/sdma.h static inline u16 sdma_descq_freecnt(struct sdma_engine *sde) sde 439 drivers/infiniband/hw/hfi1/sdma.h return sde->descq_cnt - sde 440 drivers/infiniband/hw/hfi1/sdma.h (sde->descq_tail - sde 441 drivers/infiniband/hw/hfi1/sdma.h READ_ONCE(sde->descq_head)) - 1; sde 444 drivers/infiniband/hw/hfi1/sdma.h static inline u16 sdma_descq_inprocess(struct sdma_engine *sde) sde 446 drivers/infiniband/hw/hfi1/sdma.h return sde->descq_cnt - sdma_descq_freecnt(sde); sde 846 drivers/infiniband/hw/hfi1/sdma.h int sdma_send_txreq(struct sdma_engine *sde, sde 850 drivers/infiniband/hw/hfi1/sdma.h int sdma_send_txlist(struct sdma_engine *sde, sde 855 drivers/infiniband/hw/hfi1/sdma.h int sdma_ahg_alloc(struct sdma_engine *sde); sde 856 drivers/infiniband/hw/hfi1/sdma.h void sdma_ahg_free(struct sdma_engine *sde, int ahg_index); sde 898 drivers/infiniband/hw/hfi1/sdma.h static inline unsigned sdma_progress(struct sdma_engine *sde, unsigned seq, sde 901 drivers/infiniband/hw/hfi1/sdma.h if (read_seqretry(&sde->head_lock, seq)) { sde 902 drivers/infiniband/hw/hfi1/sdma.h sde->desc_avail = sdma_descq_freecnt(sde); sde 903 drivers/infiniband/hw/hfi1/sdma.h if (tx->num_desc > sde->desc_avail) sde 920 drivers/infiniband/hw/hfi1/sdma.h struct sdma_engine *sde, sde 923 drivers/infiniband/hw/hfi1/sdma.h struct hfi1_pportdata *ppd = sde->dd->pport; sde 925 drivers/infiniband/hw/hfi1/sdma.h iowait_schedule(wait, ppd->hfi1_wq, sde->cpu); sde 929 drivers/infiniband/hw/hfi1/sdma.h void sdma_engine_error(struct sdma_engine *sde, u64 status); sde 930 drivers/infiniband/hw/hfi1/sdma.h void sdma_engine_interrupt(struct sdma_engine *sde, u64 status); sde 1005 drivers/infiniband/hw/hfi1/sdma.h struct sdma_engine *sde[0]; sde 1037 drivers/infiniband/hw/hfi1/sdma.h void _sdma_engine_progress_schedule(struct sdma_engine *sde); sde 1047 drivers/infiniband/hw/hfi1/sdma.h struct sdma_engine *sde) sde 1049 drivers/infiniband/hw/hfi1/sdma.h if (!sde || sdma_descq_inprocess(sde) < (sde->descq_cnt / 8)) sde 1051 drivers/infiniband/hw/hfi1/sdma.h _sdma_engine_progress_schedule(sde); sde 1066 drivers/infiniband/hw/hfi1/sdma.h ssize_t sdma_get_cpu_to_sde_map(struct sdma_engine *sde, char *buf); sde 1067 drivers/infiniband/hw/hfi1/sdma.h ssize_t sdma_set_cpu_to_sde_map(struct sdma_engine *sde, const char *buf, sde 1069 drivers/infiniband/hw/hfi1/sdma.h int sdma_engine_get_vl(struct sdma_engine *sde); sde 754 drivers/infiniband/hw/hfi1/sysfs.c ssize_t (*show)(struct sdma_engine *sde, char *buf); sde 755 drivers/infiniband/hw/hfi1/sysfs.c ssize_t (*store)(struct sdma_engine *sde, const char *buf, size_t cnt); sde 762 drivers/infiniband/hw/hfi1/sysfs.c struct sdma_engine *sde = sde 768 drivers/infiniband/hw/hfi1/sysfs.c return sde_attr->show(sde, buf); sde 776 drivers/infiniband/hw/hfi1/sysfs.c struct sdma_engine *sde = sde 785 drivers/infiniband/hw/hfi1/sysfs.c return sde_attr->store(sde, buf, count); sde 801 drivers/infiniband/hw/hfi1/sysfs.c static ssize_t sde_show_cpu_to_sde_map(struct sdma_engine *sde, char *buf) sde 803 drivers/infiniband/hw/hfi1/sysfs.c return sdma_get_cpu_to_sde_map(sde, buf); sde 806 drivers/infiniband/hw/hfi1/sysfs.c static ssize_t sde_store_cpu_to_sde_map(struct sdma_engine *sde, sde 809 drivers/infiniband/hw/hfi1/sysfs.c return sdma_set_cpu_to_sde_map(sde, buf, count); sde 812 drivers/infiniband/hw/hfi1/sysfs.c static ssize_t sde_show_vl(struct sdma_engine *sde, char *buf) sde 816 drivers/infiniband/hw/hfi1/sysfs.c vl = sdma_engine_get_vl(sde); sde 5151 drivers/infiniband/hw/hfi1/tid_rdma.c ps->s_txreq->sde = priv->s_sde; sde 5300 drivers/infiniband/hw/hfi1/tid_rdma.c ps->s_txreq->sde = qpriv->s_sde; sde 150 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, sde 155 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, desc0, desc1, e, descp), sde 156 drivers/infiniband/hw/hfi1/trace_tx.h TP_STRUCT__entry(DD_DEV_ENTRY(sde->dd) sde 163 drivers/infiniband/hw/hfi1/trace_tx.h TP_fast_assign(DD_DEV_ASSIGN(sde->dd); sde 166 drivers/infiniband/hw/hfi1/trace_tx.h __entry->idx = sde->this_idx; sde 344 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, u64 status), sde 345 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, status), sde 346 drivers/infiniband/hw/hfi1/trace_tx.h TP_STRUCT__entry(DD_DEV_ENTRY(sde->dd) sde 350 drivers/infiniband/hw/hfi1/trace_tx.h TP_fast_assign(DD_DEV_ASSIGN(sde->dd); sde 352 drivers/infiniband/hw/hfi1/trace_tx.h __entry->idx = sde->this_idx; sde 362 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, u64 status), sde 363 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, status) sde 367 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, u64 status), sde 368 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, status) sde 372 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, int aidx), sde 373 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, aidx), sde 374 drivers/infiniband/hw/hfi1/trace_tx.h TP_STRUCT__entry(DD_DEV_ENTRY(sde->dd) sde 378 drivers/infiniband/hw/hfi1/trace_tx.h TP_fast_assign(DD_DEV_ASSIGN(sde->dd); sde 379 drivers/infiniband/hw/hfi1/trace_tx.h __entry->idx = sde->this_idx; sde 390 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, int aidx), sde 391 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, aidx)); sde 394 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, int aidx), sde 395 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, aidx)); sde 399 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, sde 404 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, hwhead, swhead, txp), sde 405 drivers/infiniband/hw/hfi1/trace_tx.h TP_STRUCT__entry(DD_DEV_ENTRY(sde->dd) sde 414 drivers/infiniband/hw/hfi1/trace_tx.h TP_fast_assign(DD_DEV_ASSIGN(sde->dd); sde 417 drivers/infiniband/hw/hfi1/trace_tx.h __entry->tx_tail = sde->tx_tail; sde 418 drivers/infiniband/hw/hfi1/trace_tx.h __entry->tx_head = sde->tx_head; sde 420 drivers/infiniband/hw/hfi1/trace_tx.h __entry->idx = sde->this_idx; sde 437 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, sde 441 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, hwhead, swhead, txp), sde 442 drivers/infiniband/hw/hfi1/trace_tx.h TP_STRUCT__entry(DD_DEV_ENTRY(sde->dd) sde 450 drivers/infiniband/hw/hfi1/trace_tx.h TP_fast_assign(DD_DEV_ASSIGN(sde->dd); sde 453 drivers/infiniband/hw/hfi1/trace_tx.h __entry->tx_tail = sde->tx_tail; sde 454 drivers/infiniband/hw/hfi1/trace_tx.h __entry->tx_head = sde->tx_head; sde 456 drivers/infiniband/hw/hfi1/trace_tx.h __entry->idx = sde->this_idx; sde 472 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, u64 sn), sde 473 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, sn), sde 474 drivers/infiniband/hw/hfi1/trace_tx.h TP_STRUCT__entry(DD_DEV_ENTRY(sde->dd) sde 478 drivers/infiniband/hw/hfi1/trace_tx.h TP_fast_assign(DD_DEV_ASSIGN(sde->dd); sde 480 drivers/infiniband/hw/hfi1/trace_tx.h __entry->idx = sde->this_idx; sde 491 drivers/infiniband/hw/hfi1/trace_tx.h struct sdma_engine *sde, sde 494 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, sn) sde 498 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, u64 sn), sde 499 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, sn) sde 661 drivers/infiniband/hw/hfi1/trace_tx.h u8 sde, u8 ahgidx, u32 *ahg, int len, u32 tidval), sde 662 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(dd, ctxt, subctxt, req, sde, ahgidx, ahg, len, tidval), sde 668 drivers/infiniband/hw/hfi1/trace_tx.h __field(u8, sde) sde 679 drivers/infiniband/hw/hfi1/trace_tx.h __entry->sde = sde; sde 690 drivers/infiniband/hw/hfi1/trace_tx.h __entry->sde, sde 699 drivers/infiniband/hw/hfi1/trace_tx.h TP_PROTO(struct sdma_engine *sde, sde 703 drivers/infiniband/hw/hfi1/trace_tx.h TP_ARGS(sde, cstate, nstate), sde 704 drivers/infiniband/hw/hfi1/trace_tx.h TP_STRUCT__entry(DD_DEV_ENTRY(sde->dd) sde 708 drivers/infiniband/hw/hfi1/trace_tx.h TP_fast_assign(DD_DEV_ASSIGN(sde->dd); sde 270 drivers/infiniband/hw/hfi1/uc.c ps->s_txreq->sde = priv->s_sde; sde 563 drivers/infiniband/hw/hfi1/ud.c ps->s_txreq->sde = priv->s_sde; sde 102 drivers/infiniband/hw/hfi1/user_sdma.c struct sdma_engine *sde, sde 125 drivers/infiniband/hw/hfi1/user_sdma.c struct sdma_engine *sde, sde 134 drivers/infiniband/hw/hfi1/user_sdma.c write_seqlock(&sde->waitlock); sde 135 drivers/infiniband/hw/hfi1/user_sdma.c if (sdma_progress(sde, seq, txreq)) sde 144 drivers/infiniband/hw/hfi1/user_sdma.c pq->busy.lock = &sde->waitlock; sde 146 drivers/infiniband/hw/hfi1/user_sdma.c iowait_queue(pkts_sent, &pq->busy, &sde->dmawait); sde 148 drivers/infiniband/hw/hfi1/user_sdma.c write_sequnlock(&sde->waitlock); sde 151 drivers/infiniband/hw/hfi1/user_sdma.c write_sequnlock(&sde->waitlock); sde 579 drivers/infiniband/hw/hfi1/user_sdma.c req->sde = sdma_select_user_engine(dd, selector, vl); sde 581 drivers/infiniband/hw/hfi1/user_sdma.c if (!req->sde || !sdma_running(req->sde)) { sde 588 drivers/infiniband/hw/hfi1/user_sdma.c req->ahg_idx = sdma_ahg_alloc(req->sde); sde 934 drivers/infiniband/hw/hfi1/user_sdma.c ret = sdma_send_txlist(req->sde, sde 946 drivers/infiniband/hw/hfi1/user_sdma.c sdma_ahg_free(req->sde, req->ahg_idx); sde 1376 drivers/infiniband/hw/hfi1/user_sdma.c req->info.comp_idx, req->sde->this_idx, sde 185 drivers/infiniband/hw/hfi1/user_sdma.h struct sdma_engine *sde; sde 696 drivers/infiniband/hw/hfi1/verbs.c struct sdma_engine *sde, sde 711 drivers/infiniband/hw/hfi1/verbs.c sde->dd, sde 760 drivers/infiniband/hw/hfi1/verbs.c struct sdma_engine *sde, sde 794 drivers/infiniband/hw/hfi1/verbs.c sde->dd, sde 815 drivers/infiniband/hw/hfi1/verbs.c ret = build_verbs_ulp_payload(sde, length, tx); sde 822 drivers/infiniband/hw/hfi1/verbs.c ret = sdma_txadd_daddr(sde->dd, &tx->txreq, sde 823 drivers/infiniband/hw/hfi1/verbs.c sde->dd->sdma_pad_phys, extra_bytes); sde 889 drivers/infiniband/hw/hfi1/verbs.c ret = build_verbs_tx_desc(tx->sde, len, tx, ahg_info, pbc); sde 893 drivers/infiniband/hw/hfi1/verbs.c ret = sdma_send_txreq(tx->sde, ps->wait, &tx->txreq, ps->pkts_sent); sde 65 drivers/infiniband/hw/hfi1/verbs_txreq.h struct sdma_engine *sde; sde 92 drivers/infiniband/hw/hfi1/verbs_txreq.h tx->sde = priv->s_sde; sde 85 drivers/infiniband/hw/hfi1/vnic.h struct sdma_engine *sde; sde 430 drivers/infiniband/hw/hfi1/vnic_main.c struct sdma_engine *sde; sde 433 drivers/infiniband/hw/hfi1/vnic_main.c sde = sdma_select_engine_vl(vinfo->dd, mdata->entropy, mdata->vl); sde 434 drivers/infiniband/hw/hfi1/vnic_main.c return sde->this_idx; sde 91 drivers/infiniband/hw/hfi1/vnic_sdma.c static noinline int build_vnic_ulp_payload(struct sdma_engine *sde, sde 97 drivers/infiniband/hw/hfi1/vnic_sdma.c sde->dd, sde 108 drivers/infiniband/hw/hfi1/vnic_sdma.c ret = sdma_txadd_page(sde->dd, sde 118 drivers/infiniband/hw/hfi1/vnic_sdma.c ret = sdma_txadd_kvaddr(sde->dd, &tx->txreq, sde 126 drivers/infiniband/hw/hfi1/vnic_sdma.c static int build_vnic_tx_desc(struct sdma_engine *sde, sde 148 drivers/infiniband/hw/hfi1/vnic_sdma.c sde->dd, sde 156 drivers/infiniband/hw/hfi1/vnic_sdma.c ret = build_vnic_ulp_payload(sde, tx); sde 172 drivers/infiniband/hw/hfi1/vnic_sdma.c struct sdma_engine *sde = vnic_sdma->sde; sde 179 drivers/infiniband/hw/hfi1/vnic_sdma.c if (unlikely(!sde || !sdma_running(sde))) sde 192 drivers/infiniband/hw/hfi1/vnic_sdma.c ret = build_vnic_tx_desc(sde, tx, pbc); sde 196 drivers/infiniband/hw/hfi1/vnic_sdma.c ret = sdma_send_txreq(sde, iowait_get_ib_work(&vnic_sdma->wait), sde 227 drivers/infiniband/hw/hfi1/vnic_sdma.c static int hfi1_vnic_sdma_sleep(struct sdma_engine *sde, sde 236 drivers/infiniband/hw/hfi1/vnic_sdma.c write_seqlock(&sde->waitlock); sde 237 drivers/infiniband/hw/hfi1/vnic_sdma.c if (sdma_progress(sde, seq, txreq)) { sde 238 drivers/infiniband/hw/hfi1/vnic_sdma.c write_sequnlock(&sde->waitlock); sde 245 drivers/infiniband/hw/hfi1/vnic_sdma.c iowait_queue(pkts_sent, wait->iow, &sde->dmawait); sde 247 drivers/infiniband/hw/hfi1/vnic_sdma.c write_sequnlock(&sde->waitlock); sde 287 drivers/infiniband/hw/hfi1/vnic_sdma.c vnic_sdma->sde = &vinfo->dd->per_sdma[i]; sde 294 drivers/infiniband/hw/hfi1/vnic_sdma.c if (vnic_sdma->sde->descq_cnt > HFI1_VNIC_SDMA_DESC_WTRMRK) { sde 727 drivers/net/fddi/skfp/h/smt.h struct smt_p_sde sde ; /* station descriptor */ sde 740 drivers/net/fddi/skfp/h/smt.h struct smt_p_sde sde ; /* station descriptor */ sde 78 drivers/net/fddi/skfp/smt.c static void smt_fill_sde(struct s_smc *smc, struct smt_p_sde *sde); sde 942 drivers/net/fddi/skfp/smt.c smt_fill_sde(smc,&nif->sde) ; /* set station descriptor */ sde 1034 drivers/net/fddi/skfp/smt.c smt_fill_sde(smc,&sif->sde) ; /* set station descriptor */ sde 1161 drivers/net/fddi/skfp/smt.c static void smt_fill_sde(struct s_smc *smc, struct smt_p_sde *sde) sde 1163 drivers/net/fddi/skfp/smt.c SMTSETPARA(sde,SMT_P_SDE) ; sde 1164 drivers/net/fddi/skfp/smt.c sde->sde_non_master = smc->mib.fddiSMTNonMaster_Ct ; sde 1165 drivers/net/fddi/skfp/smt.c sde->sde_master = smc->mib.fddiSMTMaster_Ct ; sde 1166 drivers/net/fddi/skfp/smt.c sde->sde_mac_count = NUMMACS ; /* only 1 MAC */ sde 1168 drivers/net/fddi/skfp/smt.c sde->sde_type = SMT_SDE_CONCENTRATOR ; sde 1170 drivers/net/fddi/skfp/smt.c sde->sde_type = SMT_SDE_STATION ;