]>
Commit | Line | Data |
---|---|---|
bca6b067 BVA |
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 | |
154b00d5 BVA |
9 | static 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 | ||
16 | static 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 | ||
bca6b067 BVA |
22 | static inline void blk_pm_requeue_request(struct request *rq) |
23 | { | |
0d945c1f | 24 | lockdep_assert_held(&rq->q->queue_lock); |
154b00d5 | 25 | |
bca6b067 BVA |
26 | if (rq->q->dev && !(rq->rq_flags & RQF_PM)) |
27 | rq->q->nr_pending--; | |
28 | } | |
29 | ||
30 | static inline void blk_pm_add_request(struct request_queue *q, | |
31 | struct request *rq) | |
32 | { | |
0d945c1f | 33 | lockdep_assert_held(&q->queue_lock); |
154b00d5 BVA |
34 | |
35 | if (q->dev && !(rq->rq_flags & RQF_PM)) | |
36 | q->nr_pending++; | |
bca6b067 BVA |
37 | } |
38 | ||
39 | static inline void blk_pm_put_request(struct request *rq) | |
40 | { | |
0d945c1f | 41 | lockdep_assert_held(&rq->q->queue_lock); |
154b00d5 BVA |
42 | |
43 | if (rq->q->dev && !(rq->rq_flags & RQF_PM)) | |
44 | --rq->q->nr_pending; | |
bca6b067 BVA |
45 | } |
46 | #else | |
154b00d5 BVA |
47 | static inline void blk_pm_request_resume(struct request_queue *q) |
48 | { | |
49 | } | |
50 | ||
51 | static inline void blk_pm_mark_last_busy(struct request *rq) | |
52 | { | |
53 | } | |
54 | ||
bca6b067 BVA |
55 | static inline void blk_pm_requeue_request(struct request *rq) |
56 | { | |
57 | } | |
58 | ||
59 | static inline void blk_pm_add_request(struct request_queue *q, | |
60 | struct request *rq) | |
61 | { | |
62 | } | |
63 | ||
64 | static inline void blk_pm_put_request(struct request *rq) | |
65 | { | |
66 | } | |
67 | #endif | |
68 | ||
69 | #endif /* _BLOCK_BLK_PM_H_ */ |