mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: add separate unit for gr/ctxsw_prog
Add separate new unit gr/ctxsw_prog that provides interface to access h/w header files hw_ctxsw_prog_*.h Add below chip specific files that access above h/w unit and provide interface through g->ops.gr.ctxsw_prog.*() HAL for rest of the units common/gr/ctxsw_prog/ctxsw_prog_gm20b.c common/gr/ctxsw_prog/ctxsw_prog_gp10b.c common/gr/ctxsw_prog/ctxsw_prog_gv11b.c Remove all the h/w header includes from rest of the units and code. Remove direct calls to h/w headers ctxsw_prog_*() and use HALs g->ops.gr.ctxsw_prog.*() instead In gr_gk20a_find_priv_offset_in_ext_buffer(), h/w header ctxsw_prog_extended_num_smpc_quadrants_v() is only defined on gk20a And since we don't support gk20a remove corresponding code Add missing h/w header ctxsw_prog_main_image_pm_mode_ctxsw_f() for some chips Add new h/w header ctxsw_prog_gpccs_header_stride_v() Jira NVGPU-1526 Change-Id: I170f5c0da26ada833f94f5479ff299c0db56a732 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1966111 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
8ef20036c7
commit
6777bd5ed2
@@ -55,23 +55,24 @@ static int gk20a_fecs_trace_debugfs_ring_seq_show(
|
||||
struct gk20a_fecs_trace_record *r =
|
||||
gk20a_fecs_trace_get_record(g, *pos);
|
||||
int i;
|
||||
const u32 invalid_tag = gk20a_fecs_trace_record_ts_tag_invalid_ts_v();
|
||||
const u32 invalid_tag =
|
||||
g->ops.gr.ctxsw_prog.hw_get_ts_tag_invalid_timestamp();
|
||||
u32 tag;
|
||||
u64 timestamp;
|
||||
|
||||
seq_printf(s, "record #%lld (%p)\n", *pos, r);
|
||||
seq_printf(s, "\tmagic_lo=%08x\n", r->magic_lo);
|
||||
seq_printf(s, "\tmagic_hi=%08x\n", r->magic_hi);
|
||||
if (gk20a_fecs_trace_is_valid_record(r)) {
|
||||
if (gk20a_fecs_trace_is_valid_record(g, r)) {
|
||||
seq_printf(s, "\tcontext_ptr=%08x\n", r->context_ptr);
|
||||
seq_printf(s, "\tcontext_id=%08x\n", r->context_id);
|
||||
seq_printf(s, "\tnew_context_ptr=%08x\n", r->new_context_ptr);
|
||||
seq_printf(s, "\tnew_context_id=%08x\n", r->new_context_id);
|
||||
for (i = 0; i < gk20a_fecs_trace_num_ts(); i++) {
|
||||
tag = gk20a_fecs_trace_record_ts_tag_v(r->ts[i]);
|
||||
for (i = 0; i < gk20a_fecs_trace_num_ts(g); i++) {
|
||||
tag = g->ops.gr.ctxsw_prog.hw_get_ts_tag(r->ts[i]);
|
||||
if (tag == invalid_tag)
|
||||
continue;
|
||||
timestamp = gk20a_fecs_trace_record_ts_timestamp_v(r->ts[i]);
|
||||
timestamp = g->ops.gr.ctxsw_prog.hw_record_ts_timestamp(r->ts[i]);
|
||||
timestamp <<= GK20A_FECS_TRACE_PTIMER_SHIFT;
|
||||
seq_printf(s, "\ttag=%02x timestamp=%012llx\n", tag, timestamp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user