gpu: nvgpu: Fix return value in pmu mutex release

Bug 1495617

Change-Id: I689ed4303bb3959bb24bf79d52891de28431fc67
Signed-off-by: Arto Merilainen <amerilainen@nvidia.com>
Reviewed-on: http://git-master/r/394904
(cherry-picked from commit a04c51430b186d23953960965ce3ab229968d1f7)
Reviewed-on: http://git-master/r/399565
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
Arto Merilainen
2014-04-08 14:29:38 +03:00
committed by Dan Willemsen
parent 6b71c1d740
commit f2ef74fbff

View File

@@ -1244,18 +1244,19 @@ int pmu_mutex_release(struct pmu_gk20a *pmu, u32 id, u32 *token)
return -EINVAL; return -EINVAL;
} }
if (--mutex->ref_cnt == 0) { if (--mutex->ref_cnt > 0)
gk20a_writel(g, pwr_pmu_mutex_r(mutex->index), return -EBUSY;
pwr_pmu_mutex_value_initial_lock_f());
data = gk20a_readl(g, pwr_pmu_mutex_id_release_r()); gk20a_writel(g, pwr_pmu_mutex_r(mutex->index),
data = set_field(data, pwr_pmu_mutex_id_release_value_m(), pwr_pmu_mutex_value_initial_lock_f());
pwr_pmu_mutex_id_release_value_f(owner));
gk20a_writel(g, pwr_pmu_mutex_id_release_r(), data);
gk20a_dbg_pmu("mutex released: id=%d, token=0x%x", data = gk20a_readl(g, pwr_pmu_mutex_id_release_r());
mutex->index, *token); data = set_field(data, pwr_pmu_mutex_id_release_value_m(),
} pwr_pmu_mutex_id_release_value_f(owner));
gk20a_writel(g, pwr_pmu_mutex_id_release_r(), data);
gk20a_dbg_pmu("mutex released: id=%d, token=0x%x",
mutex->index, *token);
return 0; return 0;
} }