diff --git a/drivers/gpu/nvgpu/common/pmu/pmu_perfmon.c b/drivers/gpu/nvgpu/common/pmu/pmu_perfmon.c index e28e53a08..9f236aa88 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu_perfmon.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu_perfmon.c @@ -30,6 +30,7 @@ static u8 get_perfmon_id(struct nvgpu_pmu *pmu) switch (ver) { case GK20A_GPUID_GK20A: case GK20A_GPUID_GM20B: + case GK20A_GPUID_GM20B_B: unit_id = PMU_UNIT_PERFMON; break; case NVGPU_GPUID_GP10B: diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 64716ac48..ffce1c5e4 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -1448,6 +1448,8 @@ int gk20a_wait_for_idle(struct device *dev); GK20A_GPUID(NVGPU_GPU_ARCH_GM200, NVGPU_GPU_IMPL_GM20B) #define NVGPU_GPUID_GP10B \ GK20A_GPUID(NVGPU_GPU_ARCH_GP100, NVGPU_GPU_IMPL_GP10B) +#define GK20A_GPUID_GM20B_B \ + GK20A_GPUID(NVGPU_GPU_ARCH_GM200, NVGPU_GPU_IMPL_GM20B_B) #define NVGPU_GPUID_GP104 \ GK20A_GPUID(NVGPU_GPU_ARCH_GP100, NVGPU_GPU_IMPL_GP104) #define NVGPU_GPUID_GP106 \ diff --git a/drivers/gpu/nvgpu/gk20a/hal.c b/drivers/gpu/nvgpu/gk20a/hal.c index ce99aa7a0..8fadc199a 100644 --- a/drivers/gpu/nvgpu/gk20a/hal.c +++ b/drivers/gpu/nvgpu/gk20a/hal.c @@ -35,6 +35,7 @@ int gpu_init_hal(struct gk20a *g) gk20a_init_hal(g); break; case GK20A_GPUID_GM20B: + case GK20A_GPUID_GM20B_B: gk20a_dbg_info("gm20b detected"); if (gm20b_init_hal(g)) return -ENODEV; diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/vgpu/vgpu.c index 559ba4ea9..1a6dbb358 100644 --- a/drivers/gpu/nvgpu/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/vgpu.c @@ -445,6 +445,7 @@ static int vgpu_init_hal(struct gk20a *g) err = vgpu_gk20a_init_hal(g); break; case GK20A_GPUID_GM20B: + case GK20A_GPUID_GM20B_B: gk20a_dbg_info("gm20b detected"); err = vgpu_gm20b_init_hal(g); break; diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h index 065aaece4..8b29a3aeb 100644 --- a/include/uapi/linux/nvgpu.h +++ b/include/uapi/linux/nvgpu.h @@ -81,17 +81,18 @@ struct nvgpu_gpu_zbc_query_table_args { /* This contains the minimal set by which the userspace can determine all the properties of the GPU */ -#define NVGPU_GPU_ARCH_GK100 0x000000E0 -#define NVGPU_GPU_ARCH_GM200 0x00000120 -#define NVGPU_GPU_ARCH_GP100 0x00000130 +#define NVGPU_GPU_ARCH_GK100 0x000000E0 +#define NVGPU_GPU_ARCH_GM200 0x00000120 +#define NVGPU_GPU_ARCH_GP100 0x00000130 -#define NVGPU_GPU_IMPL_GK20A 0x0000000A -#define NVGPU_GPU_IMPL_GM204 0x00000004 -#define NVGPU_GPU_IMPL_GM206 0x00000006 -#define NVGPU_GPU_IMPL_GM20B 0x0000000B -#define NVGPU_GPU_IMPL_GP104 0x00000004 -#define NVGPU_GPU_IMPL_GP106 0x00000006 -#define NVGPU_GPU_IMPL_GP10B 0x0000000B +#define NVGPU_GPU_IMPL_GK20A 0x0000000A +#define NVGPU_GPU_IMPL_GM204 0x00000004 +#define NVGPU_GPU_IMPL_GM206 0x00000006 +#define NVGPU_GPU_IMPL_GM20B 0x0000000B +#define NVGPU_GPU_IMPL_GM20B_B 0x0000000E +#define NVGPU_GPU_IMPL_GP104 0x00000004 +#define NVGPU_GPU_IMPL_GP106 0x00000006 +#define NVGPU_GPU_IMPL_GP10B 0x0000000B #ifdef CONFIG_ARCH_TEGRA_18x_SOC #include