gpu: nvgpu: rearch mc reset and enable hals

Remove current mc hals
- mc.reset()
- mc.enable()
- mc.disable()
- mc.reset_mask()
- mc.reset_engine()
- mc.reset_engine_enable()

Add new mc hals
- mc.enable_units(g, units, enable)
  > enable/disable given unit(s)
- mc.enable_dev(g, dev, enable)
  > enable/disable engine represented by given device pointer
- mc.enable_devtype(g, devtype)
  > enable/disable all engines of given devtype

Move common mc intr functions to common/mc/mc_intr.c.
Add below common mc functions
- nvgpu_mc_reset_units(g, units)
  > reset given logical OR of nvgpu unit bitmap
- nvgpu_mc_reset_dev(g, dev)
  > reset given single engine via dev
  > if engine is graphics, reset gpcs for nvgpu_next
- nvgpu_mc_reset_devtype(g, devtype)
  > reset all engines of given devtype
  > if devtype is graphics, reset gpcs for nvgpu_next

Bug 200648985
Bug 3109773

Change-Id: Idc67a14a0a7cde83de44fbfbec13007fead3ed5c
Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2408523
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Vedashree Vidwans
2020-09-04 00:32:48 -07:00
committed by Alex Waterman
parent e6e7561084
commit e0dd79cd43
36 changed files with 557 additions and 417 deletions

View File

@@ -95,9 +95,14 @@ static void mock_void_return(struct gk20a *g)
/* noop */
}
static void mock_mc_reset(struct gk20a *g, u32 arg1)
static int mock_mc_enable_units(struct gk20a *g, u32 units, bool enable)
{
/* noop */
return 0;
}
static int mock_mc_enable_dev(struct gk20a *g, const struct nvgpu_device *dev,
bool enable)
{
return 0;
}
static void mock_intr_unit_config(struct gk20a *g, u32 unit, bool enable)
@@ -142,7 +147,8 @@ int test_ce_init_support(struct unit_module *m, struct gk20a *g, void *args)
g->fifo.num_engines = 0;
g->ops.ce.set_pce2lce_mapping = mock_void_return;
g->ops.ce.init_prod_values = mock_void_return;
g->ops.mc.reset = mock_mc_reset;
g->ops.mc.enable_units = mock_mc_enable_units;
g->ops.mc.enable_dev = mock_mc_enable_dev;
g->ops.mc.intr_nonstall_unit_config = mock_intr_unit_config;
g->ops.mc.intr_stall_unit_config = mock_intr_unit_config;