1bca6b067SBart Van Assche /* SPDX-License-Identifier: GPL-2.0 */ 2bca6b067SBart Van Assche 3bca6b067SBart Van Assche #ifndef _BLOCK_BLK_PM_H_ 4bca6b067SBart Van Assche #define _BLOCK_BLK_PM_H_ 5bca6b067SBart Van Assche 6bca6b067SBart Van Assche #include <linux/pm_runtime.h> 7bca6b067SBart Van Assche 8bca6b067SBart Van Assche #ifdef CONFIG_PM blk_pm_resume_queue(const bool pm,struct request_queue * q)9*52abca64SAlan Sternstatic inline int blk_pm_resume_queue(const bool pm, struct request_queue *q) 10154b00d5SBart Van Assche { 11*52abca64SAlan Stern if (!q->dev || !blk_queue_pm_only(q)) 12*52abca64SAlan Stern return 1; /* Nothing to do */ 13*52abca64SAlan Stern if (pm && q->rpm_status != RPM_SUSPENDED) 14*52abca64SAlan Stern return 1; /* Request allowed */ 15154b00d5SBart Van Assche pm_request_resume(q->dev); 16*52abca64SAlan Stern return 0; 17154b00d5SBart Van Assche } 18154b00d5SBart Van Assche blk_pm_mark_last_busy(struct request * rq)19154b00d5SBart Van Asschestatic inline void blk_pm_mark_last_busy(struct request *rq) 20154b00d5SBart Van Assche { 21154b00d5SBart Van Assche if (rq->q->dev && !(rq->rq_flags & RQF_PM)) 22154b00d5SBart Van Assche pm_runtime_mark_last_busy(rq->q->dev); 23154b00d5SBart Van Assche } 24bca6b067SBart Van Assche #else blk_pm_resume_queue(const bool pm,struct request_queue * q)25*52abca64SAlan Sternstatic inline int blk_pm_resume_queue(const bool pm, struct request_queue *q) 26154b00d5SBart Van Assche { 27*52abca64SAlan Stern return 1; 28154b00d5SBart Van Assche } 29154b00d5SBart Van Assche blk_pm_mark_last_busy(struct request * rq)30154b00d5SBart Van Asschestatic inline void blk_pm_mark_last_busy(struct request *rq) 31154b00d5SBart Van Assche { 32154b00d5SBart Van Assche } 33bca6b067SBart Van Assche #endif 34bca6b067SBart Van Assche 35bca6b067SBart Van Assche #endif /* _BLOCK_BLK_PM_H_ */ 36