lkml.org 
[lkml]   [2021]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.10 12/23] usb: testusb: Fix for showing the connection speed
    Date
    From: Faizel K B <faizel.kb@dicortech.com>

    [ Upstream commit f81c08f897adafd2ed43f86f00207ff929f0b2eb ]

    testusb' application which uses 'usbtest' driver reports 'unknown speed'
    from the function 'find_testdev'. The variable 'entry->speed' was not
    updated from the application. The IOCTL mentioned in the FIXME comment can
    only report whether the connection is low speed or not. Speed is read using
    the IOCTL USBDEVFS_GET_SPEED which reports the proper speed grade. The
    call is implemented in the function 'handle_testdev' where the file
    descriptor was availble locally. Sample output is given below where 'high
    speed' is printed as the connected speed.

    sudo ./testusb -a
    high speed /dev/bus/usb/001/011 0
    /dev/bus/usb/001/011 test 0, 0.000015 secs
    /dev/bus/usb/001/011 test 1, 0.194208 secs
    /dev/bus/usb/001/011 test 2, 0.077289 secs
    /dev/bus/usb/001/011 test 3, 0.170604 secs
    /dev/bus/usb/001/011 test 4, 0.108335 secs
    /dev/bus/usb/001/011 test 5, 2.788076 secs
    /dev/bus/usb/001/011 test 6, 2.594610 secs
    /dev/bus/usb/001/011 test 7, 2.905459 secs
    /dev/bus/usb/001/011 test 8, 2.795193 secs
    /dev/bus/usb/001/011 test 9, 8.372651 secs
    /dev/bus/usb/001/011 test 10, 6.919731 secs
    /dev/bus/usb/001/011 test 11, 16.372687 secs
    /dev/bus/usb/001/011 test 12, 16.375233 secs
    /dev/bus/usb/001/011 test 13, 2.977457 secs
    /dev/bus/usb/001/011 test 14 --> 22 (Invalid argument)
    /dev/bus/usb/001/011 test 17, 0.148826 secs
    /dev/bus/usb/001/011 test 18, 0.068718 secs
    /dev/bus/usb/001/011 test 19, 0.125992 secs
    /dev/bus/usb/001/011 test 20, 0.127477 secs
    /dev/bus/usb/001/011 test 21 --> 22 (Invalid argument)
    /dev/bus/usb/001/011 test 24, 4.133763 secs
    /dev/bus/usb/001/011 test 27, 2.140066 secs
    /dev/bus/usb/001/011 test 28, 2.120713 secs
    /dev/bus/usb/001/011 test 29, 0.507762 secs

    Signed-off-by: Faizel K B <faizel.kb@dicortech.com>
    Link: https://lore.kernel.org/r/20210902114444.15106-1-faizel.kb@dicortech.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/usb/testusb.c | 14 ++++++++------
    1 file changed, 8 insertions(+), 6 deletions(-)

    diff --git a/tools/usb/testusb.c b/tools/usb/testusb.c
    index ee8208b2f946..69c3ead25313 100644
    --- a/tools/usb/testusb.c
    +++ b/tools/usb/testusb.c
    @@ -265,12 +265,6 @@ static int find_testdev(const char *name, const struct stat *sb, int flag)
    }

    entry->ifnum = ifnum;
    -
    - /* FIXME update USBDEVFS_CONNECTINFO so it tells about high speed etc */
    -
    - fprintf(stderr, "%s speed\t%s\t%u\n",
    - speed(entry->speed), entry->name, entry->ifnum);
    -
    entry->next = testdevs;
    testdevs = entry;
    return 0;
    @@ -299,6 +293,14 @@ static void *handle_testdev (void *arg)
    return 0;
    }

    + status = ioctl(fd, USBDEVFS_GET_SPEED, NULL);
    + if (status < 0)
    + fprintf(stderr, "USBDEVFS_GET_SPEED failed %d\n", status);
    + else
    + dev->speed = status;
    + fprintf(stderr, "%s speed\t%s\t%u\n",
    + speed(dev->speed), dev->name, dev->ifnum);
    +
    restart:
    for (i = 0; i < TEST_CASES; i++) {
    if (dev->test != -1 && dev->test != i)
    --
    2.33.0
    \
     
     \ /
      Last update: 2021-09-28 08:00    [W:4.044 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site