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 |
9 | static inline int blk_pm_resume_queue(const bool pm, struct request_queue *q) |
10 | { |
11 | if (!q->dev || !blk_queue_pm_only(q)) |
12 | return 1; /* Nothing to do */ |
13 | if (pm && q->rpm_status != RPM_SUSPENDED) |
14 | return 1; /* Request allowed */ |
15 | pm_request_resume(dev: q->dev); |
16 | return 0; |
17 | } |
18 | |
19 | static inline void blk_pm_mark_last_busy(struct request *rq) |
20 | { |
21 | if (rq->q->dev && !(rq->rq_flags & RQF_PM)) |
22 | pm_runtime_mark_last_busy(dev: rq->q->dev); |
23 | } |
24 | #else |
25 | static inline int blk_pm_resume_queue(const bool pm, struct request_queue *q) |
26 | { |
27 | return 1; |
28 | } |
29 | |
30 | static inline void blk_pm_mark_last_busy(struct request *rq) |
31 | { |
32 | } |
33 | #endif |
34 | |
35 | #endif /* _BLOCK_BLK_PM_H_ */ |
36 |