USB: gadget: f_accessory: Add string for accessory's unique serial number
authorMike Lockwood <lockwood@android.com>
Mon, 14 Mar 2011 22:28:55 +0000 (18:28 -0400)
committerMike Lockwood <lockwood@android.com>
Mon, 14 Mar 2011 23:48:33 +0000 (19:48 -0400)
Signed-off-by: Mike Lockwood <lockwood@android.com>
drivers/usb/gadget/f_accessory.c
include/linux/usb/f_accessory.h

index baeae5976b66194bb660a63fd4833d711765fe9e..38918cdf6c5b6e0224a451342814222cb26a7791 100644 (file)
@@ -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));
                        }
                }
        }
index 977ad0a69c7e1fcacef69c5e457f2af2d48bad65..ebcc5f34f554dd7230f539103cf54fac55654045 100644 (file)
@@ -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 */