Branch data 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 void blk_pm_request_resume(struct request_queue *q) 10 : : { 11 : 0 : if (q->dev && (q->rpm_status == RPM_SUSPENDED || 12 : : q->rpm_status == RPM_SUSPENDING)) 13 : : pm_request_resume(q->dev); 14 : 0 : } 15 : : 16 : 3 : static inline void blk_pm_mark_last_busy(struct request *rq) 17 : : { 18 : 3 : if (rq->q->dev && !(rq->rq_flags & RQF_PM)) 19 : : pm_runtime_mark_last_busy(rq->q->dev); 20 : 3 : } 21 : : 22 : : static 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 : : 30 : : static 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 : : 39 : : static 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 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 : : 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_ */