diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2015-10-28 06:43:14 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-11-03 17:20:08 -0500 |
commit | 9592a4e6fce8204e9ada54ba00902e792199fec5 (patch) | |
tree | 37cc1bffce5ea48555a1ed88865e5f545627b546 /drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |
parent | 8d279dbac10b8521aa7eaeb7640c01d21ce044f2 (diff) |
gpu: nvgpu: IOCTL to set TSG timeslice
Add new IOCTL NVGPU_IOCTL_TSG_SET_PRIORITY to allow
setting timeslice for entire TSG
Return error from channel specific IOCTL_CHANNEL_SET_PRIORITY
if the channel is part of TSG
Separate out API gk20a_channel_get_timescale_from_timeslice()
to get timeslice_timeout and scale from timeslice period
Use this API to get timeslice_timeout and scale for TSG and
store it in tsg_gk20a structure
Then trigger runlist update so that new timeslice values
will be re-written to runlist for TSG
Bug 200146615
Change-Id: I555467d034f81b372b31372f0835d72b1c159508
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/824206
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h index 29697b9f..e7809daa 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |||
@@ -253,4 +253,9 @@ int channel_gk20a_setup_ramfc(struct channel_gk20a *c, | |||
253 | u64 gpfifo_base, u32 gpfifo_entries, u32 flags); | 253 | u64 gpfifo_base, u32 gpfifo_entries, u32 flags); |
254 | void channel_gk20a_enable(struct channel_gk20a *ch); | 254 | void channel_gk20a_enable(struct channel_gk20a *ch); |
255 | void gk20a_channel_timeout_restart_all_channels(struct gk20a *g); | 255 | void gk20a_channel_timeout_restart_all_channels(struct gk20a *g); |
256 | |||
257 | int gk20a_channel_get_timescale_from_timeslice(struct gk20a *g, | ||
258 | int timeslice_period, | ||
259 | int *__timeslice_timeout, int *__timeslice_scale); | ||
260 | |||
256 | #endif /* CHANNEL_GK20A_H */ | 261 | #endif /* CHANNEL_GK20A_H */ |