From: "Gabriel L. Somlo" <somlo@cmu.edu>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: Guenter Roeck <groeck-dsl@sbcglobal.net>,
khali@linux-fr.org, linux@roeck-us.net,
lm-sensors@lm-sensors.org, linux-kernel@vger.kernel.org,
agraf@suse.de, rene@exactcode.com
Subject: [lm-sensors] [PATCH v2] applesmc: add sysfs file to report OSK
Date: Mon, 10 Dec 2012 22:23:13 +0000 [thread overview]
Message-ID: <20121210222313.GF2097@hedwig.ini.cmu.edu> (raw)
In-Reply-To: <20121210195414.GA642@polaris.bitmath.org>
The AppleSMC contains two char[32] keys, OSK0 and OSK1, which are not
reported in the key count and index by default. These keys are used by
the OS X boot sequence, and normally don't matter when running Linux.
This patch creates a sysfs entry which reports the value of these keys
as an ASCII string, to help emulators (such as QEMU) load OS X when
running on genuine Apple hardware.
Signed-off-by: Gabriel L. Somlo <somlo@cmu.edu>
---
Henrik,
On Mon, Dec 10, 2012 at 09:19:51PM +0100, Alexander Graf wrote:
>
> On Mon, Dec 10, 2012 at 08:54:14PM +0100, Henrik Rydberg wrote:
> >
> > The OSK string seems constant accross machines, which renders the
> > patch rather pointless, no? And even if the OSK differs between a
> > couple of machines, the emulator could easily handle it gracefully.
>
> The point is that the return value of the OSK is a copyrighted string,
> we can not include in any other layer. The only way to make this
> legally savvy is to read the key from the host.
I believe this second version addresses your stylistic objections.
As Alex pointed out, hardcoding the OSK in any open-source project
might lead to legal/copyright related issues, whereas simply reporting
whatever the the hardware happens to contain should keep everyone safe.
As for struct applesmc_node_group info_group[]:
> > Unfortunately this is not a good place to put random things going
> > forward.
I figured "info_group" for the "least bad" place to put the OSK, given
that it's more or less "information from/about the SMC". If you could be
persuaded by the above arguments to accept the patch, and have a better
place in mind, I'd be happy to move it there...
Thanks again,
Gabriel
drivers/hwmon/applesmc.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
index b41baff..b37b271 100644
--- a/drivers/hwmon/applesmc.c
+++ b/drivers/hwmon/applesmc.c
@@ -1013,6 +1013,24 @@ static ssize_t applesmc_key_at_index_store(struct device *dev,
return count;
}
+static ssize_t applesmc_osk_show(struct device *dev,
+ struct device_attribute *attr, char *sysfsbuf)
+{
+ int ret;
+ char buf[65];
+
+ mutex_lock(&smcreg.mutex);
+ ret = read_smc(APPLESMC_READ_CMD, "OSK0", buf, 32);
+ if (!ret)
+ ret = read_smc(APPLESMC_READ_CMD, "OSK1", buf + 32, 32);
+ mutex_unlock(&smcreg.mutex);
+ if (ret)
+ return ret;
+
+ buf[64] = '\0';
+ return snprintf(sysfsbuf, PAGE_SIZE, "%s\n", buf);
+}
+
static struct led_classdev applesmc_backlight = {
.name = "smc::kbd_backlight",
.default_trigger = "nand-disk",
@@ -1027,6 +1045,7 @@ static struct applesmc_node_group info_group[] = {
{ "key_at_index_type", applesmc_key_at_index_type_show },
{ "key_at_index_data_length", applesmc_key_at_index_data_length_show },
{ "key_at_index_data", applesmc_key_at_index_read_show },
+ { "osk", applesmc_osk_show },
{ }
};
--
1.7.7.6
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
WARNING: multiple messages have this Message-ID (diff)
From: "Gabriel L. Somlo" <somlo@cmu.edu>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: Guenter Roeck <groeck-dsl@sbcglobal.net>,
khali@linux-fr.org, linux@roeck-us.net,
lm-sensors@lm-sensors.org, linux-kernel@vger.kernel.org,
agraf@suse.de, rene@exactcode.com
Subject: [PATCH v2] applesmc: add sysfs file to report OSK
Date: Mon, 10 Dec 2012 17:23:13 -0500 [thread overview]
Message-ID: <20121210222313.GF2097@hedwig.ini.cmu.edu> (raw)
In-Reply-To: <20121210195414.GA642@polaris.bitmath.org>
The AppleSMC contains two char[32] keys, OSK0 and OSK1, which are not
reported in the key count and index by default. These keys are used by
the OS X boot sequence, and normally don't matter when running Linux.
This patch creates a sysfs entry which reports the value of these keys
as an ASCII string, to help emulators (such as QEMU) load OS X when
running on genuine Apple hardware.
Signed-off-by: Gabriel L. Somlo <somlo@cmu.edu>
---
Henrik,
On Mon, Dec 10, 2012 at 09:19:51PM +0100, Alexander Graf wrote:
>
> On Mon, Dec 10, 2012 at 08:54:14PM +0100, Henrik Rydberg wrote:
> >
> > The OSK string seems constant accross machines, which renders the
> > patch rather pointless, no? And even if the OSK differs between a
> > couple of machines, the emulator could easily handle it gracefully.
>
> The point is that the return value of the OSK is a copyrighted string,
> we can not include in any other layer. The only way to make this
> legally savvy is to read the key from the host.
I believe this second version addresses your stylistic objections.
As Alex pointed out, hardcoding the OSK in any open-source project
might lead to legal/copyright related issues, whereas simply reporting
whatever the the hardware happens to contain should keep everyone safe.
As for struct applesmc_node_group info_group[]:
> > Unfortunately this is not a good place to put random things going
> > forward.
I figured "info_group" for the "least bad" place to put the OSK, given
that it's more or less "information from/about the SMC". If you could be
persuaded by the above arguments to accept the patch, and have a better
place in mind, I'd be happy to move it there...
Thanks again,
Gabriel
drivers/hwmon/applesmc.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
index b41baff..b37b271 100644
--- a/drivers/hwmon/applesmc.c
+++ b/drivers/hwmon/applesmc.c
@@ -1013,6 +1013,24 @@ static ssize_t applesmc_key_at_index_store(struct device *dev,
return count;
}
+static ssize_t applesmc_osk_show(struct device *dev,
+ struct device_attribute *attr, char *sysfsbuf)
+{
+ int ret;
+ char buf[65];
+
+ mutex_lock(&smcreg.mutex);
+ ret = read_smc(APPLESMC_READ_CMD, "OSK0", buf, 32);
+ if (!ret)
+ ret = read_smc(APPLESMC_READ_CMD, "OSK1", buf + 32, 32);
+ mutex_unlock(&smcreg.mutex);
+ if (ret)
+ return ret;
+
+ buf[64] = '\0';
+ return snprintf(sysfsbuf, PAGE_SIZE, "%s\n", buf);
+}
+
static struct led_classdev applesmc_backlight = {
.name = "smc::kbd_backlight",
.default_trigger = "nand-disk",
@@ -1027,6 +1045,7 @@ static struct applesmc_node_group info_group[] = {
{ "key_at_index_type", applesmc_key_at_index_type_show },
{ "key_at_index_data_length", applesmc_key_at_index_data_length_show },
{ "key_at_index_data", applesmc_key_at_index_read_show },
+ { "osk", applesmc_osk_show },
{ }
};
--
1.7.7.6
next prev parent reply other threads:[~2012-12-10 22:23 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-10 14:51 [lm-sensors] [PATCH] applesmc: add sysfs file to report OSK Gabriel L. Somlo
2012-12-10 14:51 ` Gabriel L. Somlo
2012-12-10 16:44 ` [lm-sensors] " Alexander Graf
2012-12-10 16:44 ` Alexander Graf
2012-12-10 19:09 ` [lm-sensors] " Guenter Roeck
2012-12-10 19:09 ` Guenter Roeck
2012-12-10 19:54 ` [lm-sensors] " Henrik Rydberg
2012-12-10 19:54 ` Henrik Rydberg
2012-12-10 20:19 ` [lm-sensors] " Alexander Graf
2012-12-10 20:19 ` Alexander Graf
2012-12-10 20:43 ` [lm-sensors] " Rene Rebe
2012-12-10 20:43 ` Rene Rebe
2012-12-10 21:24 ` [lm-sensors] " Alexander Graf
2012-12-10 21:24 ` Alexander Graf
2012-12-10 21:30 ` [lm-sensors] " Rene Rebe
2012-12-10 21:30 ` Rene Rebe
2012-12-10 22:23 ` Gabriel L. Somlo [this message]
2012-12-10 22:23 ` [PATCH v2] " Gabriel L. Somlo
2012-12-12 23:01 ` [lm-sensors] " Gabriel L. Somlo
2012-12-12 23:01 ` Gabriel L. Somlo
2012-12-13 7:20 ` [lm-sensors] " Henrik Rydberg
2012-12-13 7:20 ` Henrik Rydberg
2012-12-13 19:07 ` [lm-sensors] " Gabriel L. Somlo
2012-12-13 19:07 ` Gabriel L. Somlo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121210222313.GF2097@hedwig.ini.cmu.edu \
--to=somlo@cmu.edu \
--cc=agraf@suse.de \
--cc=groeck-dsl@sbcglobal.net \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=lm-sensors@lm-sensors.org \
--cc=rene@exactcode.com \
--cc=rydberg@euromail.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.