Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/block/blk-pm.h
26242 views
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(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(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
37