1. 02 Sep, 2014 2 commits
    • Daniel Mack's avatar
      usb: musb: cppi41: fire hrtimer according to programmed channel length · bd78518b
      Daniel Mack authored
      commit 50aea6fc upstream.
      
      The musb/cppi41 code installs a hrtimer to work around DMA completion
      interrupts that have fired too early on AM335x hardware. This timer
      is currently programmed to first fire 140 microseconds after the DMA
      completion callback. According to the commit which introduced it
      (a655f481, "usb: musb: musb_cppi41: handle pre-mature TX complete
      interrupt"), that value is is considered a 'rule of thumb' that worked
      well with the test case described in the commit log.
      
      Test show, however, that for USB audio devices and much smaller packet
      sizes, the timer has to fire earlier in order to correctly handle the audio
      stream. The original test case had output transfer sizes of 1514 bytes, and
      a delay of 140 microseconds. For audio devices with 24 bytes channel size, 3
      microseconds seem to work well.
      
      Hence, let's assume that the time it takes to clear the bit correlates with
      the number of bytes transferred. The referenced commit log mentions such a
      suspicion as well. Let the timer fire in cppi41_channel->total_len/10
      microseconds to correctly handle both cases.
      
      Also, shorten the interval in which the timer fires again in case of
      a non-empty early_tx list.
      
      With these changes in place, both FS and HS audio devices appear to work
      well on AM335x hardware.
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Reported-by: default avatarSebastian Reimers <sebastian.reimers@googlemail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      bd78518b
    • Kent Overstreet's avatar
      bcache: Minor journal fix · b4839e6c
      Kent Overstreet authored
      commit b3fa7e77 upstream.
      
      The real fix is where we check the bytes we need against how much is
      remaining - we also need to check for a journal entry bigger than our
      buffer, we'll never write those and it would be bad if we tried to read
      one.
      
      Also improve the diagnostic messages.
      Signed-off-by: default avatarKent Overstreet <kmo@daterainc.com>
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      b4839e6c
  2. 26 Aug, 2014 38 commits