forked from openbmc/linux
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ACPI: Provide /sys/kernel/debug/ec/...
This patch provides the same information through debugfs, which previously was provided through /proc/acpi/embedded_controller/*/info This is the gpe the EC is connected to and whether the global lock gets used. The io ports used are added to /proc/ioports in another patch. Beside the fact that /proc/acpi is deprecated for quite some time, this info is not needed for applications and thus can be moved to debugfs instead of a public interface like /sys. Signed-off-by: Thomas Renninger <trenn@suse.de> CC: Alexey Starikovskiy <astarikovskiy@suse.de> CC: Len Brown <lenb@kernel.org> CC: linux-kernel@vger.kernel.org CC: linux-acpi@vger.kernel.org CC: Bjorn Helgaas <bjorn.helgaas@hp.com> CC: platform-driver-x86@vger.kernel.org Signed-off-by: Matthew Garrett <mjg@redhat.com>
- Loading branch information
Showing
5 changed files
with
100 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
#include <linux/kernel.h> | ||
#include <linux/acpi.h> | ||
#include <linux/debugfs.h> | ||
#include "internal.h" | ||
|
||
MODULE_AUTHOR("Thomas Renninger <trenn@suse.de>"); | ||
MODULE_DESCRIPTION("ACPI EC sysfs access driver"); | ||
MODULE_LICENSE("GPL"); | ||
|
||
struct sysdev_class acpi_ec_sysdev_class = { | ||
.name = "ec", | ||
}; | ||
|
||
static struct dentry *acpi_ec_debugfs_dir; | ||
|
||
int acpi_ec_add_debugfs(struct acpi_ec *ec, unsigned int ec_device_count) | ||
{ | ||
struct dentry *dev_dir; | ||
char name[64]; | ||
if (ec_device_count == 0) { | ||
acpi_ec_debugfs_dir = debugfs_create_dir("ec", NULL); | ||
if (!acpi_ec_debugfs_dir) | ||
return -ENOMEM; | ||
} | ||
|
||
sprintf(name, "ec%u", ec_device_count); | ||
dev_dir = debugfs_create_dir(name, acpi_ec_debugfs_dir); | ||
if (!dev_dir) { | ||
if (ec_device_count == 0) | ||
debugfs_remove_recursive(acpi_ec_debugfs_dir); | ||
/* TBD: Proper cleanup for multiple ECs */ | ||
return -ENOMEM; | ||
} | ||
|
||
debugfs_create_x32("gpe", 0444, dev_dir, (u32 *)&first_ec->gpe); | ||
debugfs_create_bool("use_global_lock", 0444, dev_dir, | ||
(u32 *)&first_ec->global_lock); | ||
return 0; | ||
} | ||
|
||
static int __init acpi_ec_sys_init(void) | ||
{ | ||
int err = 0; | ||
if (first_ec) | ||
err = acpi_ec_add_debugfs(first_ec, 0); | ||
else | ||
err = -ENODEV; | ||
return err; | ||
} | ||
|
||
static void __exit acpi_ec_sys_exit(void) | ||
{ | ||
debugfs_remove_recursive(acpi_ec_debugfs_dir); | ||
} | ||
|
||
module_init(acpi_ec_sys_init); | ||
module_exit(acpi_ec_sys_exit); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters