• Mauro Carvalho Chehab's avatar
    [media] em28xx-audio: don't hardcode audio URB calculus · 1b3fd2d3
    Mauro Carvalho Chehab authored
    The current code hardcodes the number of audio URBs, the number
    of packets per URB and the maximum URB size.
    
    This is not a good idea, as it:
    
    - wastes more bandwidth than necessary, by using a very
      large number of packets;
    
    - those constants are bound to an specific scenario, with
      a bandwidth of 48 kHz;
    
    - don't take the maximum endpoint size into account;
    
    - with urb->interval = 1 on xHCI, those constraints cause a "funny"
      setup: URBs with 64 packets inside, with only 24 bytes total. E. g.
      a complete waste of space.
    
    Change the code to do dynamic URB audio calculus and allocation.
    
    For now, use the same constraints as used before this patch, to
    avoid regressions.
    
    A good scenario (tested) seems to use those defines, instead:
    
    	#define EM28XX_MAX_AUDIO_BUFS          8
    	#define EM28XX_MIN_AUDIO_PACKETS       2
    
    But let's not do such change here, letting the optimization to
    happen on latter patches, after more tests.
    Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
    1b3fd2d3
em28xx-audio.c 22.7 KB