From 6107c44ecd16dce703e653bc6a10f950441b76d4 Mon Sep 17 00:00:00 2001 From: Arto Merilainen Date: Wed, 16 Apr 2014 10:12:35 +0300 Subject: gpu: nvgpu: Create sysfs symlinks gk20a is going to be moved under platform bus, however, the sysfs interface should remain stable over the transition period. This patch adds a symlink to keep current interfaces stable. Bug 1311528 Bug 1434573 Change-Id: I951000f4b25285ff96e93eb726342d5b76cc84f1 Signed-off-by: Arto Merilainen Reviewed-on: http://git-master/r/396926 Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index f7e0a2b6..9ebc5bab 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c @@ -333,6 +333,8 @@ static DEVICE_ATTR(elpg_enable, ROOTRW, elpg_enable_read, elpg_enable_store); void gk20a_remove_sysfs(struct device *dev) { + struct gk20a *g = get_gk20a(to_platform_device(dev)); + device_remove_file(dev, &dev_attr_elcg_enable); device_remove_file(dev, &dev_attr_blcg_enable); device_remove_file(dev, &dev_attr_slcg_enable); @@ -343,10 +345,14 @@ void gk20a_remove_sysfs(struct device *dev) device_remove_file(dev, &dev_attr_load); device_remove_file(dev, &dev_attr_railgate_delay); device_remove_file(dev, &dev_attr_clockgate_delay); + + if (g->host1x_dev && (dev->parent != &g->host1x_dev->dev)) + sysfs_remove_link(&dev->kobj, dev_name(dev)); } void gk20a_create_sysfs(struct platform_device *dev) { + struct gk20a *g = get_gk20a(dev); int error = 0; error |= device_create_file(&dev->dev, &dev_attr_elcg_enable); @@ -360,6 +366,12 @@ void gk20a_create_sysfs(struct platform_device *dev) error |= device_create_file(&dev->dev, &dev_attr_railgate_delay); error |= device_create_file(&dev->dev, &dev_attr_clockgate_delay); + if (g->host1x_dev && (dev->dev.parent != &g->host1x_dev->dev)) + error |= sysfs_create_link(&g->host1x_dev->dev.kobj, + &dev->dev.kobj, + dev_name(&dev->dev)); + if (error) dev_err(&dev->dev, "Failed to create sysfs attributes!\n"); + } -- cgit v1.2.2