summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/fuse.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/fuse.c')
-rw-r--r--drivers/gpu/nvgpu/common/linux/fuse.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/fuse.c b/drivers/gpu/nvgpu/common/linux/fuse.c
index 5c832a2a..993cbc5a 100644
--- a/drivers/gpu/nvgpu/common/linux/fuse.c
+++ b/drivers/gpu/nvgpu/common/linux/fuse.c
@@ -15,17 +15,41 @@
15 15
16#include <nvgpu/fuse.h> 16#include <nvgpu/fuse.h>
17 17
18int nvgpu_tegra_fuse_read(unsigned long offset, u32 *value) 18int nvgpu_tegra_get_gpu_speedo_id(void)
19{ 19{
20 return tegra_fuse_readl(offset, value); 20 return tegra_sku_info.gpu_speedo_id;
21} 21}
22 22
23void nvgpu_tegra_fuse_write(u32 value, unsigned long offset) 23/*
24 * Use tegra_fuse_control_read/write() APIs for fuse offsets upto 0x100
25 * Use tegra_fuse_readl/writel() APIs for fuse offsets above 0x100
26 */
27void nvgpu_tegra_fuse_write_bypass(u32 val)
24{ 28{
25 tegra_fuse_control_write(value, offset); 29 tegra_fuse_control_write(val, FUSE_FUSEBYPASS_0);
26} 30}
27 31
28int nvgpu_tegra_get_gpu_speedo_id(void) 32void nvgpu_tegra_fuse_write_access_sw(u32 val)
29{ 33{
30 return tegra_sku_info.gpu_speedo_id; 34 tegra_fuse_control_write(val, FUSE_WRITE_ACCESS_SW_0);
35}
36
37void nvgpu_tegra_fuse_write_opt_gpu_tpc0_disable(u32 val)
38{
39 tegra_fuse_writel(val, FUSE_OPT_GPU_TPC0_DISABLE_0);
40}
41
42void nvgpu_tegra_fuse_write_opt_gpu_tpc1_disable(u32 val)
43{
44 tegra_fuse_writel(val, FUSE_OPT_GPU_TPC1_DISABLE_0);
45}
46
47int nvgpu_tegra_fuse_read_gcplex_config_fuse(u32 *val)
48{
49 return tegra_fuse_readl(FUSE_GCPLEX_CONFIG_FUSE_0, val);
50}
51
52int nvgpu_tegra_fuse_read_reserved_calib(u32 *val)
53{
54 return tegra_fuse_readl(FUSE_RESERVED_CALIB0_0, val);
31} 55}