From e24e7257b12d409d1ef0a24307b9525093845f1e Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 1 Sep 2014 19:01:14 -0700 Subject: [PATCH] greybus: greybus_string() --- drivers/staging/greybus/core.c | 20 ++++++++++++++++++-- drivers/staging/greybus/greybus.h | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/staging/greybus/core.c b/drivers/staging/greybus/core.c index 37ece6d..235a9c4 100644 --- a/drivers/staging/greybus/core.c +++ b/drivers/staging/greybus/core.c @@ -169,6 +169,22 @@ static void greybus_module_release(struct device *dev) } +const u8 *greybus_string(struct greybus_device *gdev, int id) +{ + int i; + struct gdev_string *string; + + if (!gdev) + return NULL; + + for (i = 0; i < gdev->num_strings; ++i) { + string = gdev->string[i]; + if (string->id == id) + return &string->string[0]; + } + return NULL; +} + static struct device_type greybus_module_type = { .name = "greybus_module", .release = greybus_module_release, @@ -242,7 +258,7 @@ static ssize_t module_vendor_string_show(struct device *dev, { struct greybus_device *gdev = to_greybus_device(dev); return sprintf(buf, "%s", - greybus_string(gdev->module_id.vendor_stringid)); + greybus_string(gdev, gdev->module_id.vendor_stringid)); } static DEVICE_ATTR_RO(module_vendor_string); @@ -252,7 +268,7 @@ static ssize_t module_product_string_show(struct device *dev, { struct greybus_device *gdev = to_greybus_device(dev); return sprintf(buf, "%s", - greybus_string(gdev->module_id.product_stringid)); + greybus_string(gdev, gdev->module_id.product_stringid)); } static DEVICE_ATTR_RO(module_product_string); diff --git a/drivers/staging/greybus/greybus.h b/drivers/staging/greybus/greybus.h index 1955fea..50bbf18 100644 --- a/drivers/staging/greybus/greybus.h +++ b/drivers/staging/greybus/greybus.h @@ -178,7 +178,7 @@ struct greybus_device *greybus_new_device(struct device *parent, int size); void greybus_remove_device(struct greybus_device *gdev); -const u8 *greybus_string(int id); +const u8 *greybus_string(struct greybus_device *gdev, int id); /* Internal functions to gb module, move to internal .h file eventually. */ -- 2.7.4