diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-09-04 19:01:23 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-09-04 19:02:48 +0200 |
commit | 662394fb30fdbcc89ec387918714aebee6868a9f (patch) | |
tree | c308c5f1a650abf9d9ccbb2a1747469a0d8570c0 /target/linux/brcm2708/patches-4.19/950-0461-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch | |
parent | 99a5e285887c4a10aaf06d8e01fae0707995da00 (diff) | |
download | upstream-662394fb30fdbcc89ec387918714aebee6868a9f.tar.gz upstream-662394fb30fdbcc89ec387918714aebee6868a9f.tar.bz2 upstream-662394fb30fdbcc89ec387918714aebee6868a9f.zip |
brcm2708: update to latest patches from RPi foundation
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0461-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0461-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0461-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch b/target/linux/brcm2708/patches-4.19/950-0461-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch deleted file mode 100644 index 20f1874603..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0461-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch +++ /dev/null @@ -1,196 +0,0 @@ -From 45b83d5330c46aa1ce7263efba96cf14817e3b5f Mon Sep 17 00:00:00 2001 -From: Takashi Iwai <tiwai@suse.de> -Date: Tue, 4 Sep 2018 17:58:56 +0200 -Subject: [PATCH 461/773] staging: bcm2835-audio: Simplify PCM creation helpers - -commit 74470ffeb9aed5548654cfca881bf1d7469fe9c4 upstream. - -All three functions to create PCM objects are fairly resemble, and can -be unified to a single common helper. - -Signed-off-by: Takashi Iwai <tiwai@suse.de> -Tested-by: Stefan Wahren <stefan.wahren@i2se.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 87 ++++--------------- - .../vc04_services/bcm2835-audio/bcm2835.c | 17 +++- - .../vc04_services/bcm2835-audio/bcm2835.h | 9 +- - 3 files changed, 32 insertions(+), 81 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -@@ -324,91 +324,36 @@ static const struct snd_pcm_ops snd_bcm2 - }; - - /* create a pcm device */ --int snd_bcm2835_new_pcm(struct bcm2835_chip *chip, u32 numchannels) -+int snd_bcm2835_new_pcm(struct bcm2835_chip *chip, const char *name, -+ int idx, enum snd_bcm2835_route route, -+ u32 numchannels, bool spdif) - { - struct snd_pcm *pcm; - int err; - -- err = snd_pcm_new(chip->card, "bcm2835 ALSA", 0, numchannels, 0, &pcm); -- if (err < 0) -- return err; -- pcm->private_data = chip; -- pcm->nonatomic = true; -- strcpy(pcm->name, "bcm2835 ALSA"); -- chip->pcm = pcm; -- chip->dest = AUDIO_DEST_AUTO; -- chip->volume = 0; -- chip->mute = CTRL_VOL_UNMUTE; /*disable mute on startup */ -- /* set operators */ -- snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, -- &snd_bcm2835_playback_ops); -- -- /* pre-allocation of buffers */ -- /* NOTE: this may fail */ -- snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, -- chip->card->dev->parent, -- snd_bcm2835_playback_hw.buffer_bytes_max, -- snd_bcm2835_playback_hw.buffer_bytes_max); -- -- return 0; --} -- --int snd_bcm2835_new_spdif_pcm(struct bcm2835_chip *chip) --{ -- struct snd_pcm *pcm; -- int err; -- -- err = snd_pcm_new(chip->card, "bcm2835 ALSA", 1, 1, 0, &pcm); -- if (err < 0) -- return err; -- -- pcm->private_data = chip; -- pcm->nonatomic = true; -- strcpy(pcm->name, "bcm2835 IEC958/HDMI"); -- chip->pcm_spdif = pcm; -- snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, -- &snd_bcm2835_playback_spdif_ops); -- -- /* pre-allocation of buffers */ -- /* NOTE: this may fail */ -- snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, -- chip->card->dev->parent, -- snd_bcm2835_playback_spdif_hw.buffer_bytes_max, snd_bcm2835_playback_spdif_hw.buffer_bytes_max); -- -- return 0; --} -- --int snd_bcm2835_new_simple_pcm(struct bcm2835_chip *chip, -- const char *name, -- enum snd_bcm2835_route route, -- u32 numchannels) --{ -- struct snd_pcm *pcm; -- int err; -- -- err = snd_pcm_new(chip->card, name, 0, numchannels, -- 0, &pcm); -+ err = snd_pcm_new(chip->card, name, idx, numchannels, 0, &pcm); - if (err) - return err; - - pcm->private_data = chip; - pcm->nonatomic = true; - strcpy(pcm->name, name); -- chip->pcm = pcm; -- chip->dest = route; -- chip->volume = 0; -- chip->mute = CTRL_VOL_UNMUTE; -+ if (!spdif) { -+ chip->dest = route; -+ chip->volume = 0; -+ chip->mute = CTRL_VOL_UNMUTE; -+ } - - snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, -+ spdif ? &snd_bcm2835_playback_spdif_ops : - &snd_bcm2835_playback_ops); - -- snd_pcm_lib_preallocate_pages_for_all( -- pcm, -- SNDRV_DMA_TYPE_DEV, -- chip->card->dev->parent, -- snd_bcm2835_playback_hw.buffer_bytes_max, -- snd_bcm2835_playback_hw.buffer_bytes_max); -+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, -+ chip->card->dev->parent, 128 * 1024, 128 * 1024); - -+ if (spdif) -+ chip->pcm_spdif = pcm; -+ else -+ chip->pcm = pcm; - return 0; - } -- ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -@@ -138,17 +138,26 @@ static int bcm2835_audio_alsa_newpcm(str - { - int err; - -- err = snd_bcm2835_new_pcm(chip, numchannels - 1); -+ err = snd_bcm2835_new_pcm(chip, "bcm2835 ALSA", 0, AUDIO_DEST_AUTO, -+ numchannels - 1, false); - if (err) - return err; - -- err = snd_bcm2835_new_spdif_pcm(chip); -+ err = snd_bcm2835_new_pcm(chip, "bcm2835 IEC958/HDMI", 1, 0, 1, true); - if (err) - return err; - - return 0; - } - -+static int bcm2835_audio_simple_newpcm(struct bcm2835_chip *chip, -+ const char *name, -+ enum snd_bcm2835_route route, -+ u32 numchannels) -+{ -+ return snd_bcm2835_new_pcm(chip, name, 0, route, numchannels, false); -+} -+ - static struct bcm2835_audio_driver bcm2835_audio_alsa = { - .driver = { - .name = "bcm2835_alsa", -@@ -169,7 +178,7 @@ static struct bcm2835_audio_driver bcm28 - .shortname = "bcm2835 HDMI", - .longname = "bcm2835 HDMI", - .minchannels = 1, -- .newpcm = snd_bcm2835_new_simple_pcm, -+ .newpcm = bcm2835_audio_simple_newpcm, - .newctl = snd_bcm2835_new_hdmi_ctl, - .route = AUDIO_DEST_HDMI - }; -@@ -182,7 +191,7 @@ static struct bcm2835_audio_driver bcm28 - .shortname = "bcm2835 Headphones", - .longname = "bcm2835 Headphones", - .minchannels = 1, -- .newpcm = snd_bcm2835_new_simple_pcm, -+ .newpcm = bcm2835_audio_simple_newpcm, - .newctl = snd_bcm2835_new_headphones_ctl, - .route = AUDIO_DEST_HEADPHONES - }; ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h -@@ -84,12 +84,9 @@ struct bcm2835_alsa_stream { - }; - - int snd_bcm2835_new_ctl(struct bcm2835_chip *chip); --int snd_bcm2835_new_pcm(struct bcm2835_chip *chip, u32 numchannels); --int snd_bcm2835_new_spdif_pcm(struct bcm2835_chip *chip); --int snd_bcm2835_new_simple_pcm(struct bcm2835_chip *chip, -- const char *name, -- enum snd_bcm2835_route route, -- u32 numchannels); -+int snd_bcm2835_new_pcm(struct bcm2835_chip *chip, const char *name, -+ int idx, enum snd_bcm2835_route route, -+ u32 numchannels, bool spdif); - - int snd_bcm2835_new_hdmi_ctl(struct bcm2835_chip *chip); - int snd_bcm2835_new_headphones_ctl(struct bcm2835_chip *chip); |