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: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20240207155140.18238-16-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2024-02-07 16:51:26 +01:00
parent 8ca0d10268
commit b9beb229eb

View file

@ -244,7 +244,7 @@ struct snd_ali {
spinlock_t voice_alloc;
#ifdef CONFIG_PM_SLEEP
struct snd_ali_image *image;
struct snd_ali_image image;
#endif
};
@ -1829,13 +1829,9 @@ static int ali_suspend(struct device *dev)
{
struct snd_card *card = dev_get_drvdata(dev);
struct snd_ali *chip = card->private_data;
struct snd_ali_image *im;
struct snd_ali_image *im = &chip->image;
int i, j;
im = chip->image;
if (!im)
return 0;
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
for (i = 0; i < chip->num_of_codecs; i++)
snd_ac97_suspend(chip->ac97[i]);
@ -1872,13 +1868,9 @@ static int ali_resume(struct device *dev)
{
struct snd_card *card = dev_get_drvdata(dev);
struct snd_ali *chip = card->private_data;
struct snd_ali_image *im;
struct snd_ali_image *im = &chip->image;
int i, j;
im = chip->image;
if (!im)
return 0;
spin_lock_irq(&chip->reg_lock);
for (i = 0; i < ALI_CHANNELS; i++) {
@ -2112,13 +2104,6 @@ static int snd_ali_create(struct snd_card *card,
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);
codec->hw_initialized = 1;
return 0;