From f66cb9093d3ec74f18cc52ee44de88c9501e2cca Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Tue, 15 Apr 2014 10:54:45 +0300 Subject: gpu: nvgpu: Separate gm20b configuration Separate gm20b platform data from gk20a data. Change-Id: Ie90ebc9e06ba94dfe852dfe07c163cd00fd90a9c Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/396376 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Arto Merilainen Reviewed-by: Bo Yan --- drivers/gpu/nvgpu/gk20a/gk20a.c | 2 +- drivers/gpu/nvgpu/gk20a/platform_gk20a.h | 1 + drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 4e06e139..864d6229 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 90333eef..d9d86b63 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 ea49a124..05aec1a7 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, -- cgit v1.2.2