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 <amerilainen@nvidia.com>
Reviewed-on: http://git-master/r/396926
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
Arto Merilainen
2014-04-16 10:12:35 +03:00
committed by Dan Willemsen
parent d224ca2008
commit 6107c44ecd

View File

@@ -333,6 +333,8 @@ static DEVICE_ATTR(elpg_enable, ROOTRW, elpg_enable_read, elpg_enable_store);
void gk20a_remove_sysfs(struct device *dev) 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_elcg_enable);
device_remove_file(dev, &dev_attr_blcg_enable); device_remove_file(dev, &dev_attr_blcg_enable);
device_remove_file(dev, &dev_attr_slcg_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_load);
device_remove_file(dev, &dev_attr_railgate_delay); device_remove_file(dev, &dev_attr_railgate_delay);
device_remove_file(dev, &dev_attr_clockgate_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) void gk20a_create_sysfs(struct platform_device *dev)
{ {
struct gk20a *g = get_gk20a(dev);
int error = 0; int error = 0;
error |= device_create_file(&dev->dev, &dev_attr_elcg_enable); 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_railgate_delay);
error |= device_create_file(&dev->dev, &dev_attr_clockgate_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) if (error)
dev_err(&dev->dev, "Failed to create sysfs attributes!\n"); dev_err(&dev->dev, "Failed to create sysfs attributes!\n");
} }