lkml.org 
[lkml]   [2016]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectASoC: sun4i-codec: playback stall and I/O error with DAPM paths all disabled
    Hi everyone,

    In the sun4i-codec driver, we control the DAC digital enable bits with a
    supply widget, which in turn supplies the DAC source widgets. DAPM will
    disable the supply if there are no usable playback paths. And it just so
    happens that the default value for various playback switches is the off
    setting.

    Any user getting codec support for the first time has to enable a proper
    playback path before getting sound out of the hardware. This is expected.

    What is unexpected is any attempt to play anything under this state makes
    the playback software (in my case mpg321) stall, and later report an I/O
    error. My guess is that the DAC is still disabled by DAPM, so it doesn't
    send any DRQs, and thus the DMA engine is not consuming any data from
    userspace.

    I think we should just enable the digital bits of the DAC/ADC all the
    time. Or maybe transfer and then discard data if the DAC is off. Not
    sure if this is doable though. I expect playback software to work, and
    not block, regardless of the hardware status.

    Any thoughts on this? sun4i-codec seems to be one of the rarer kinds of
    hardware where the DAC is directly tied to the system bus, without an I2S
    interface in between. And I don't see any DAI drivers using DAPM.


    Regards
    ChenYu

    \
     
     \ /
      Last update: 2016-09-17 09:56    [W:10.336 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site