• L
    block: add runtime pm helpers · 6c954667
    Lin Ming 提交于
    Add runtime pm helper functions:
    
    void blk_pm_runtime_init(struct request_queue *q, struct device *dev)
      - Initialization function for drivers to call.
    
    int blk_pre_runtime_suspend(struct request_queue *q)
      - If any requests are in the queue, mark last busy and return -EBUSY.
        Otherwise set q->rpm_status to RPM_SUSPENDING and return 0.
    
    void blk_post_runtime_suspend(struct request_queue *q, int err)
      - If the suspend succeeded then set q->rpm_status to RPM_SUSPENDED.
        Otherwise set it to RPM_ACTIVE and mark last busy.
    
    void blk_pre_runtime_resume(struct request_queue *q)
      - Set q->rpm_status to RPM_RESUMING.
    
    void blk_post_runtime_resume(struct request_queue *q, int err)
      - If the resume succeeded then set q->rpm_status to RPM_ACTIVE
        and call __blk_run_queue, then mark last busy and autosuspend.
        Otherwise set q->rpm_status to RPM_SUSPENDED.
    
    The idea and API is designed by Alan Stern and described here:
    http://marc.info/?l=linux-scsi&m=133727953625963&w=2Signed-off-by: NLin Ming <ming.m.lin@intel.com>
    Signed-off-by: NAaron Lu <aaron.lu@intel.com>
    Acked-by: NAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    6c954667
blkdev.h 44.5 KB