diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-07-09 20:32:28 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-07-14 12:44:14 +0200 |
commit | 42954857190b9df16d9d873ecc7f6cc38e013e44 (patch) | |
tree | 98c588f629ff534d458eb0884782ea99672d7634 /target/linux/brcm2708/patches-4.19/950-0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch | |
parent | f1875e902d0afb7d9b9e5285b4fd8da7f6c5e30a (diff) | |
download | upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.gz upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.bz2 upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.zip |
brcm2708: add linux 4.19 support
Boot tested on Raspberry Pi B+ (BCM2708) and Raspberry Pi 2 (BCM2709)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch b/target/linux/brcm2708/patches-4.19/950-0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch new file mode 100644 index 0000000000..2c38804c42 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch @@ -0,0 +1,46 @@ +From c56c1c63927b4fafb51b45df92d6a58eeb08141a Mon Sep 17 00:00:00 2001 +From: Matthias Reichl <hias@horus.com> +Date: Sun, 18 Nov 2018 15:32:28 +0100 +Subject: [PATCH 212/703] rpi-wm8804-soundcard: configure wm8804 clocks only on + rate change + +This should avoid clicks when stopping and immediately afterwards +starting a stream with the same samplerate as before. + +Signed-off-by: Matthias Reichl <hias@horus.com> +--- + sound/soc/bcm/rpi-wm8804-soundcard.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/sound/soc/bcm/rpi-wm8804-soundcard.c ++++ b/sound/soc/bcm/rpi-wm8804-soundcard.c +@@ -64,6 +64,7 @@ struct snd_rpi_wm8804_drvdata { + + static struct gpio_desc *snd_clk44gpio; + static struct gpio_desc *snd_clk48gpio; ++static int wm8804_samplerate = 0; + + #define CLK_44EN_RATE 22579200UL + #define CLK_48EN_RATE 24576000UL +@@ -117,6 +118,12 @@ static int snd_rpi_wm8804_hw_params(stru + struct wm8804_clk_cfg clk_cfg; + int samplerate = params_rate(params); + ++ if (samplerate == wm8804_samplerate) ++ return 0; ++ ++ /* clear until all clocks are setup properly */ ++ wm8804_samplerate = 0; ++ + snd_rpi_wm8804_clk_cfg(samplerate, &clk_cfg); + + pr_debug("%s samplerate: %d mclk_freq: %u mclk_div: %u sysclk: %u\n", +@@ -163,6 +170,8 @@ static int snd_rpi_wm8804_hw_params(stru + return ret; + } + ++ wm8804_samplerate = samplerate; ++ + /* set sampling frequency status bits */ + snd_soc_component_update_bits(component, WM8804_SPDTX4, 0x0f, + sampling_freq); |