• Peter Ujfalusi's avatar
    ASoC: omap-mcbsp: Support for sDMA packet mode · cf80e158
    Peter Ujfalusi authored
    Utilize the sDMA controller's packet syncronization mode, when
    the McBSP FIFO is in use (by extending the THRESHOLD mode).
    When the sDMA is configured for packet mode, the sDMA frame size
    does not need to match with the McBSP threshold configuration.
    Uppon DMA request the sDMA will transfer packet size number of
    words, and still trigger interrupt on frame boundary.
    
    The patch extends the original THRESHOLD mode by doing the
    following:
    
    if (period_words <= max_threshold)
    Current THRESHOLD mode configuration
    
    Otherwise (period_words > max_threshold)
    McBSP threshold = sDMA packet size
    sDMA frame size = period size
    
    With the extended THRESHOLD mode we can remove the constraint
    for the maximum period size, since if the period size is
    bigger than the maximum allowed threshold, than the driver
    will switch to packet mode, and picks the best (biggest)
    threshold value, which can divide evenly the period size.
    Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@nokia.com>
    Acked-by: default avatarJarkko Nikula <jhnikula@gmail.com>
    Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
    cf80e158
omap-mcbsp.c 27.3 KB