/* * Copyright (c) 2017-2022, 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 . */ #include "debug_cde.h" #include "platform_gk20a.h" #include "os_linux.h" #include static ssize_t gk20a_cde_reload_write(struct file *file, const char __user *userbuf, size_t count, loff_t *ppos) { struct nvgpu_os_linux *l = file->private_data; gk20a_cde_reload(l); return count; } static const struct file_operations gk20a_cde_reload_fops = { .open = simple_open, .write = gk20a_cde_reload_write, }; void gk20a_cde_debugfs_init(struct gk20a *g) { struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g); struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); if (!platform->has_cde) return; debugfs_create_u32("cde_parameter", S_IWUSR | S_IRUGO, l->debugfs, &l->cde_app.shader_parameter); debugfs_create_u32("cde_ctx_count", S_IWUSR | S_IRUGO, l->debugfs, &l->cde_app.ctx_count); debugfs_create_u32("cde_ctx_usecount", S_IWUSR | S_IRUGO, l->debugfs, &l->cde_app.ctx_usecount); debugfs_create_u32("cde_ctx_count_top", S_IWUSR | S_IRUGO, l->debugfs, &l->cde_app.ctx_count_top); debugfs_create_file("reload_cde_firmware", S_IWUSR, l->debugfs, l, &gk20a_cde_reload_fops); }