lkml.org 
[lkml]   [2013]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[38/83] USB: revert periodic scheduling bugfix
    3.2.47-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Alan Stern <stern@rowland.harvard.edu>

    commit fdc03438f53a00294ed9939eb3a1f6db6f3d8963 upstream.

    This patch reverts commit 3e619d04159be54b3daa0b7036b0ce9e067f4b5d
    (USB: EHCI: fix bug in scheduling periodic split transfers). The
    commit was valid -- it fixed a real bug -- but the periodic scheduler
    in ehci-hcd is in such bad shape (especially the part that handles
    split transactions) that fixing one bug is very likely to cause
    another to surface. That's what happened in this case; the result was
    choppy and noisy playback on certain 24-bit audio devices.

    The only real fix will be to rewrite this entire section of code. My
    next project...

    This fixes https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110.

    Thanks to Tim Richardson for extra testing and feedback, and to Joseph
    Salisbury and Tyson Tan for tracking down the original source of the
    problem.

    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    CC: Joseph Salisbury <joseph.salisbury@canonical.com>
    CC: Tim Richardson <tim@tim-richardson.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/usb/host/ehci-sched.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/usb/host/ehci-sched.c
    +++ b/drivers/usb/host/ehci-sched.c
    @@ -236,7 +236,7 @@ static inline unsigned char tt_start_ufr
    }

    static const unsigned char
    -max_tt_usecs[] = { 125, 125, 125, 125, 125, 125, 125, 25 };
    +max_tt_usecs[] = { 125, 125, 125, 125, 125, 125, 30, 0 };

    /* carryover low/fullspeed bandwidth that crosses uframe boundries */
    static inline void carryover_tt_bandwidth(unsigned short tt_usecs[8])


    \
     
     \ /
      Last update: 2013-06-17 01:21    [W:4.134 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site