lkml.org 
[lkml]   [2010]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCHv3 05/11] USB: gadget: f_fs: use usb_string_ids_n()
    Use usb_string_ids_n() function to simplify string ids
    registeration.

    Signed-off-by: Michal Nazarewicz <m.nazarewicz@samsung.com>
    Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
    ---
    drivers/usb/gadget/f_fs.c | 30 ++++++++++++------------------
    1 files changed, 12 insertions(+), 18 deletions(-)

    diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c
    index 3fe120f..97c2ac2 100644
    --- a/drivers/usb/gadget/f_fs.c
    +++ b/drivers/usb/gadget/f_fs.c
    @@ -1377,7 +1377,8 @@ static void ffs_data_reset(struct ffs_data *ffs)

    static int functionfs_bind(struct ffs_data *ffs, struct usb_composite_dev *cdev)
    {
    - unsigned i, count;
    + struct usb_gadget_strings **lang;
    + int first_id;

    ENTER();

    @@ -1385,7 +1386,9 @@ static int functionfs_bind(struct ffs_data *ffs, struct usb_composite_dev *cdev)
    || test_and_set_bit(FFS_FL_BOUND, &ffs->flags)))
    return -EBADFD;

    - ffs_data_get(ffs);
    + first_id = usb_string_ids_n(cdev, ffs->strings_count);
    + if (unlikely(first_id < 0))
    + return first_id;

    ffs->ep0req = usb_ep_alloc_request(cdev->gadget->ep0, GFP_KERNEL);
    if (unlikely(!ffs->ep0req))
    @@ -1393,25 +1396,16 @@ static int functionfs_bind(struct ffs_data *ffs, struct usb_composite_dev *cdev)
    ffs->ep0req->complete = ffs_ep0_complete;
    ffs->ep0req->context = ffs;

    - /* Get strings identifiers */
    - for (count = ffs->strings_count, i = 0; i < count; ++i) {
    - struct usb_gadget_strings **lang;
    -
    - int id = usb_string_id(cdev);
    - if (unlikely(id < 0)) {
    - usb_ep_free_request(cdev->gadget->ep0, ffs->ep0req);
    - ffs->ep0req = NULL;
    - return id;
    - }
    -
    - lang = ffs->stringtabs;
    - do {
    - (*lang)->strings[i].id = id;
    - ++lang;
    - } while (*lang);
    + lang = ffs->stringtabs;
    + for (lang = ffs->stringtabs; *lang; ++lang) {
    + struct usb_string *str = (*lang)->strings;
    + int id = first_id;
    + for (; str->s; ++id, ++str)
    + str->id = id;
    }

    ffs->gadget = cdev->gadget;
    + ffs_data_get(ffs);
    return 0;
    }

    --
    1.7.1


    \
     
     \ /
      Last update: 2010-06-02 14:47    [W:0.061 / U:31.532 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site