Lines Matching refs:w
340 static inline u16 iowait_get_desc(struct iowait_work *w) in iowait_get_desc() argument
345 if (!list_empty(&w->tx_head)) { in iowait_get_desc()
346 tx = list_first_entry(&w->tx_head, struct sdma_txreq, in iowait_get_desc()
350 w->iow->priority++; in iowait_get_desc()
355 static inline u32 iowait_get_all_desc(struct iowait *w) in iowait_get_all_desc() argument
359 num_desc = iowait_get_desc(&w->wait[IOWAIT_IB_SE]); in iowait_get_all_desc()
360 num_desc += iowait_get_desc(&w->wait[IOWAIT_TID_SE]); in iowait_get_all_desc()
364 static inline void iowait_update_priority(struct iowait_work *w) in iowait_update_priority() argument
368 if (!list_empty(&w->tx_head)) { in iowait_update_priority()
369 tx = list_first_entry(&w->tx_head, struct sdma_txreq, in iowait_update_priority()
372 w->iow->priority++; in iowait_update_priority()
376 static inline void iowait_update_all_priority(struct iowait *w) in iowait_update_all_priority() argument
378 iowait_update_priority(&w->wait[IOWAIT_IB_SE]); in iowait_update_all_priority()
379 iowait_update_priority(&w->wait[IOWAIT_TID_SE]); in iowait_update_all_priority()
382 static inline void iowait_init_priority(struct iowait *w) in iowait_init_priority() argument
384 w->priority = 0; in iowait_init_priority()
385 if (w->init_priority) in iowait_init_priority()
386 w->init_priority(w); in iowait_init_priority()
389 static inline void iowait_get_priority(struct iowait *w) in iowait_get_priority() argument
391 iowait_init_priority(w); in iowait_get_priority()
392 iowait_update_all_priority(w); in iowait_get_priority()
405 static inline void iowait_queue(bool pkts_sent, struct iowait *w, in iowait_queue() argument
415 w->starved_cnt = 0; in iowait_queue()
417 w->starved_cnt++; in iowait_queue()
419 if (w->priority > 0 || !pkts_sent) in iowait_queue()
420 list_add(&w->list, wait_head); in iowait_queue()
422 list_add_tail(&w->list, wait_head); in iowait_queue()
433 static inline void iowait_starve_clear(bool pkts_sent, struct iowait *w) in iowait_starve_clear() argument
436 w->starved_cnt = 0; in iowait_starve_clear()
440 uint iowait_priority_update_top(struct iowait *w,
458 static inline void iowait_inc_wait_count(struct iowait_work *w, u16 n) in iowait_inc_wait_count() argument
460 if (!w) in iowait_inc_wait_count()
462 w->iow->tx_count++; in iowait_inc_wait_count()
463 w->iow->count += n; in iowait_inc_wait_count()
470 static inline struct iowait_work *iowait_get_tid_work(struct iowait *w) in iowait_get_tid_work() argument
472 return &w->wait[IOWAIT_TID_SE]; in iowait_get_tid_work()
479 static inline struct iowait_work *iowait_get_ib_work(struct iowait *w) in iowait_get_ib_work() argument
481 return &w->wait[IOWAIT_IB_SE]; in iowait_get_ib_work()
488 static inline struct iowait *iowait_ioww_to_iow(struct iowait_work *w) in iowait_ioww_to_iow() argument
490 if (likely(w)) in iowait_ioww_to_iow()
491 return w->iow; in iowait_ioww_to_iow()
495 void iowait_cancel_work(struct iowait *w);
496 int iowait_set_work_flag(struct iowait_work *w);