Lines Matching defs:sdma_engine
270 struct sdma_engine { struct
272 struct hfi1_devdata *dd;
273 struct hfi1_pportdata *ppd;
275 void __iomem *tail_csr;
276 u64 imask; /* clear interrupt mask */
277 u64 idle_mask;
278 u64 progress_mask;
279 u64 int_mask;
281 volatile __le64 *head_dma; /* DMA'ed by chip */
283 dma_addr_t head_phys;
285 struct hw_sdma_desc *descq;
287 unsigned descq_full_count;
288 struct sdma_txreq **tx_ring;
290 dma_addr_t descq_phys;
292 u32 sdma_mask;
294 struct sdma_state state;
296 int cpu;
298 u8 sdma_shift;
300 u8 this_idx; /* zero relative engine */
302 spinlock_t senddmactrl_lock;
304 u64 p_senddmactrl; /* shadow per-engine SendDmaCtrl */
307 spinlock_t tail_lock ____cacheline_aligned_in_smp;
310 u64 tail_sn;
313 u32 descq_tail;
315 unsigned long ahg_bits;
317 u16 desc_avail;
319 u16 tx_tail;
321 u16 descq_cnt;
325 seqlock_t head_lock ____cacheline_aligned_in_smp;
328 u64 head_sn;
331 u32 descq_head;
333 u16 tx_head;
335 u64 last_status;
337 u64 err_cnt;
339 u64 sdma_int_cnt;
340 u64 idle_int_cnt;
341 u64 progress_int_cnt;
344 seqlock_t waitlock;
345 struct list_head dmawait;
350 ____cacheline_aligned_in_smp;
354 ____cacheline_aligned_in_smp;
356 struct work_struct err_halt_worker;
358 struct timer_list err_progress_check_timer;
359 u32 progress_check_head;
361 struct work_struct flush_worker;
363 spinlock_t flushlist_lock;
365 struct list_head flushlist;
366 struct cpumask cpu_mask;
367 struct kobject kobj;
391 static inline int sdma_empty(struct sdma_engine *sde) in sdma_empty() argument