mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 20:10:23 +09:00
UPSTREAM: scsi: ufs: mcq: Use active_reqs to check busy in clock scaling
Multi Circular Queue doesn't use outstanding_reqs. However, the UFS clock scaling functions use outstanding_reqs to determine if there are requests pending. When MCQ is enabled, this check always returns false. Hence use active_reqs to check if there are pending requests. Bug: 254441685 Fixes:eacb139b77("scsi: ufs: core: mcq: Enable multi-circular queue") Signed-off-by: Asutosh Das <quic_asutoshd@quicinc.com> Reviewed-by: Manivannan Sadhasivam <mani@kernel.org> Link: https://lore.kernel.org/r/a24e0d646aac70eae0fc5e05fac0c58bb7e6e680.1678317160.git.quic_asutoshd@quicinc.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> (cherry picked from commitc6001025d5) Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: I5b5b5ab61971c60980ed66d05b026fad7100fade
This commit is contained in:
@@ -1512,7 +1512,7 @@ start_window:
|
||||
scaling->window_start_t = curr_t;
|
||||
scaling->tot_busy_t = 0;
|
||||
|
||||
if (hba->outstanding_reqs) {
|
||||
if (scaling->active_reqs) {
|
||||
scaling->busy_start_t = curr_t;
|
||||
scaling->is_busy_started = true;
|
||||
} else {
|
||||
@@ -2135,7 +2135,7 @@ static void ufshcd_clk_scaling_update_busy(struct ufs_hba *hba)
|
||||
|
||||
spin_lock_irqsave(hba->host->host_lock, flags);
|
||||
hba->clk_scaling.active_reqs--;
|
||||
if (!hba->outstanding_reqs && scaling->is_busy_started) {
|
||||
if (!scaling->active_reqs && scaling->is_busy_started) {
|
||||
scaling->tot_busy_t += ktime_to_us(ktime_sub(ktime_get(),
|
||||
scaling->busy_start_t));
|
||||
scaling->busy_start_t = 0;
|
||||
|
||||
Reference in New Issue
Block a user