• Asutosh Das's avatar
    scsi: ufs: core: Enable power management for wlun · b294ff3e
    Asutosh Das authored
    During runtime-suspend of ufs host, the SCSI devices are already suspended
    and so are the queues associated with them. However, the ufs host sends SSU
    (START_STOP_UNIT) to the wlun during runtime-suspend.
    
    During the process blk_queue_enter() checks if the queue is not in suspended
    state. If so, it waits for the queue to resume, and never comes out of
    it. Commit 52abca64 ("scsi: block: Do not accept any requests while
    suspended") adds the check to see if the queue is in suspended state in
    blk_queue_enter().
    
    Call trace:
     __switch_to+0x174/0x2c4
     __schedule+0x478/0x764
     schedule+0x9c/0xe0
     blk_queue_enter+0x158/0x228
     blk_mq_alloc_request+0x40/0xa4
     blk_get_request+0x2c/0x70
     __scsi_execute+0x60/0x1c4
     ufshcd_set_dev_pwr_mode+0x124/0x1e4
     ufshcd_suspend+0x208/0x83c
     ufshcd_runtime_suspend+0x40/0x154
     ufshcd_pltfrm_runtime_suspend+0x14/0x20
     pm_generic_runtime_suspend+0x28/0x3c
     __rpm_callback+0x80/0x2a4
     rpm_suspend+0x308/0x614
     rpm_idle+0x158/0x228
     pm...
    b294ff3e
cdns-pltfrm.c 9.23 KB