10 Jul, 2020

1 commit

  • Fix W=1 warning

    Kernel-doc is not used in one file and missing argument in the second.

    Signed-off-by: Pierre-Louis Bossart
    Acked-by: Alexandre Belloni
    Link: https://lore.kernel.org/r/20200707190612.97799-2-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown

    Pierre-Louis Bossart
     

18 May, 2020

1 commit


22 Jan, 2020

1 commit

  • There is no big difference at implementation for .suspend/.resume
    between DAI driver and Component driver.
    But because some driver is using DAI version, thus ALSA SoC needs
    to keep supporting it, hence, framework becoming verbose.
    If we can switch all DAI driver .suspend/.resume to Component driver,
    we can remove verbose code from ALSA SoC.

    Driver is getting its private data via dai->dev.
    But dai->dev and component->dev are same dev, thus, we can convert
    these. For same reason, we can convert dai->active to
    component->active if necessary.

    This patch moves DAI driver .suspend/.resume to Component driver

    Signed-off-by: Kuninori Morimoto
    Link: https://lore.kernel.org/r/87d0bfym53.wl-kuninori.morimoto.gx@renesas.com
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     

18 Sep, 2019

1 commit

  • A potential bug was reported in the email "[BUG] atmel_ssc_dai: a
    possible sleep-in-atomic bug in atmel_ssc_shutdown"[1]

    Indeed in the function atmel_ssc_shutdown() free_irq() was called in a
    critical section protected by spinlock.

    However this spinlock is only used in atmel_ssc_shutdown() and
    atmel_ssc_startup() functions. After further analysis, it occurred that
    the call to these function are already protected by mutex used on the
    calling functions.

    Then we can remove the spinlock which will fix this bug as a side
    effect. Thanks to this patch the following message disappears:

    "BUG: sleeping function called from invalid context at
    kernel/locking/mutex.c:909"

    [1]: https://www.spinics.net/lists/alsa-devel/msg71286.html

    Reviewed-by: Alexandre Belloni
    Signed-off-by: Gregory CLEMENT
    Link: https://lore.kernel.org/r/20190918100344.23629-1-gregory.clement@bootlin.com
    Signed-off-by: Mark Brown

    Gregory CLEMENT
     

28 Aug, 2019

2 commits

  • Enable support for left-justified data mode for SSC-codec link.

    Signed-off-by: Michał Mirosław
    Reviewed-by: Codrin Ciubotariu
    Link: https://lore.kernel.org/r/44fa6b700421e80778f20ff9ead2b148cf6d2e92.1566677788.git.mirq-linux@rere.qmqm.pl
    Signed-off-by: Mark Brown

    Michał Mirosław
     
  • Rework DAI format calculation in preparation for adding more formats
    later. As a side-effect this enables all CBM/CBS x CFM/CFS combinations
    for supported formats. (Note: the additional modes are not tested.)

    Note: this changes FSEDGE to POSITIVE for I2S CBM_CFS mode as the TXSYN
    interrupt is not used anyway.

    Signed-off-by: Michał Mirosław
    Link: https://lore.kernel.org/r/f5949b0326fdcdca072f3ed03f77de9e207631cd.1566677788.git.mirq-linux@rere.qmqm.pl
    Signed-off-by: Mark Brown

    Michał Mirosław
     

28 Jun, 2019

1 commit


31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    59 temple place suite 330 boston ma 02111 1307 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1334 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

10 Sep, 2018

1 commit


19 Apr, 2018

1 commit


16 Apr, 2018

1 commit


16 Nov, 2016

1 commit


16 Aug, 2016

1 commit

  • commit cbaadf0f90d6 ("ASoC: atmel_ssc_dai: refactor the startup and
    shutdown") refactored code such that the SSC is reset on every
    startup; this breaks duplex audio (e.g. first start audio playback,
    then start record, causing the playback to stop/hang)

    Fixes: cbaadf0f90d6 (ASoC: atmel_ssc_dai: refactor the startup and shutdown)
    Signed-off-by: Christoph Huber
    Signed-off-by: Peter Meerwald-Stadler
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Christoph Huber
     

07 Jul, 2016

1 commit


27 Apr, 2016

1 commit


02 Mar, 2016

1 commit


04 Aug, 2015

1 commit


05 Mar, 2015

1 commit


10 Feb, 2015

1 commit

  • When the SSC acts as BCK master, use a ratnum rule to limit
    the rate instead of only doing the standard rates. When the SSC
    acts as BCK slave, allow any BCK frequency up to the SSC master
    clock, divided by either of 2, 3 or 6.

    Put a cap at 384kHz. Who's /ever/ going to need more than that?

    The divider of 2, 3 or 6 is selected based on the Serial Clock Ratio
    Considerations section from the SSC documentation:

    The Transmitter and the Receiver can be programmed to operate
    with the clock signals provided on either the TK or RK pins.
    This allows the SSC to support many slave-mode data transfers.
    In this case, the maximum clock speed allowed on the RK pin is:
    - Peripheral clock divided by 2 if Receiver Frame Synchro is input
    - Peripheral clock divided by 3 if Receiver Frame Synchro is output
    In addition, the maximum clock speed allowed on the TK pin is:
    - Peripheral clock divided by 6 if Transmit Frame Synchro is input
    - Peripheral clock divided by 2 if Transmit Frame Synchro is output

    Signed-off-by: Peter Rosin
    Acked-by: Bo Shen
    Signed-off-by: Mark Brown

    Peter Rosin
     

09 Feb, 2015

1 commit


05 Feb, 2015

1 commit


30 Jan, 2015

4 commits


28 Jan, 2015

2 commits


08 Dec, 2014

1 commit


03 Nov, 2014

1 commit

  • The CMR divider register is shared by playback and capture. The SSC driver
    therefore tries to enforce rules so that the needed register content do
    not conflict during simultaneous playback/capture. However, the
    implementation also prevents changing the register content in
    half-duplex scenarios, which is needed when using the OSS API.

    Thus, only lock the divider if there is a stream in the other direction.

    Fixes the below program to not fail with the atmel ssc dai in master mode.

    int
    main(void)
    {
    int fd;
    int format;
    int channels;
    int speed;

    if ((fd = open("/dev/dsp", O_WRONLY, 0)) == -1) {
    perror("open");
    return 1;
    }
    format = AFMT_S16_LE;
    if (ioctl(fd, SNDCTL_DSP_SETFMT, &format) == -1) {
    perror("SNDCTL_DSP_SETFMT");
    return 1;
    }
    channels = 2;
    if (ioctl(fd, SNDCTL_DSP_CHANNELS, &channels) == -1) {
    perror("SNDCTL_DSP_CHANNELS");
    return 1;
    }
    speed = 22025;
    if (ioctl(fd, SNDCTL_DSP_SPEED, &speed) == -1) {
    perror("SNDCTL_DSP_SPEED");
    return 1;
    }
    return 0;
    }

    Signed-off-by: Peter Rosin
    Acked-by: Bo Shen
    Signed-off-by: Mark Brown

    Peter Rosin
     

21 Jun, 2014

1 commit

  • When SSC work as master, it will generate the frame sync signal.
    On old SoCs, it only supports frame sync length less or equal to
    16bits, on newer SoCs, it supports frame sync length extension,
    which can support frame size larger than 16 bits.
    So, add this to make it supports playback 24/32 bits audio clips.

    Signed-off-by: Bo Shen
    Acked-by: Nicolas Ferre
    Signed-off-by: Mark Brown

    Bo Shen
     

13 Feb, 2014

1 commit


04 Dec, 2013

1 commit


14 Oct, 2013

1 commit


04 Sep, 2013

1 commit

  • As once the error interrupt is triggered, it can not be cleared.
    So, disable it.

    No side effect found while testing on sama5d3xek and at91sam9x5ek
    boards.

    Signed-off-by: Bo Shen
    Acked-by: Nicolas Ferre
    Signed-off-by: Mark Brown

    Bo Shen
     

15 Jul, 2013

3 commits


12 Apr, 2013

1 commit


27 Mar, 2013

1 commit


04 Mar, 2013

1 commit