diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2014-07-16 06:22:46 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:10:38 -0400 |
commit | fc73ff7214590782aaa055c7d33c83433f7c9b48 (patch) | |
tree | c37c6b6c5f8d2a276e2c792d91afa8f14215c90e /drivers | |
parent | d0ce4807d0f190be8fd4221bb48d543bf20473f6 (diff) |
gpu: nvgpu: skip WFI for KEPLER_C channels
In channel_finish(), we submit WFI for all the channels
including channels with KEPLER_C class.
Since there is no need to submit WFI for channels with
KEPLER_C class, we can optimize to skip submitting
WFI and directly wait on last submit fence
Bug 1534272
Change-Id: I3838416cf22122728e7f1008e01d77b14a35deba
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index ef3d8729..de82be36 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -1728,14 +1728,14 @@ int gk20a_channel_finish(struct channel_gk20a *ch, unsigned long timeout) | |||
1728 | if (ch->has_timedout) | 1728 | if (ch->has_timedout) |
1729 | return -ETIMEDOUT; | 1729 | return -ETIMEDOUT; |
1730 | 1730 | ||
1731 | if (!(fence->valid && fence->wfi)) { | 1731 | if (!(fence->valid && fence->wfi) && ch->obj_class != KEPLER_C) { |
1732 | gk20a_dbg_fn("issuing wfi, incr to finish the channel"); | 1732 | gk20a_dbg_fn("issuing wfi, incr to finish the channel"); |
1733 | err = gk20a_channel_submit_wfi(ch); | 1733 | err = gk20a_channel_submit_wfi(ch); |
1734 | } | 1734 | } |
1735 | if (err) | 1735 | if (err) |
1736 | return err; | 1736 | return err; |
1737 | 1737 | ||
1738 | BUG_ON(!(fence->valid && fence->wfi)); | 1738 | BUG_ON(!(fence->valid && fence->wfi) && ch->obj_class != KEPLER_C); |
1739 | 1739 | ||
1740 | gk20a_dbg_fn("waiting for channel to finish thresh:%d sema:%p", | 1740 | gk20a_dbg_fn("waiting for channel to finish thresh:%d sema:%p", |
1741 | fence->thresh, fence->semaphore); | 1741 | fence->thresh, fence->semaphore); |