mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: Move sched to be Linux specific
Move sched parameter APIs to be Linux specific implementation. At the same time the sched_ctrl fields were moved to nvgpu_os_linux. JIRA NVGPU-259 Change-Id: I2397e2602e1c4783f2bebf3aec462634b7f86d4a Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1580649 GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
mobile promotions
parent
a2c9c6ba05
commit
d7fe2fbacb
55
drivers/gpu/nvgpu/common/linux/sched.h
Normal file
55
drivers/gpu/nvgpu/common/linux/sched.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __NVGPU_SCHED_H
|
||||
#define __NVGPU_SCHED_H
|
||||
|
||||
struct gk20a;
|
||||
struct gpu_ops;
|
||||
struct tsg_gk20a;
|
||||
struct poll_table_struct;
|
||||
|
||||
struct gk20a_sched_ctrl {
|
||||
struct gk20a *g;
|
||||
|
||||
struct nvgpu_mutex control_lock;
|
||||
bool control_locked;
|
||||
bool sw_ready;
|
||||
struct nvgpu_mutex status_lock;
|
||||
struct nvgpu_mutex busy_lock;
|
||||
|
||||
u64 status;
|
||||
|
||||
size_t bitmap_size;
|
||||
u64 *active_tsg_bitmap;
|
||||
u64 *recent_tsg_bitmap;
|
||||
u64 *ref_tsg_bitmap;
|
||||
|
||||
struct nvgpu_cond readout_wq;
|
||||
};
|
||||
|
||||
int gk20a_sched_dev_release(struct inode *inode, struct file *filp);
|
||||
int gk20a_sched_dev_open(struct inode *inode, struct file *filp);
|
||||
long gk20a_sched_dev_ioctl(struct file *, unsigned int, unsigned long);
|
||||
ssize_t gk20a_sched_dev_read(struct file *, char __user *, size_t, loff_t *);
|
||||
unsigned int gk20a_sched_dev_poll(struct file *, struct poll_table_struct *);
|
||||
|
||||
void gk20a_sched_ctrl_tsg_added(struct gk20a *, struct tsg_gk20a *);
|
||||
void gk20a_sched_ctrl_tsg_removed(struct gk20a *, struct tsg_gk20a *);
|
||||
int gk20a_sched_ctrl_init(struct gk20a *);
|
||||
|
||||
void gk20a_sched_ctrl_cleanup(struct gk20a *g);
|
||||
|
||||
#endif /* __NVGPU_SCHED_H */
|
||||
Reference in New Issue
Block a user