diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h index a17e6ea9..aa87464b 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h | |||
@@ -157,6 +157,12 @@ struct channel_gk20a { | |||
157 | 157 | ||
158 | /* event support */ | 158 | /* event support */ |
159 | struct channel_gk20a_poll_events poll_events; | 159 | struct channel_gk20a_poll_events poll_events; |
160 | |||
161 | /* signal channel owner via a callback, if set, in gk20a_channel_update | ||
162 | * via schedule_work */ | ||
163 | void (*update_fn)(struct channel_gk20a *, void *); | ||
164 | void *update_fn_data; | ||
165 | struct work_struct update_fn_work; | ||
160 | }; | 166 | }; |
161 | 167 | ||
162 | static inline bool gk20a_channel_as_bound(struct channel_gk20a *ch) | 168 | static inline bool gk20a_channel_as_bound(struct channel_gk20a *ch) |
@@ -196,6 +202,9 @@ void gk20a_init_channel(struct gpu_ops *gops); | |||
196 | 202 | ||
197 | int gk20a_wait_channel_idle(struct channel_gk20a *ch); | 203 | int gk20a_wait_channel_idle(struct channel_gk20a *ch); |
198 | struct channel_gk20a *gk20a_open_new_channel(struct gk20a *g); | 204 | struct channel_gk20a *gk20a_open_new_channel(struct gk20a *g); |
205 | struct channel_gk20a *gk20a_open_new_channel_with_cb(struct gk20a *g, | ||
206 | void (*update_fn)(struct channel_gk20a *, void *), | ||
207 | void *update_fn_data); | ||
199 | void channel_gk20a_unbind(struct channel_gk20a *ch_gk20a); | 208 | void channel_gk20a_unbind(struct channel_gk20a *ch_gk20a); |
200 | 209 | ||
201 | int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, | 210 | int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, |