diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 4e06e139b..864d62290 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c @@ -929,7 +929,7 @@ static struct of_device_id tegra_gk20a_of_match[] = { { .compatible = "nvidia,tegra124-gk20a", .data = &gk20a_tegra_platform }, { .compatible = "nvidia,tegra210-gm20b", - .data = &gk20a_tegra_platform }, + .data = &gm20b_tegra_platform }, #endif { .compatible = "nvidia,generic-gk20a", .data = &gk20a_generic_platform }, diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h index 90333eef0..d9d86b63a 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h @@ -121,6 +121,7 @@ static inline struct gk20a_platform *gk20a_get_platform( extern struct gk20a_platform gk20a_generic_platform; #ifdef CONFIG_TEGRA_GK20A extern struct gk20a_platform gk20a_tegra_platform; +extern struct gk20a_platform gm20b_tegra_platform; #endif static inline bool gk20a_platform_has_syncpoints(struct platform_device *dev) diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c index ea49a1245..05aec1a7d 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c @@ -519,6 +519,31 @@ struct gk20a_platform gk20a_tegra_platform = { .dump_platform_dependencies = gk20a_tegra_debug_dump, }; +struct gk20a_platform gm20b_tegra_platform = { + .has_syncpoints = true, + + /* power management configuration */ + .railgate_delay = 500, + .clockgate_delay = 50, + + .probe = gk20a_tegra_probe, + .late_probe = gk20a_tegra_late_probe, + + /* power management callbacks */ + .suspend = gk20a_tegra_suspend, + + /* frequency scaling configuration */ + .prescale = gk20a_tegra_prescale, + .postscale = gk20a_tegra_postscale, + .devfreq_governor = "nvhost_podgov", + .qos_id = PM_QOS_GPU_FREQ_MIN, + + .channel_busy = gk20a_tegra_channel_busy, + .channel_idle = gk20a_tegra_channel_idle, + .secure_alloc = gk20a_tegra_secure_alloc, + .dump_platform_dependencies = gk20a_tegra_debug_dump, +}; + struct platform_device tegra_gk20a_device = { .name = "gk20a", .resource = gk20a_tegra_resources,