Commit graph

348 commits

Author SHA1 Message Date
Hin-Tak Leung
c5f3836dd8 missed one simple_priv_to_card() to seeed_priv_to_card() earlier 2021-04-27 15:48:33 +01:00
Hin-Tak Leung
19067f3333 Second/Alternative change to correct for 5.5+ change in trigger order
The idea is the same as the previous attempt: calls ac101_trigger() just
before set_clock(1).

https://github.com/respeaker/seeed-voicecard/issues/290
    6mics / linear 4 mics: fails to record against v5.10 kernel
https://github.com/raspberrypi/linux/issues/4279
    [regression] alsa system call blocks on record between 5.4.83 and 5.5.19

In v5.5,

commit 4378f1fbe924054a09ff0d4e39e1a581b9245252
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Fri Sep 27 10:16:46 2019 +0300

    ASoC: soc-pcm: Use different sequence for start/stop trigger

    On stream stop currently we stop the DMA first followed by the CPU DAI.
    This can cause underflow (playback) or overflow (capture) on the DAI side
    as the DMA is no longer feeding data while the DAI is still active.
    It can be observed easily if the DAI side does not have FIFO (or it is
    disabled) to survive the time while the DMA is stopped, but still can
    happen on relatively slow CPUs when relatively high sampling rate is used:
    the FIFO is drained between the time the DMA is stopped and the DAI is
    stopped.

    It can only fixed by using different sequence within trigger for 'stop' and
    'start':
    case SNDRV_PCM_TRIGGER_START:
    case SNDRV_PCM_TRIGGER_RESUME:
    case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
            Trigger order: dai_link, DMA, CPU DAI then the codec

    case SNDRV_PCM_TRIGGER_STOP:
    case SNDRV_PCM_TRIGGER_SUSPEND:
    case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
            Trigger order: codec, CPU DAI, DMA then dai_link

    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20190927071646.22319-1-peter.ujfalusi@ti.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
2021-04-27 02:49:25 +01:00
Hin-Tak Leung
5793cf6bf0 Revert "Operational change to correct for 5.5+ change in trigger order; REVISIT!"
This reverts commit e553d4f851.
2021-04-27 02:49:08 +01:00
Hin-Tak Leung
ffcdafb798 adjust back-to-v5.4.diff for recent code changes 2021-04-25 00:13:42 +01:00
Hin-Tak Leung
e553d4f851 Operational change to correct for 5.5+ change in trigger order; REVISIT!
Need to revisit, and do in a different way.

https://github.com/respeaker/seeed-voicecard/issues/290
    6mics / linear 4 mics: fails to record against v5.10 kernel
https://github.com/raspberrypi/linux/issues/4279
    [regression] alsa system call blocks on record between 5.4.83 and 5.5.19

In v5.5,

commit 4378f1fbe924054a09ff0d4e39e1a581b9245252
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Fri Sep 27 10:16:46 2019 +0300

    ASoC: soc-pcm: Use different sequence for start/stop trigger

    On stream stop currently we stop the DMA first followed by the CPU DAI.
    This can cause underflow (playback) or overflow (capture) on the DAI side
    as the DMA is no longer feeding data while the DAI is still active.
    It can be observed easily if the DAI side does not have FIFO (or it is
    disabled) to survive the time while the DMA is stopped, but still can
    happen on relatively slow CPUs when relatively high sampling rate is used:
    the FIFO is drained between the time the DMA is stopped and the DAI is
    stopped.

    It can only fixed by using different sequence within trigger for 'stop' and
    'start':
    case SNDRV_PCM_TRIGGER_START:
    case SNDRV_PCM_TRIGGER_RESUME:
    case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
            Trigger order: dai_link, DMA, CPU DAI then the codec

    case SNDRV_PCM_TRIGGER_STOP:
    case SNDRV_PCM_TRIGGER_SUSPEND:
    case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
            Trigger order: codec, CPU DAI, DMA then dai_link

    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Link: https://lore.kernel.org/r/20190927071646.22319-1-peter.ujfalusi@ti.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
2021-04-25 00:13:42 +01:00
Hin-Tak Leung
de70691526 v5.7: this code was added with 5.7 - "for_each_rtd_components"
The correct incantation is:

git log 95cfc0a0aaf575207152dd7601e782702565a6f1 ^v5.7
2021-04-25 00:13:42 +01:00
Hin-Tak Leung
1774a54301 Additional debug code to where the *_trigger()'s finish. 2021-04-25 00:13:42 +01:00
Hin-Tak Leung
af484de3af v4.17: replace codec to component
https://www.alsa-project.org/pipermail/alsa-devel/2018-January/thread.html#131069

https://www.alsa-project.org/pipermail/alsa-devel/2018-January/131070.html
[alsa-devel] [PATCH v2 00/39] ASoC: replace platform/codec component   Kuninori Morimoto

https://www.alsa-project.org/pipermail/alsa-devel/2018-January/131111.html
[alsa-devel] [PATCH v2 000/186] ASoC: replace codec component   Kuninori Morimoto
2021-04-25 00:13:42 +01:00
Hin-Tak Leung
9796ad49ff Additional debug statement 2021-04-25 00:13:42 +01:00
Hin-Tak Leung
43b6034266 Breaking the spinlock into two halves, and possible fix to spinlock issue 2021-04-25 00:13:42 +01:00
Hin-Tak Leung
eab694c170 Not writing dtoverlay=seeed-*mic-voicecard to /boot/config.txt
It is easier for debugging, and easier for switching cards around, too.
2021-04-25 00:13:42 +01:00
Hin-Tak Leung
fdd67ea2c4 Move call to asoc_simple_canonicalize_platform() later to match upstream - likely does not matter.
commit fe7ed4dec2e6289eab81dd18c0d613c0851d85a1
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Mon Jan 21 16:40:59 2019 +0900

    ASoC: simple-card: rename to asoc_simple_card_canonicalize_platform()

    Current simple-card is using asoc_simple_card_canonicalize_dailink().
    Its naming is "dailink", but is for "platform".
    We already have asoc_simple_card_canonicalize_cpu() for "cpu",
    let's follow same naming rule.
    It never return error, so, void function is better idea.

    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
2021-04-25 00:13:28 +01:00
Hin-Tak Leung
f8d47b5c64 2nd parameter of asoc_simple_init_dai_link_params() not used 2021-04-24 20:50:05 +01:00
Hin-Tak Leung
47d09dba0e v5.6: codec2codec DAI links
commit 95cfc0a0aaf575207152dd7601e782702565a6f1
Author: Samuel Holland <samuel@sholland.org>
Date:   Wed Mar 4 23:11:43 2020 -0600

    ASoC: simple-card: Add support for codec2codec DAI links

    Following the example in cb2cf0de1174 ("ASoC: soc-core: care Codec <->
    Codec case by non_legacy_dai_naming"), determine if a DAI link contains
    only codec DAIs by examining the non_legacy_dai_naming flag in each
    DAI's component.

    For now, we assume there is only one or a small set of valid PCM stream
    parameters, so num_params == 1 is good enough. We also assume that the
    same params are valid for all supported streams. params is set to the
    subset of parameters common among all DAIs, and then the existing code
    automatically chooses the highest quality of the remaining values when
    the link is brought up.
2021-04-24 20:49:53 +01:00
Hin-Tak Leung
d692927067 adjust asoc_simple_debug_info() for seeed priv structures 2021-04-24 20:49:36 +01:00
Hin-Tak Leung
14317817f8 v5.1 "ASoC: simple-card-utils: add asoc_simple_debug_info()"
commit 0580dde59438686d60762b6da9229ebec693b94f
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Wed Mar 20 13:54:42 2019 +0900

    ASoC: simple-card-utils: add asoc_simple_debug_info()

    Current simple-card-utils has dev_dbg(), but people want to
    add #define DEBUG at simple-card/audio-graph, not simple-card-utils.
    And, people want to get all information.
    This patch adds new asoc_simple_debug_info() to indicates information.
2021-04-24 20:49:19 +01:00
Hin-Tak Leung
3ba6aec5bb adjust v4.19 backport patch to "fix silly mistake in "v5.8: ..."" 2021-04-11 22:59:11 +01:00
Hin-Tak Leung
8b2094fc23 libasound_module_pcm_ac108.so is no longer installed, so libasound2-plugins shouldn't be needed 2021-04-08 21:07:35 +01:00
Hin-Tak Leung
c84b644247 adjust v5.4 backport patch to "fix silly mistake in "v5.8: ..."" 2021-04-08 18:07:20 +01:00
Hin-Tak Leung
8e1c59be7e fix silly mistake in "v5.8: struct snd_soc_dai->active replaced by snd_soc_dai_active(snd_soc_dai)" 2021-04-08 04:01:13 +01:00
Hin-Tak Leung
f289f5586e backport patch for 5.8 2021-04-07 21:48:15 +01:00
Hin-Tak Leung
3ad10c131c remove non-coding changes in back-to-v4.19.diff 2021-04-01 00:48:07 +01:00
Hin-Tak Leung
cbb5e082f2 hook up backport patches with dkms 2021-04-01 00:41:04 +01:00
Hin-Tak Leung
43532cfada rename to v5.4, since 5.4 is LTS 2021-04-01 00:40:13 +01:00
Hin-Tak Leung
eea6066d70 generating backport-patch with "git diff origin/v5.9..origin/v4.19" 2021-04-01 00:31:04 +01:00
Hin-Tak Leung
44d47226dc generating backport-patch with "git diff origin/v5.9..origin/v5.5" 2021-04-01 00:30:34 +01:00
Hin-Tak Leung
50dbe24b78 v5.9: snd_soc_component_read32() merged into snd_soc_component_read()
commit 39853b1438bf9b07349c8c44b48f6c2eda6f8840
Merge: d6fea46e086b 5b554b0a29ce
Author: Mark Brown <broonie@kernel.org>
Date:   Mon Jun 22 15:36:06 2020 +0100

    Merge series "ASoC: merge snd_soc_component_read() and snd_soc_component_read32()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:

$ git diff d6fea46e086b...5b554b0a29ce

commit 5b554b0a29ce9610e3c237c77a1f76db87454b72
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Tue Jun 16 14:21:55 2020 +0900

    ASoC: remove snd_soc_component_read32()

    No driver is using snd_soc_component_read32() anymore.
    This patch removes it.
2020-11-27 00:12:31 +00:00
Hin-Tak Leung
ebcf755c1a v5.9: .digital_mute merged into .mute_stream with adjustments
Reference:

commit e2978c45e5ed3bab7f69477b882ef588185b30cc
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Fri Jul 17 09:21:54 2020 +0900

    ASoC: soc-dai: remove .digital_mute

    All drivers are now using .mute_stream.
    Let's remove .digital_mute.

commit 22e9b54307987787efa0ee534aa9e31982ec1161
Merge: dc9584c5a3b8 a0234d0e6014
Author: Mark Brown <broonie@kernel.org>
Date:   Fri Jul 17 14:47:04 2020 +0100

    Merge series "ASoC: merge .digital_mute() into .mute_stream()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:

    These are v4 digital_mute() patch which adjusts
    to atmel which had conflict on v3.

    v3 -> v4
            - tidyup for atmel which had conflict

$ git diff dc9584c5a3b8...a0234d0e6014

commit bdd0c277d9846977ec3f175341d4e7475ed26ef7
Merge: d235b2823698 50891431aaad
Author: Mark Brown <broonie@kernel.org>
Date:   Thu Jul 16 23:51:51 2020 +0100

    Merge series "ASoC: merge .digital_mute() into .mute_stream()" from Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>:

    These are v3 patch-set.
    ALSA SoC has 2 mute callbacks (= .digital_mute(), .mute_stream()).
    But the difference between these 2 are very small.
            .digital_mute() is for Playback
            .mute_stream()  is for Playback/Capture

    This patch-set adds new .no_capture_mute flag and emulate
    .digital_mute() by .mute_stream().

    v2 -> v3
            - uses "xxx_mute_stream" for .mute_stream naming
              if it was better
            - removed verbose Cc email address

$ git diff d235b2823698...50891431aaad

commit 350d993510115e3d9e78f1b3359bff7b68e88418
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Thu Jul 9 10:55:41 2020 +0900

    ASoC: soc-dai.c: add .no_capture_mute support
2020-11-27 00:07:47 +00:00
Hin-Tak Leung
484c03d4c8 Merge branch 'v5.7' into v5.8 2020-10-04 19:17:42 +01:00
Hin-Tak Leung
a79b7d94a5 Merge branch 'v5.5' into v5.7 2020-10-04 19:17:19 +01:00
turmary
87f42ed64d Add: document about "query sound card number" 2020-10-04 19:15:39 +01:00
Hin-Tak Leung
379f791b3c Not a merge - just marking not-interested
Merge branch 'rel-v5.5' of git://github.com/respeaker/seeed-voicecard into v5.5
2020-10-04 19:14:30 +01:00
turmary
8cce4e8ffa Add: document about "query sound card number" 2020-09-30 15:04:47 +08:00
turmary
ac2bf5f638 Move: dkms module removing to the position before kernel update 2020-09-30 10:39:23 +08:00
Hin-Tak Leung
4b7559b320 Not a merge - just marking not-interested
Merge branch 'rel-v5.5' of git://github.com/respeaker/seeed-voicecard into v5.5
2020-09-29 22:35:57 +01:00
turmary
526d0ddef9 Add: error message if old kernel package install failed 2020-09-29 11:07:29 +08:00
turmary
6fb0c63581 Add: unload codec driver when uninstall 2020-09-29 11:06:23 +08:00
turmary
06e054aa06 Move: volume name in state configuration 2020-09-29 00:20:39 +08:00
turmary
1a7fbee50e Move: volume widget name to ALSA tradition style 2020-09-29 00:20:39 +08:00
turmary
7e635f5d57 Remove: debug only or wrong widget 2020-09-29 00:20:38 +08:00
turmary
7461921407 Add: clear title for each install/uninstall steps 2020-09-29 00:20:38 +08:00
Hin-Tak Leung
794d7a3527 Merge branch 'v5.7' into v5.8 2020-09-28 17:11:24 +01:00
Hin-Tak Leung
c206a43374 Merge branch 'v5.5' into v5.7 2020-09-28 17:11:03 +01:00
Hin-Tak Leung
e0f9a554fc stop systemd service before diabling in uninstall, taken from upstream c1c2e5ca 2020-09-28 17:02:11 +01:00
Hin-Tak Leung
e85006b775 Not a merge - just marking not-interested
Merge branch 'rel-v5.5' of git://github.com/respeaker/seeed-voicecard into v5.5
2020-09-28 16:56:01 +01:00
Hin-Tak Leung
921ac8fba5 Following Standard ALSA Control Names convention
See kernel documentation, e.g. v5.5:Documentation/sound/designs/control-names.rst

Fixes https://github.com/respeaker/seeed-voicecard/issues/247
2020-09-28 16:38:30 +01:00
turmary
30ceb546fa Move: volume name in state configuration 2020-09-28 18:14:32 +08:00
turmary
e1110617b2 Move: volume name widget to ALSA tradition 2020-09-28 18:04:40 +08:00
turmary
a891e0260e Remove: debug only or wrong widget 2020-09-28 18:03:18 +08:00
turmary
c1c2e5ca56 Add: clear title for each install/uninstall steps 2020-09-28 08:45:45 +01:00