Line data Source code
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 0 : static inline int blk_pm_resume_queue(const bool pm, struct request_queue *q) 10 : { 11 0 : if (!q->dev || !blk_queue_pm_only(q)) 12 : return 1; /* Nothing to do */ 13 0 : if (pm && q->rpm_status != RPM_SUSPENDED) 14 : return 1; /* Request allowed */ 15 0 : pm_request_resume(q->dev); 16 0 : return 0; 17 : } 18 : 19 : static inline void blk_pm_mark_last_busy(struct request *rq) 20 : { 21 0 : if (rq->q->dev && !(rq->rq_flags & RQF_PM)) 22 0 : 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_ */