1
0
Fork 0

greybus: interface: clear upper 16-bits of version_id and product_id

Current userspace looks through the sysfs interface entries for
matching vendor_id and product_id any time an interface is opened
by module developers.  The upper 16-bits of ES3 vendor_id and
product_id contain a reverse mask of the lower 16-bits.  This
additional information is never used and should be removed so
that every consumer of these sysfs entries doesn't have to perform
the same bit clearing logic.

Signed-off-by: Michael Scott <michael.scott@linaro.org>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
hifive-unleashed-5.1
Michael Scott 2016-02-08 17:08:46 -08:00 committed by Greg Kroah-Hartman
parent f6d6f5bd29
commit d5a265648a
1 changed files with 23 additions and 2 deletions

View File

@ -23,12 +23,33 @@ static DEVICE_ATTR_RO(field)
gb_interface_attr(ddbl1_manufacturer_id, "0x%08x");
gb_interface_attr(ddbl1_product_id, "0x%08x");
gb_interface_attr(interface_id, "%u");
gb_interface_attr(vendor_id, "0x%08x");
gb_interface_attr(product_id, "0x%08x");
gb_interface_attr(vendor_string, "%s");
gb_interface_attr(product_string, "%s");
gb_interface_attr(serial_number, "0x%016llx");
static ssize_t vendor_id_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{
struct gb_interface *intf = to_gb_interface(dev);
/* clear the upper 16-bits to keep userspace "simple" */
return scnprintf(buf, PAGE_SIZE, "0x%04x\n",
(0x0000FFFF & intf->vendor_id));
}
static DEVICE_ATTR_RO(vendor_id);
static ssize_t product_id_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct gb_interface *intf = to_gb_interface(dev);
/* clear the upper 16-bits to keep userspace "simple" */
return scnprintf(buf, PAGE_SIZE, "0x%04x\n",
(0x0000FFFF & intf->product_id));
}
static DEVICE_ATTR_RO(product_id);
static ssize_t version_show(struct device *dev, struct device_attribute *attr,
char *buf)
{