Commit b9beb229 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: ali5451: Embed suspend image into struct snd_ali

Instead of allocating the memory with an additional devm_kmalloc(),
just put the image into the existing struct snd_ali.  The allocation
size isn't too big, hence it works better with less allocation calls.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20240207155140.18238-16-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 8ca0d102
...@@ -244,7 +244,7 @@ struct snd_ali { ...@@ -244,7 +244,7 @@ struct snd_ali {
spinlock_t voice_alloc; spinlock_t voice_alloc;
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP
struct snd_ali_image *image; struct snd_ali_image image;
#endif #endif
}; };
...@@ -1829,13 +1829,9 @@ static int ali_suspend(struct device *dev) ...@@ -1829,13 +1829,9 @@ static int ali_suspend(struct device *dev)
{ {
struct snd_card *card = dev_get_drvdata(dev); struct snd_card *card = dev_get_drvdata(dev);
struct snd_ali *chip = card->private_data; struct snd_ali *chip = card->private_data;
struct snd_ali_image *im; struct snd_ali_image *im = &chip->image;
int i, j; int i, j;
im = chip->image;
if (!im)
return 0;
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
for (i = 0; i < chip->num_of_codecs; i++) for (i = 0; i < chip->num_of_codecs; i++)
snd_ac97_suspend(chip->ac97[i]); snd_ac97_suspend(chip->ac97[i]);
...@@ -1872,13 +1868,9 @@ static int ali_resume(struct device *dev) ...@@ -1872,13 +1868,9 @@ static int ali_resume(struct device *dev)
{ {
struct snd_card *card = dev_get_drvdata(dev); struct snd_card *card = dev_get_drvdata(dev);
struct snd_ali *chip = card->private_data; struct snd_ali *chip = card->private_data;
struct snd_ali_image *im; struct snd_ali_image *im = &chip->image;
int i, j; int i, j;
im = chip->image;
if (!im)
return 0;
spin_lock_irq(&chip->reg_lock); spin_lock_irq(&chip->reg_lock);
for (i = 0; i < ALI_CHANNELS; i++) { for (i = 0; i < ALI_CHANNELS; i++) {
...@@ -2112,13 +2104,6 @@ static int snd_ali_create(struct snd_card *card, ...@@ -2112,13 +2104,6 @@ static int snd_ali_create(struct snd_card *card,
return err; return err;
} }
#ifdef CONFIG_PM_SLEEP
codec->image = devm_kmalloc(&pci->dev, sizeof(*codec->image),
GFP_KERNEL);
if (!codec->image)
dev_warn(card->dev, "can't allocate apm buffer\n");
#endif
snd_ali_enable_address_interrupt(codec); snd_ali_enable_address_interrupt(codec);
codec->hw_initialized = 1; codec->hw_initialized = 1;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment