From 86637dcef9a978d21bae9978ce3f6863a45fc973 Mon Sep 17 00:00:00 2001 From: Sumit Singh Date: Sun, 4 Jan 2015 13:30:33 +0530 Subject: gpu: nvgpu: Add DT support for gpu power-domain First, defining a new structure to support gk20a power domain. Then making necessary modifications to add so as to add DT support for gpu power-domain. bug 200070810 Change-Id: I29e1c24b181e14743d3969103abfd1882d171f07 Signed-off-by: Sumit Singh Reviewed-on: http://git-master/r/668973 Reviewed-by: Bharat Nihalani --- drivers/gpu/nvgpu/vgpu/vgpu.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'drivers/gpu/nvgpu/vgpu') diff --git a/drivers/gpu/nvgpu/vgpu/vgpu.c b/drivers/gpu/nvgpu/vgpu/vgpu.c index d3d793d1..c998b10b 100644 --- a/drivers/gpu/nvgpu/vgpu/vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/vgpu.c @@ -311,7 +311,17 @@ static int vgpu_pm_initialise_domain(struct platform_device *pdev) { struct gk20a_platform *platform = platform_get_drvdata(pdev); struct dev_power_governor *pm_domain_gov = NULL; - struct generic_pm_domain *domain = &platform->g->pd; + struct gk20a_domain_data *vgpu_pd_data; + struct generic_pm_domain *domain; + + vgpu_pd_data = (struct gk20a_domain_data *)kzalloc + (sizeof(struct gk20a_domain_data), GFP_KERNEL); + + if (!vgpu_pd_data) + return -ENOMEM; + + domain = &vgpu_pd_data->gpd; + vgpu_pd_data->gk20a = platform->g; domain->name = "gpu"; @@ -432,11 +442,16 @@ int vgpu_probe(struct platform_device *dev) int vgpu_remove(struct platform_device *dev) { struct gk20a *g = get_gk20a(dev); + struct gk20a_domain_data *vgpu_gpd; gk20a_dbg_fn(""); if (g->remove_support) g->remove_support(dev); + vgpu_gpd = container_of(&g, struct gk20a_domain_data, gk20a); + vgpu_gpd->gk20a = NULL; + kfree(vgpu_gpd); + vgpu_comm_deinit(); gk20a_user_deinit(dev); gk20a_get_platform(dev)->g = NULL; -- cgit v1.2.2