diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0141-Limit-PCM512x-Digital-gain-to-0dB-by-default-with-Hi.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.4/0141-Limit-PCM512x-Digital-gain-to-0dB-by-default-with-Hi.patch | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0141-Limit-PCM512x-Digital-gain-to-0dB-by-default-with-Hi.patch b/target/linux/brcm2708/patches-4.4/0141-Limit-PCM512x-Digital-gain-to-0dB-by-default-with-Hi.patch deleted file mode 100644 index 4f63921341..0000000000 --- a/target/linux/brcm2708/patches-4.4/0141-Limit-PCM512x-Digital-gain-to-0dB-by-default-with-Hi.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 98357bafa929284bbd1046556971c3d4ae9f71d9 Mon Sep 17 00:00:00 2001 -From: Digital Dreamtime <clive.messer@digitaldreamtime.co.uk> -Date: Thu, 4 Feb 2016 20:04:00 +0000 -Subject: [PATCH] Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry - DAC+ - -24db_digital_gain DT param can be used to specify that PCM512x -codec "Digital" volume control should not be limited to 0dB gain, -and if specified will allow the full 24dB gain. ---- - arch/arm/boot/dts/overlays/README | 17 +++++++++++++++-- - .../arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts | 6 +++++- - sound/soc/bcm/hifiberry_dacplus.c | 14 ++++++++++++++ - 3 files changed, 34 insertions(+), 3 deletions(-) - ---- a/arch/arm/boot/dts/overlays/README -+++ b/arch/arm/boot/dts/overlays/README -@@ -273,8 +273,21 @@ Params: <None> - - Name: hifiberry-dacplus - Info: Configures the HifiBerry DAC+ audio card --Load: dtoverlay=hifiberry-dacplus --Params: <None> -+Load: dtoverlay=hifiberry-dacplus,<param>=<val> -+Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec -+ Digital volume control. Enable with -+ "dtoverlay=hifiberry-dacplus,24db_digital_gain" -+ (The default behaviour is that the Digital -+ volume control is limited to a maximum of -+ 0dB. ie. it can attenuate but not provide -+ gain. For most users, this will be desired -+ as it will prevent clipping. By appending -+ the 24dB_digital_gain parameter, the Digital -+ volume control will allow up to 24dB of -+ gain. If this parameter is enabled, it is the -+ responsibility of the user to ensure that -+ the Digital volume control is set to a value -+ that does not result in clipping/distortion!) - - - Name: hifiberry-digi ---- a/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts -+++ b/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts -@@ -17,7 +17,7 @@ - - fragment@1 { - target = <&sound>; -- __overlay__ { -+ frag1: __overlay__ { - compatible = "hifiberry,hifiberry-dacplus"; - i2s-controller = <&i2s>; - status = "okay"; -@@ -47,4 +47,8 @@ - }; - }; - }; -+ -+ __overrides__ { -+ 24db_digital_gain = <&frag1>,"hifiberry,24db_digital_gain?"; -+ }; - }; ---- a/sound/soc/bcm/hifiberry_dacplus.c -+++ b/sound/soc/bcm/hifiberry_dacplus.c -@@ -48,6 +48,7 @@ struct pcm512x_priv { - #define CLK_48EN_RATE 24576000UL - - static bool snd_rpi_hifiberry_is_dacpro; -+static bool digital_gain_0db_limit = true; - - static void snd_rpi_hifiberry_dacplus_select_clk(struct snd_soc_codec *codec, - int clk_id) -@@ -167,6 +168,16 @@ static int snd_rpi_hifiberry_dacplus_ini - snd_soc_update_bits(codec, PCM512x_GPIO_OUTPUT_4, 0x0f, 0x02); - snd_soc_update_bits(codec, PCM512x_GPIO_CONTROL_1, 0x08, 0x08); - -+ if (digital_gain_0db_limit) -+ { -+ int ret; -+ struct snd_soc_card *card = rtd->card; -+ -+ ret = snd_soc_limit_volume(card, "Digital Playback Volume", 207); -+ if (ret < 0) -+ dev_warn(card->dev, "Failed to set volume limit: %d\n", ret); -+ } -+ - return 0; - } - -@@ -299,6 +310,9 @@ static int snd_rpi_hifiberry_dacplus_pro - dai->platform_name = NULL; - dai->platform_of_node = i2s_node; - } -+ -+ digital_gain_0db_limit = !of_property_read_bool( -+ pdev->dev.of_node, "hifiberry,24db_digital_gain"); - } - - ret = snd_soc_register_card(&snd_rpi_hifiberry_dacplus); |