diff options
author | Bjørn Mork <bjorn@mork.no> | 2012-05-13 10:35:00 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-05-14 16:30:40 (GMT) |
commit | ef206f3f01d8cc0d363cfce7dc9ca11db429faa3 (patch) | |
tree | f5767b00bf7c34ea96a1450e27b2a8dda68760d9 /drivers/usb/core | |
parent | e6bbcef0211ed75db1ca3017551a584aed4e00be (diff) | |
download | linux-ef206f3f01d8cc0d363cfce7dc9ca11db429faa3.tar.xz |
USB: add read support to usb-serial/../new_id
Keep the usb-serial support for dynamic IDs in sync with the usb
support. This enables readout of dynamic device IDs for
usb-serial drivers. Common code is exported from the usb core
system and reused by the usb-serial bus driver.
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/driver.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index 69919b2..f6f81c8 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -79,13 +79,12 @@ ssize_t usb_store_new_id(struct usb_dynids *dynids, } EXPORT_SYMBOL_GPL(usb_store_new_id); -static ssize_t show_dynids(struct device_driver *driver, char *buf) +ssize_t usb_show_dynids(struct usb_dynids *dynids, char *buf) { struct usb_dynid *dynid; - struct usb_driver *usb_drv = to_usb_driver(driver); size_t count = 0; - list_for_each_entry(dynid, &usb_drv->dynids.list, node) + list_for_each_entry(dynid, &dynids->list, node) if (dynid->id.bInterfaceClass != 0) count += scnprintf(&buf[count], PAGE_SIZE - count, "%04x %04x %02x\n", dynid->id.idVendor, dynid->id.idProduct, @@ -95,6 +94,14 @@ static ssize_t show_dynids(struct device_driver *driver, char *buf) dynid->id.idVendor, dynid->id.idProduct); return count; } +EXPORT_SYMBOL_GPL(usb_show_dynids); + +static ssize_t show_dynids(struct device_driver *driver, char *buf) +{ + struct usb_driver *usb_drv = to_usb_driver(driver); + + return usb_show_dynids(&usb_drv->dynids, buf); +} static ssize_t store_new_id(struct device_driver *driver, const char *buf, size_t count) |