Messages in this thread | | | Subject | Re: [PATCH] at73c213: Remove redundant private_free routine | From | Hans-Christian Egtvedt <> | Date | Mon, 10 Mar 2008 10:43:36 +0100 |
| |
On Mon, 2008-03-10 at 16:49 +0900, Atsushi Nemoto wrote: > On Mon, 10 Mar 2008 16:13:54 +0900 (JST), Atsushi Nemoto <anemo@mba.ocn.ne.jp> wrote: > > snd_pcm_lib_preallocate_free_for_all() is called from snd_pcm_free() > > just after calling the private_free routine. So there should be no > > need to call it in driver's private_free routine. > ... > > - pcm->private_data = chip; > > - pcm->private_free = snd_at73c213_pcm_free; > > pcm->info_flags = SNDRV_PCM_INFO_BLOCK_TRANSFER; > > strcpy(pcm->name, "at73c213"); > > chip->pcm = pcm; > > Sorry, the patch was wrong. The private_data field should still be > initialized. Revised. >
I spun this around, and it works fine on my system (AVR32 AT32AP7000 on STK1000).
> ------------------------------------------------------ > Subject: [PATCH] at73c213: Remove redundant private_free routine > From: Atsushi Nemoto <anemo@mba.ocn.ne.jp> > > snd_pcm_lib_preallocate_free_for_all() is called from snd_pcm_free() > just after calling the private_free routine. So there should be no > need to call it in driver's private_free routine. >
Thanks for debugging the driver.
> Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Acked-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
> --- > diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c > index 89d6e9c..bf3ea43 100644 > --- a/sound/spi/at73c213.c > +++ b/sound/spi/at73c213.c > @@ -314,15 +314,6 @@ static struct snd_pcm_ops at73c213_playback_ops = { > .pointer = snd_at73c213_pcm_pointer, > }; > > -static void snd_at73c213_pcm_free(struct snd_pcm *pcm) > -{ > - struct snd_at73c213 *chip = snd_pcm_chip(pcm); > - if (chip->pcm) { > - snd_pcm_lib_preallocate_free_for_all(chip->pcm); > - chip->pcm = NULL; > - } > -} > - > static int __devinit snd_at73c213_pcm_new(struct snd_at73c213 *chip, int device) > { > struct snd_pcm *pcm; > @@ -334,7 +325,6 @@ static int __devinit snd_at73c213_pcm_new(struct snd_at73c213 *chip, int device) > goto out; > > pcm->private_data = chip; > - pcm->private_free = snd_at73c213_pcm_free; > pcm->info_flags = SNDRV_PCM_INFO_BLOCK_TRANSFER; > strcpy(pcm->name, "at73c213"); > chip->pcm = pcm; > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- With kind regards, Hans-Christian Egtvedt, Applications Engineer
| |