mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 02:52:51 +03:00
gpu: nvgpu: move cycle state buffer handler to linux
We use dma_buf pointer cyclestate_buffer_handler in common code But since this is linux specific, we need to move this out of common code and into linux specific code Move dma_buf pointer cyclestate_buffer_handler from common channel code to struct nvgpu_channel_linux Fix all pointer accesses to this handle Move gk20a_channel_free_cycle_stats_buffer() to ioctl_channel.c since it is mostly linux specific And since gk20a_channel_free_cycle_stats_buffer() needs to be called while closing the channel, call it from nvgpu_channel_close_linux() Jira NVGPU-397 Jira NVGPU-415 Change-Id: Ifb429e49b8f7a1c9e2bc757f3efdd50b28ceca1f Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1603909 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
861b11a968
commit
ce06f74d6b
@@ -360,24 +360,6 @@ static void gk20a_wait_until_counter_is_N(
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
||||
void gk20a_channel_free_cycle_stats_buffer(struct channel_gk20a *ch)
|
||||
{
|
||||
/* disable existing cyclestats buffer */
|
||||
nvgpu_mutex_acquire(&ch->cyclestate.cyclestate_buffer_mutex);
|
||||
if (ch->cyclestate.cyclestate_buffer_handler) {
|
||||
dma_buf_vunmap(ch->cyclestate.cyclestate_buffer_handler,
|
||||
ch->cyclestate.cyclestate_buffer);
|
||||
dma_buf_put(ch->cyclestate.cyclestate_buffer_handler);
|
||||
ch->cyclestate.cyclestate_buffer_handler = NULL;
|
||||
ch->cyclestate.cyclestate_buffer = NULL;
|
||||
ch->cyclestate.cyclestate_buffer_size = 0;
|
||||
}
|
||||
nvgpu_mutex_release(&ch->cyclestate.cyclestate_buffer_mutex);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* call ONLY when no references to the channel exist: after the last put */
|
||||
static void gk20a_free_channel(struct channel_gk20a *ch, bool force)
|
||||
{
|
||||
@@ -490,10 +472,6 @@ static void gk20a_free_channel(struct channel_gk20a *ch, bool force)
|
||||
nvgpu_big_free(g, ch->gpfifo.pipe);
|
||||
memset(&ch->gpfifo, 0, sizeof(struct gpfifo_desc));
|
||||
|
||||
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
||||
gk20a_channel_free_cycle_stats_buffer(ch);
|
||||
#endif
|
||||
|
||||
channel_gk20a_free_priv_cmdbuf(ch);
|
||||
|
||||
/* sync must be destroyed before releasing channel vm */
|
||||
|
||||
Reference in New Issue
Block a user