Messages in this thread | | | Date | Wed, 26 Nov 2014 19:05:38 -0800 | From | Greg KH <> | Subject | Re: [char-misc-next 2/3] mei: export fw status registers through sysfs |
| |
On Wed, Nov 19, 2014 at 05:01:39PM +0200, Tomas Winkler wrote: > The interface is for applications that monitor > the fw health. > > We use device_create_with_groups interface > to register attribute with the mei class device > > Signed-off-by :Tomas Winkler <tomas.winkler@intel.com> > > Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> > --- > drivers/misc/mei/main.c | 43 +++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 41 insertions(+), 2 deletions(-) > > diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c > index 5d6a15c3619a..3c019c0e60eb 100644 > --- a/drivers/misc/mei/main.c > +++ b/drivers/misc/mei/main.c > @@ -627,6 +627,44 @@ out: > return mask; > } > > +/** > + * fw_status_show - mei device attribute show method > + * > + * @device: device pointer > + * @attr: attribute pointer > + * @buf: char out buffer > + * > + * Return: number of the bytes printed into buf or error > + */ > +static ssize_t fw_status_show(struct device *device, > + struct device_attribute *attr, char *buf) > +{ > + struct mei_device *dev = dev_get_drvdata(device); > + struct mei_fw_status fw_status; > + int err, i; > + ssize_t cnt = 0; > + > + mutex_lock(&dev->device_lock); > + err = mei_fw_status(dev, &fw_status); > + mutex_unlock(&dev->device_lock); > + if (err) { > + dev_err(device, "read fw_status error = %d\n", err); > + return err; > + } > + > + for (i = 0; i < fw_status.count; i++) > + cnt += scnprintf(buf + cnt, PAGE_SIZE - cnt, "%08X\n", > + fw_status.status[i]);
That really looks like more than a "one value per file" thing.
Hint, if you are ever worrying about the size of the buffer for your sysfs file, you are doing something wrong.
thanks,
greg k-h
| |