linux/block/blk-pm.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2
   3#ifndef _BLOCK_BLK_PM_H_
   4#define _BLOCK_BLK_PM_H_
   5
   6#include <linux/pm_runtime.h>
   7
   8#ifdef CONFIG_PM
   9static inline void blk_pm_request_resume(struct request_queue *q)
  10{
  11        if (q->dev && (q->rpm_status == RPM_SUSPENDED ||
  12                       q->rpm_status == RPM_SUSPENDING))
  13                pm_request_resume(q->dev);
  14}
  15
  16static inline void blk_pm_mark_last_busy(struct request *rq)
  17{
  18        if (rq->q->dev && !(rq->rq_flags & RQF_PM))
  19                pm_runtime_mark_last_busy(rq->q->dev);
  20}
  21
  22static inline void blk_pm_requeue_request(struct request *rq)
  23{
  24        lockdep_assert_held(&rq->q->queue_lock);
  25
  26        if (rq->q->dev && !(rq->rq_flags & RQF_PM))
  27                rq->q->nr_pending--;
  28}
  29
  30static inline void blk_pm_add_request(struct request_queue *q,
  31                                      struct request *rq)
  32{
  33        lockdep_assert_held(&q->queue_lock);
  34
  35        if (q->dev && !(rq->rq_flags & RQF_PM))
  36                q->nr_pending++;
  37}
  38
  39static inline void blk_pm_put_request(struct request *rq)
  40{
  41        lockdep_assert_held(&rq->q->queue_lock);
  42
  43        if (rq->q->dev && !(rq->rq_flags & RQF_PM))
  44                --rq->q->nr_pending;
  45}
  46#else
  47static inline void blk_pm_request_resume(struct request_queue *q)
  48{
  49}
  50
  51static inline void blk_pm_mark_last_busy(struct request *rq)
  52{
  53}
  54
  55static inline void blk_pm_requeue_request(struct request *rq)
  56{
  57}
  58
  59static inline void blk_pm_add_request(struct request_queue *q,
  60                                      struct request *rq)
  61{
  62}
  63
  64static inline void blk_pm_put_request(struct request *rq)
  65{
  66}
  67#endif
  68
  69#endif /* _BLOCK_BLK_PM_H_ */
  70