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 ;