Re: [PATCH 4/4] firmware sysfs node
From: Henrik Rydberg
Date: Fri Aug 27 2010 - 08:09:38 EST
On 08/26/2010 06:54 AM, Rafi Rubin wrote:
> Signed-off-by: Rafi Rubin <rafi@xxxxxxxxxxxxxx>
> ---
> drivers/hid/hid-ntrig.c | 21 +++++++++++++++++++++
> 1 files changed, 21 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
> index ab0ca7f..e341e88 100644
> --- a/drivers/hid/hid-ntrig.c
> +++ b/drivers/hid/hid-ntrig.c
> @@ -375,6 +375,26 @@ static ssize_t set_deactivate_slack(struct device *dev,
> static DEVICE_ATTR(deactivate_slack, S_IWUSR | S_IRUGO, show_deactivate_slack,
> set_deactivate_slack);
>
> +static ssize_t show_firmware(struct device *dev,
> + struct device_attribute *attr,
> + char *buf)
> +{
> + struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> + struct ntrig_data *nd = hid_get_drvdata(hdev);
> +
> + if (!(nd->firmware_version[0] || nd->firmware_version[1] ||
> + nd->firmware_version[2] || nd->firmware_version[3]))
> + return sprintf(buf, "Firmware version unavailable");
If this sysfs node should really be added (see EVIO), it is probably better if
it returns the same format for all devices. If all numbers are zero, that is
understandable also by someone reading the node.
> +
> + ntrig_version_string(nd->firmware_version, buf);
> +
> + return sprintf(buf, "%s (%02x%02x %02x%02x)\n", buf,
> + nd->firmware_version[0], nd->firmware_version[1],
> + nd->firmware_version[2], nd->firmware_version[3]);
> +}
> +
> +static DEVICE_ATTR(firmware, S_IRUGO, show_firmware, NULL);
> +
> static struct attribute *sysfs_attrs[] = {
> &dev_attr_sensor_physical_width.attr,
> &dev_attr_sensor_physical_height.attr,
> @@ -386,6 +406,7 @@ static struct attribute *sysfs_attrs[] = {
> &dev_attr_activation_width.attr,
> &dev_attr_activation_height.attr,
> &dev_attr_deactivate_slack.attr,
> + &dev_attr_firmware.attr,
> NULL
> };
>
Henrik
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/