mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 09:57:08 +03:00
gpu: nvgpu: Move rest of CDE structures to Linux
Move rest of CDE structures to common/linux. This includes moving the per-chip firmware file interpretation functions, and removing CDE ops from HAL and adding it to nvgpu_os_linux. JIRA NVGPU-259 Change-Id: I59d8f44bddadecef81ad3c455b363a14034c5e13 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1570403 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
5c5b52dce5
commit
b252653ac5
@@ -48,6 +48,8 @@ nvgpu-y := \
|
|||||||
common/linux/cde.o \
|
common/linux/cde.o \
|
||||||
common/linux/io.o \
|
common/linux/io.o \
|
||||||
common/linux/rwsem.o \
|
common/linux/rwsem.o \
|
||||||
|
common/linux/cde_gm20b.o \
|
||||||
|
common/linux/cde_gp10b.o \
|
||||||
common/mm/nvgpu_allocator.o \
|
common/mm/nvgpu_allocator.o \
|
||||||
common/mm/bitmap_allocator.o \
|
common/mm/bitmap_allocator.o \
|
||||||
common/mm/buddy_allocator.o \
|
common/mm/buddy_allocator.o \
|
||||||
@@ -115,7 +117,6 @@ nvgpu-y := \
|
|||||||
gm20b/pmu_gm20b.o \
|
gm20b/pmu_gm20b.o \
|
||||||
gm20b/mm_gm20b.o \
|
gm20b/mm_gm20b.o \
|
||||||
gm20b/regops_gm20b.o \
|
gm20b/regops_gm20b.o \
|
||||||
gm20b/cde_gm20b.o \
|
|
||||||
gm20b/therm_gm20b.o \
|
gm20b/therm_gm20b.o \
|
||||||
boardobj/boardobj.o \
|
boardobj/boardobj.o \
|
||||||
boardobj/boardobjgrp.o \
|
boardobj/boardobjgrp.o \
|
||||||
@@ -192,7 +193,6 @@ nvgpu-y += \
|
|||||||
gp10b/rpfb_gp10b.o \
|
gp10b/rpfb_gp10b.o \
|
||||||
gp10b/gp10b_gating_reglist.o \
|
gp10b/gp10b_gating_reglist.o \
|
||||||
gp10b/regops_gp10b.o \
|
gp10b/regops_gp10b.o \
|
||||||
gp10b/cde_gp10b.o \
|
|
||||||
gp10b/therm_gp10b.o \
|
gp10b/therm_gp10b.o \
|
||||||
gp10b/fecs_trace_gp10b.o \
|
gp10b/fecs_trace_gp10b.o \
|
||||||
gp10b/priv_ring_gp10b.o \
|
gp10b/priv_ring_gp10b.o \
|
||||||
|
|||||||
@@ -1068,8 +1068,8 @@ __releases(&l->cde_app->mutex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (scatterbuffer_byte_offset &&
|
if (scatterbuffer_byte_offset &&
|
||||||
g->ops.cde.need_scatter_buffer &&
|
l->ops.cde.need_scatter_buffer &&
|
||||||
g->ops.cde.need_scatter_buffer(g)) {
|
l->ops.cde.need_scatter_buffer(g)) {
|
||||||
struct sg_table *sgt;
|
struct sg_table *sgt;
|
||||||
void *scatter_buffer;
|
void *scatter_buffer;
|
||||||
|
|
||||||
@@ -1092,7 +1092,7 @@ __releases(&l->cde_app->mutex)
|
|||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
goto exit_unmap_surface;
|
goto exit_unmap_surface;
|
||||||
} else {
|
} else {
|
||||||
err = g->ops.cde.populate_scatter_buffer(g, sgt,
|
err = l->ops.cde.populate_scatter_buffer(g, sgt,
|
||||||
compbits_byte_offset, scatter_buffer,
|
compbits_byte_offset, scatter_buffer,
|
||||||
scatterbuffer_size);
|
scatterbuffer_size);
|
||||||
WARN_ON(err);
|
WARN_ON(err);
|
||||||
@@ -1463,8 +1463,8 @@ static int gk20a_buffer_convert_gpu_to_cde_v1(
|
|||||||
int hprog = -1;
|
int hprog = -1;
|
||||||
int vprog = -1;
|
int vprog = -1;
|
||||||
|
|
||||||
if (g->ops.cde.get_program_numbers)
|
if (l->ops.cde.get_program_numbers)
|
||||||
g->ops.cde.get_program_numbers(g, block_height_log2,
|
l->ops.cde.get_program_numbers(g, block_height_log2,
|
||||||
l->cde_app.shader_parameter,
|
l->cde_app.shader_parameter,
|
||||||
&hprog, &vprog);
|
&hprog, &vprog);
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ enum programs {
|
|||||||
PROG_PASSTHROUGH = 6,
|
PROG_PASSTHROUGH = 6,
|
||||||
};
|
};
|
||||||
|
|
||||||
void gm20b_cde_get_program_numbers(struct gk20a *g,
|
static void gm20b_cde_get_program_numbers(struct gk20a *g,
|
||||||
u32 block_height_log2,
|
u32 block_height_log2,
|
||||||
u32 shader_parameter,
|
u32 shader_parameter,
|
||||||
int *hprog_out, int *vprog_out)
|
int *hprog_out, int *vprog_out)
|
||||||
@@ -56,3 +56,9 @@ void gm20b_cde_get_program_numbers(struct gk20a *g,
|
|||||||
*hprog_out = hprog;
|
*hprog_out = hprog;
|
||||||
*vprog_out = vprog;
|
*vprog_out = vprog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct nvgpu_os_linux_ops gm20b_cde_ops = {
|
||||||
|
.cde = {
|
||||||
|
.get_program_numbers = gm20b_cde_get_program_numbers,
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -25,11 +25,8 @@
|
|||||||
#ifndef _NVHOST_GM20B_CDE
|
#ifndef _NVHOST_GM20B_CDE
|
||||||
#define _NVHOST_GM20B_CDE
|
#define _NVHOST_GM20B_CDE
|
||||||
|
|
||||||
struct gk20a;
|
#include "os_linux.h"
|
||||||
|
|
||||||
void gm20b_cde_get_program_numbers(struct gk20a *g,
|
extern struct nvgpu_os_linux_ops gm20b_cde_ops;
|
||||||
u32 block_height_log2,
|
|
||||||
u32 shader_parameter,
|
|
||||||
int *hprog_out, int *vprog_out);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -150,3 +150,11 @@ int gp10b_populate_scatter_buffer(struct gk20a *g,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct nvgpu_os_linux_ops gp10b_cde_ops = {
|
||||||
|
.cde = {
|
||||||
|
.get_program_numbers = gp10b_cde_get_program_numbers,
|
||||||
|
.need_scatter_buffer = gp10b_need_scatter_buffer,
|
||||||
|
.populate_scatter_buffer = gp10b_populate_scatter_buffer,
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -25,18 +25,8 @@
|
|||||||
#ifndef _NVHOST_GP10B_CDE
|
#ifndef _NVHOST_GP10B_CDE
|
||||||
#define _NVHOST_GP10B_CDE
|
#define _NVHOST_GP10B_CDE
|
||||||
|
|
||||||
struct gk20a;
|
#include "os_linux.h"
|
||||||
struct sg_table;
|
|
||||||
|
|
||||||
void gp10b_cde_get_program_numbers(struct gk20a *g,
|
extern struct nvgpu_os_linux_ops gp10b_cde_ops;
|
||||||
u32 block_height_log2,
|
|
||||||
u32 shader_parameter,
|
|
||||||
int *hprog_out, int *vprog_out);
|
|
||||||
bool gp10b_need_scatter_buffer(struct gk20a *g);
|
|
||||||
int gp10b_populate_scatter_buffer(struct gk20a *g,
|
|
||||||
struct sg_table *sgt,
|
|
||||||
size_t surface_size,
|
|
||||||
void *scatter_buffer_ptr,
|
|
||||||
size_t scatter_buffer_size);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -49,6 +49,8 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#include "os_linux.h"
|
#include "os_linux.h"
|
||||||
|
#include "cde_gm20b.h"
|
||||||
|
#include "cde_gp10b.h"
|
||||||
|
|
||||||
#define CLASS_NAME "nvidia-gpu"
|
#define CLASS_NAME "nvidia-gpu"
|
||||||
/* TODO: Change to e.g. "nvidia-gpu%s" once we have symlinks in place. */
|
/* TODO: Change to e.g. "nvidia-gpu%s" once we have symlinks in place. */
|
||||||
@@ -154,6 +156,26 @@ static int gk20a_restore_registers(struct gk20a *g)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int nvgpu_init_os_linux_ops(struct nvgpu_os_linux *l) {
|
||||||
|
struct gk20a *g = &l->g;
|
||||||
|
u32 ver = g->gpu_characteristics.arch + g->gpu_characteristics.impl;
|
||||||
|
|
||||||
|
switch (ver) {
|
||||||
|
case GK20A_GPUID_GM20B:
|
||||||
|
case GK20A_GPUID_GM20B_B:
|
||||||
|
l->ops.cde = gm20b_cde_ops.cde;
|
||||||
|
break;
|
||||||
|
case NVGPU_GPUID_GP10B:
|
||||||
|
l->ops.cde = gp10b_cde_ops.cde;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* CDE is optional, so today ignoring unknown chip is fine */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int gk20a_pm_finalize_poweron(struct device *dev)
|
int gk20a_pm_finalize_poweron(struct device *dev)
|
||||||
{
|
{
|
||||||
struct gk20a *g = get_gk20a(dev);
|
struct gk20a *g = get_gk20a(dev);
|
||||||
@@ -198,6 +220,10 @@ int gk20a_pm_finalize_poweron(struct device *dev)
|
|||||||
|
|
||||||
trace_gk20a_finalize_poweron_done(dev_name(dev));
|
trace_gk20a_finalize_poweron_done(dev_name(dev));
|
||||||
|
|
||||||
|
err = nvgpu_init_os_linux_ops(l);
|
||||||
|
if (err)
|
||||||
|
goto done;
|
||||||
|
|
||||||
enable_irq(g->irq_stall);
|
enable_irq(g->irq_stall);
|
||||||
if (g->irq_stall != g->irq_nonstall)
|
if (g->irq_stall != g->irq_nonstall)
|
||||||
enable_irq(g->irq_nonstall);
|
enable_irq(g->irq_nonstall);
|
||||||
|
|||||||
@@ -24,6 +24,21 @@
|
|||||||
#include "gk20a/gk20a.h"
|
#include "gk20a/gk20a.h"
|
||||||
#include "cde.h"
|
#include "cde.h"
|
||||||
|
|
||||||
|
struct nvgpu_os_linux_ops {
|
||||||
|
struct {
|
||||||
|
void (*get_program_numbers)(struct gk20a *g,
|
||||||
|
u32 block_height_log2,
|
||||||
|
u32 shader_parameter,
|
||||||
|
int *hprog, int *vprog);
|
||||||
|
bool (*need_scatter_buffer)(struct gk20a *g);
|
||||||
|
int (*populate_scatter_buffer)(struct gk20a *g,
|
||||||
|
struct sg_table *sgt,
|
||||||
|
size_t surface_size,
|
||||||
|
void *scatter_buffer_ptr,
|
||||||
|
size_t scatter_buffer_size);
|
||||||
|
} cde;
|
||||||
|
};
|
||||||
|
|
||||||
struct nvgpu_os_linux {
|
struct nvgpu_os_linux {
|
||||||
struct gk20a g;
|
struct gk20a g;
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
@@ -99,6 +114,9 @@ struct nvgpu_os_linux {
|
|||||||
#ifdef CONFIG_TEGRA_19x_GPU
|
#ifdef CONFIG_TEGRA_19x_GPU
|
||||||
struct nvgpu_os_linux_t19x t19x;
|
struct nvgpu_os_linux_t19x t19x;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct nvgpu_os_linux_ops ops;
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_FS
|
#ifdef CONFIG_DEBUG_FS
|
||||||
struct dentry *debugfs;
|
struct dentry *debugfs;
|
||||||
struct dentry *debugfs_alias;
|
struct dentry *debugfs_alias;
|
||||||
|
|||||||
@@ -943,18 +943,6 @@ struct gpu_ops {
|
|||||||
int (*perfbuffer_enable)(struct gk20a *g, u64 offset, u32 size);
|
int (*perfbuffer_enable)(struct gk20a *g, u64 offset, u32 size);
|
||||||
int (*perfbuffer_disable)(struct gk20a *g);
|
int (*perfbuffer_disable)(struct gk20a *g);
|
||||||
} dbg_session_ops;
|
} dbg_session_ops;
|
||||||
struct {
|
|
||||||
void (*get_program_numbers)(struct gk20a *g,
|
|
||||||
u32 block_height_log2,
|
|
||||||
u32 shader_parameter,
|
|
||||||
int *hprog, int *vprog);
|
|
||||||
bool (*need_scatter_buffer)(struct gk20a *g);
|
|
||||||
int (*populate_scatter_buffer)(struct gk20a *g,
|
|
||||||
struct sg_table *sgt,
|
|
||||||
size_t surface_size,
|
|
||||||
void *scatter_buffer_ptr,
|
|
||||||
size_t scatter_buffer_size);
|
|
||||||
} cde;
|
|
||||||
|
|
||||||
int (*get_litter_value)(struct gk20a *g, int value);
|
int (*get_litter_value)(struct gk20a *g, int value);
|
||||||
int (*chip_init_gpu_characteristics)(struct gk20a *g);
|
int (*chip_init_gpu_characteristics)(struct gk20a *g);
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
#include "pmu_gm20b.h"
|
#include "pmu_gm20b.h"
|
||||||
#include "clk_gm20b.h"
|
#include "clk_gm20b.h"
|
||||||
#include "regops_gm20b.h"
|
#include "regops_gm20b.h"
|
||||||
#include "cde_gm20b.h"
|
|
||||||
#include "therm_gm20b.h"
|
#include "therm_gm20b.h"
|
||||||
#include "bus_gm20b.h"
|
#include "bus_gm20b.h"
|
||||||
#include "hal_gm20b.h"
|
#include "hal_gm20b.h"
|
||||||
@@ -539,9 +538,6 @@ static const struct gpu_ops gm20b_ops = {
|
|||||||
.perfbuffer_enable = gk20a_perfbuf_enable_locked,
|
.perfbuffer_enable = gk20a_perfbuf_enable_locked,
|
||||||
.perfbuffer_disable = gk20a_perfbuf_disable_locked,
|
.perfbuffer_disable = gk20a_perfbuf_disable_locked,
|
||||||
},
|
},
|
||||||
.cde = {
|
|
||||||
.get_program_numbers = gm20b_cde_get_program_numbers,
|
|
||||||
},
|
|
||||||
.bus = {
|
.bus = {
|
||||||
.init_hw = gk20a_bus_init_hw,
|
.init_hw = gk20a_bus_init_hw,
|
||||||
.isr = gk20a_bus_isr,
|
.isr = gk20a_bus_isr,
|
||||||
@@ -601,7 +597,6 @@ int gm20b_init_hal(struct gk20a *g)
|
|||||||
gops->mc = gm20b_ops.mc;
|
gops->mc = gm20b_ops.mc;
|
||||||
gops->dbg_session_ops = gm20b_ops.dbg_session_ops;
|
gops->dbg_session_ops = gm20b_ops.dbg_session_ops;
|
||||||
gops->debug = gm20b_ops.debug;
|
gops->debug = gm20b_ops.debug;
|
||||||
gops->cde = gm20b_ops.cde;
|
|
||||||
gops->bus = gm20b_ops.bus;
|
gops->bus = gm20b_ops.bus;
|
||||||
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
||||||
gops->css = gm20b_ops.css;
|
gops->css = gm20b_ops.css;
|
||||||
|
|||||||
@@ -45,7 +45,6 @@
|
|||||||
#include "gp10b/mm_gp10b.h"
|
#include "gp10b/mm_gp10b.h"
|
||||||
#include "gp10b/ce_gp10b.h"
|
#include "gp10b/ce_gp10b.h"
|
||||||
#include "gp10b/regops_gp10b.h"
|
#include "gp10b/regops_gp10b.h"
|
||||||
#include "gp10b/cde_gp10b.h"
|
|
||||||
#include "gp10b/priv_ring_gp10b.h"
|
#include "gp10b/priv_ring_gp10b.h"
|
||||||
#include "gp10b/fifo_gp10b.h"
|
#include "gp10b/fifo_gp10b.h"
|
||||||
#include "gp10b/fb_gp10b.h"
|
#include "gp10b/fb_gp10b.h"
|
||||||
@@ -654,11 +653,6 @@ static const struct gpu_ops gp106_ops = {
|
|||||||
.perfbuffer_enable = gk20a_perfbuf_enable_locked,
|
.perfbuffer_enable = gk20a_perfbuf_enable_locked,
|
||||||
.perfbuffer_disable = gk20a_perfbuf_disable_locked,
|
.perfbuffer_disable = gk20a_perfbuf_disable_locked,
|
||||||
},
|
},
|
||||||
.cde = {
|
|
||||||
.get_program_numbers = gp10b_cde_get_program_numbers,
|
|
||||||
.need_scatter_buffer = gp10b_need_scatter_buffer,
|
|
||||||
.populate_scatter_buffer = gp10b_populate_scatter_buffer,
|
|
||||||
},
|
|
||||||
.bus = {
|
.bus = {
|
||||||
.init_hw = gk20a_bus_init_hw,
|
.init_hw = gk20a_bus_init_hw,
|
||||||
.isr = gk20a_bus_isr,
|
.isr = gk20a_bus_isr,
|
||||||
@@ -738,7 +732,6 @@ int gp106_init_hal(struct gk20a *g)
|
|||||||
gops->mc = gp106_ops.mc;
|
gops->mc = gp106_ops.mc;
|
||||||
gops->debug = gp106_ops.debug;
|
gops->debug = gp106_ops.debug;
|
||||||
gops->dbg_session_ops = gp106_ops.dbg_session_ops;
|
gops->dbg_session_ops = gp106_ops.dbg_session_ops;
|
||||||
gops->cde = gp106_ops.cde;
|
|
||||||
gops->bus = gp106_ops.bus;
|
gops->bus = gp106_ops.bus;
|
||||||
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
||||||
gops->css = gp106_ops.css;
|
gops->css = gp106_ops.css;
|
||||||
|
|||||||
@@ -51,7 +51,6 @@
|
|||||||
#include "gp10b/fifo_gp10b.h"
|
#include "gp10b/fifo_gp10b.h"
|
||||||
#include "gp10b/gp10b_gating_reglist.h"
|
#include "gp10b/gp10b_gating_reglist.h"
|
||||||
#include "gp10b/regops_gp10b.h"
|
#include "gp10b/regops_gp10b.h"
|
||||||
#include "gp10b/cde_gp10b.h"
|
|
||||||
#include "gp10b/therm_gp10b.h"
|
#include "gp10b/therm_gp10b.h"
|
||||||
#include "gp10b/priv_ring_gp10b.h"
|
#include "gp10b/priv_ring_gp10b.h"
|
||||||
|
|
||||||
@@ -574,11 +573,6 @@ static const struct gpu_ops gp10b_ops = {
|
|||||||
.perfbuffer_enable = gk20a_perfbuf_enable_locked,
|
.perfbuffer_enable = gk20a_perfbuf_enable_locked,
|
||||||
.perfbuffer_disable = gk20a_perfbuf_disable_locked,
|
.perfbuffer_disable = gk20a_perfbuf_disable_locked,
|
||||||
},
|
},
|
||||||
.cde = {
|
|
||||||
.get_program_numbers = gp10b_cde_get_program_numbers,
|
|
||||||
.need_scatter_buffer = gp10b_need_scatter_buffer,
|
|
||||||
.populate_scatter_buffer = gp10b_populate_scatter_buffer,
|
|
||||||
},
|
|
||||||
.bus = {
|
.bus = {
|
||||||
.init_hw = gk20a_bus_init_hw,
|
.init_hw = gk20a_bus_init_hw,
|
||||||
.isr = gk20a_bus_isr,
|
.isr = gk20a_bus_isr,
|
||||||
@@ -628,7 +622,6 @@ int gp10b_init_hal(struct gk20a *g)
|
|||||||
gops->mc = gp10b_ops.mc;
|
gops->mc = gp10b_ops.mc;
|
||||||
gops->debug = gp10b_ops.debug;
|
gops->debug = gp10b_ops.debug;
|
||||||
gops->dbg_session_ops = gp10b_ops.dbg_session_ops;
|
gops->dbg_session_ops = gp10b_ops.dbg_session_ops;
|
||||||
gops->cde = gp10b_ops.cde;
|
|
||||||
gops->bus = gp10b_ops.bus;
|
gops->bus = gp10b_ops.bus;
|
||||||
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
||||||
gops->css = gp10b_ops.css;
|
gops->css = gp10b_ops.css;
|
||||||
|
|||||||
@@ -42,7 +42,6 @@
|
|||||||
#include "gm20b/pmu_gm20b.h"
|
#include "gm20b/pmu_gm20b.h"
|
||||||
#include "gm20b/fb_gm20b.h"
|
#include "gm20b/fb_gm20b.h"
|
||||||
#include "gm20b/bus_gm20b.h"
|
#include "gm20b/bus_gm20b.h"
|
||||||
#include "gm20b/cde_gm20b.h"
|
|
||||||
#include "gm20b/regops_gm20b.h"
|
#include "gm20b/regops_gm20b.h"
|
||||||
#include "gm20b/clk_gm20b.h"
|
#include "gm20b/clk_gm20b.h"
|
||||||
#include "gm20b/therm_gm20b.h"
|
#include "gm20b/therm_gm20b.h"
|
||||||
@@ -438,9 +437,6 @@ static const struct gpu_ops vgpu_gm20b_ops = {
|
|||||||
.perfbuffer_enable = vgpu_perfbuffer_enable,
|
.perfbuffer_enable = vgpu_perfbuffer_enable,
|
||||||
.perfbuffer_disable = vgpu_perfbuffer_disable,
|
.perfbuffer_disable = vgpu_perfbuffer_disable,
|
||||||
},
|
},
|
||||||
.cde = {
|
|
||||||
.get_program_numbers = gm20b_cde_get_program_numbers,
|
|
||||||
},
|
|
||||||
.bus = {
|
.bus = {
|
||||||
.init_hw = gk20a_bus_init_hw,
|
.init_hw = gk20a_bus_init_hw,
|
||||||
.isr = gk20a_bus_isr,
|
.isr = gk20a_bus_isr,
|
||||||
@@ -501,7 +497,6 @@ int vgpu_gm20b_init_hal(struct gk20a *g)
|
|||||||
gops->mc = vgpu_gm20b_ops.mc;
|
gops->mc = vgpu_gm20b_ops.mc;
|
||||||
gops->dbg_session_ops = vgpu_gm20b_ops.dbg_session_ops;
|
gops->dbg_session_ops = vgpu_gm20b_ops.dbg_session_ops;
|
||||||
gops->debug = vgpu_gm20b_ops.debug;
|
gops->debug = vgpu_gm20b_ops.debug;
|
||||||
gops->cde = vgpu_gm20b_ops.cde;
|
|
||||||
gops->bus = vgpu_gm20b_ops.bus;
|
gops->bus = vgpu_gm20b_ops.bus;
|
||||||
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
||||||
gops->css = vgpu_gm20b_ops.css;
|
gops->css = vgpu_gm20b_ops.css;
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
#include "gp10b/fifo_gp10b.h"
|
#include "gp10b/fifo_gp10b.h"
|
||||||
#include "gp10b/gp10b_gating_reglist.h"
|
#include "gp10b/gp10b_gating_reglist.h"
|
||||||
#include "gp10b/regops_gp10b.h"
|
#include "gp10b/regops_gp10b.h"
|
||||||
#include "gp10b/cde_gp10b.h"
|
|
||||||
#include "gp10b/therm_gp10b.h"
|
#include "gp10b/therm_gp10b.h"
|
||||||
#include "gp10b/priv_ring_gp10b.h"
|
#include "gp10b/priv_ring_gp10b.h"
|
||||||
|
|
||||||
@@ -478,11 +477,6 @@ static const struct gpu_ops vgpu_gp10b_ops = {
|
|||||||
.perfbuffer_enable = vgpu_perfbuffer_enable,
|
.perfbuffer_enable = vgpu_perfbuffer_enable,
|
||||||
.perfbuffer_disable = vgpu_perfbuffer_disable,
|
.perfbuffer_disable = vgpu_perfbuffer_disable,
|
||||||
},
|
},
|
||||||
.cde = {
|
|
||||||
.get_program_numbers = gp10b_cde_get_program_numbers,
|
|
||||||
.need_scatter_buffer = gp10b_need_scatter_buffer,
|
|
||||||
.populate_scatter_buffer = gp10b_populate_scatter_buffer,
|
|
||||||
},
|
|
||||||
.bus = {
|
.bus = {
|
||||||
.init_hw = gk20a_bus_init_hw,
|
.init_hw = gk20a_bus_init_hw,
|
||||||
.isr = gk20a_bus_isr,
|
.isr = gk20a_bus_isr,
|
||||||
@@ -533,7 +527,6 @@ int vgpu_gp10b_init_hal(struct gk20a *g)
|
|||||||
gops->mc = vgpu_gp10b_ops.mc;
|
gops->mc = vgpu_gp10b_ops.mc;
|
||||||
gops->debug = vgpu_gp10b_ops.debug;
|
gops->debug = vgpu_gp10b_ops.debug;
|
||||||
gops->dbg_session_ops = vgpu_gp10b_ops.dbg_session_ops;
|
gops->dbg_session_ops = vgpu_gp10b_ops.dbg_session_ops;
|
||||||
gops->cde = vgpu_gp10b_ops.cde;
|
|
||||||
gops->bus = vgpu_gp10b_ops.bus;
|
gops->bus = vgpu_gp10b_ops.bus;
|
||||||
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
#if defined(CONFIG_GK20A_CYCLE_STATS)
|
||||||
gops->css = vgpu_gp10b_ops.css;
|
gops->css = vgpu_gp10b_ops.css;
|
||||||
|
|||||||
Reference in New Issue
Block a user