From 99b7fdff26bdaa2dbdecd45db18834f9d7447632 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Mon, 14 Mar 2011 18:28:55 -0400 Subject: [PATCH] USB: gadget: f_accessory: Add string for accessory's unique serial number Signed-off-by: Mike Lockwood --- drivers/usb/gadget/f_accessory.c | 8 ++++++++ include/linux/usb/f_accessory.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/drivers/usb/gadget/f_accessory.c b/drivers/usb/gadget/f_accessory.c index baeae5976b66..38918cdf6c5b 100644 --- a/drivers/usb/gadget/f_accessory.c +++ b/drivers/usb/gadget/f_accessory.c @@ -71,6 +71,7 @@ struct acc_dev { char description[ACC_STRING_SIZE]; char version[ACC_STRING_SIZE]; char uri[ACC_STRING_SIZE]; + char serial[ACC_STRING_SIZE]; /* for acc_complete_set_string */ int string_index; @@ -273,6 +274,9 @@ static void acc_complete_set_string(struct usb_ep *ep, struct usb_request *req) case ACCESSORY_STRING_URI: string_dest = dev->uri; break; + case ACCESSORY_STRING_SERIAL: + string_dest = dev->serial; + break; } if (string_dest) { unsigned long flags; @@ -505,6 +509,9 @@ static long acc_ioctl(struct file *fp, unsigned code, unsigned long value) case ACCESSORY_GET_STRING_URI: src = dev->uri; break; + case ACCESSORY_GET_STRING_SERIAL: + src = dev->serial; + break; } if (!src) return -EINVAL; @@ -658,6 +665,7 @@ static int acc_function_setup(struct usb_function *f, memset(dev->description, 0, sizeof(dev->description)); memset(dev->version, 0, sizeof(dev->version)); memset(dev->uri, 0, sizeof(dev->uri)); + memset(dev->serial, 0, sizeof(dev->serial)); } } } diff --git a/include/linux/usb/f_accessory.h b/include/linux/usb/f_accessory.h index 977ad0a69c7e..ebcc5f34f554 100644 --- a/include/linux/usb/f_accessory.h +++ b/include/linux/usb/f_accessory.h @@ -34,6 +34,7 @@ #define ACCESSORY_STRING_DESCRIPTION 2 #define ACCESSORY_STRING_VERSION 3 #define ACCESSORY_STRING_URI 4 +#define ACCESSORY_STRING_SERIAL 5 /* Control request for retrieving device's protocol version (currently 1) * @@ -75,5 +76,6 @@ #define ACCESSORY_GET_STRING_DESCRIPTION _IOW('M', 3, char[256]) #define ACCESSORY_GET_STRING_VERSION _IOW('M', 4, char[256]) #define ACCESSORY_GET_STRING_URI _IOW('M', 5, char[256]) +#define ACCESSORY_GET_STRING_SERIAL _IOW('M', 6, char[256]) #endif /* __LINUX_USB_F_ACCESSORY_H */ -- 2.34.1