aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/dock.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 54a697f9aa18..811b1aac65d5 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -667,6 +667,23 @@ static ssize_t write_undock(struct device *dev, struct device_attribute *attr,
667} 667}
668DEVICE_ATTR(undock, S_IWUSR, NULL, write_undock); 668DEVICE_ATTR(undock, S_IWUSR, NULL, write_undock);
669 669
670/*
671 * show_dock_uid - read method for "uid" file in sysfs
672 */
673static ssize_t show_dock_uid(struct device *dev,
674 struct device_attribute *attr, char *buf)
675{
676 unsigned long lbuf;
677 acpi_status status = acpi_evaluate_integer(dock_station->handle, "_UID", 0, &lbuf);
678 if(ACPI_FAILURE(status)) {
679 return 0;
680 }
681 return snprintf(buf, PAGE_SIZE, "%lx\n", lbuf);
682}
683DEVICE_ATTR(uid, S_IRUGO, show_dock_uid, NULL);
684
685
686
670/** 687/**
671 * dock_add - add a new dock station 688 * dock_add - add a new dock station
672 * @handle: the dock station handle 689 * @handle: the dock station handle
@@ -715,6 +732,13 @@ static int dock_add(acpi_handle handle)
715 kfree(dock_station); 732 kfree(dock_station);
716 return ret; 733 return ret;
717 } 734 }
735 ret = device_create_file(&dock_device.dev, &dev_attr_uid);
736 if (ret) {
737 printk("Error %d adding sysfs file\n", ret);
738 platform_device_unregister(&dock_device);
739 kfree(dock_station);
740 return ret;
741 }
718 742
719 /* Find dependent devices */ 743 /* Find dependent devices */
720 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, 744 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,