• John Hsu's avatar
    ASoC: nau8825: improve crosstalk measurement protection · fa25b4f5
    John Hsu authored
    The sequence of crosstalk measurement is not robust. The driver
    add more protections to make it stronger. The improvements as follows:
    (1)Give backup table the default value. The values are the same
    with the default of hardware registers. The impact will decline
    once restoring the backup table in the wrong way.
    (2)Add xtalk_baktab_initialized flag. The flag can keep the
    initiation status of backup table. It helps to backup and restore
    the backup-table correctly.
    (3)Add cancel parameter in the restore function. The volume ramping
    should do in crosstalk DONE state only. Otherwise, the delay action
    is not allowed because the restore may happen during the jack
    eject interruption.
    (4)Add xtalk_protect condition check before scheduling work in ISR.
    It makes sure the semaphore hold during the crosstalk measurement.
    The sequence is still under protection from playback interference.
    Signed-off-by: default avatarJohn Hsu <KCHSU0@nuvoton.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    fa25b4f5
nau8825.h 17.4 KB