Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5241a8c authored by Richard Fitzgerald's avatar Richard Fitzgerald Committed by Takashi Iwai
Browse files

ALSA: compress: Pass id string to snd_compress_new



Make snd_compress_new take an id string (like snd_pcm_new).
This string can be included in the procfs info.

This patch also updates soc_new_compress() to create an ID
based on the stream and dai name, as done for PCM streams.

Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 31742724
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -163,7 +163,7 @@ struct snd_compr {
int snd_compress_register(struct snd_compr *device);
int snd_compress_register(struct snd_compr *device);
int snd_compress_deregister(struct snd_compr *device);
int snd_compress_deregister(struct snd_compr *device);
int snd_compress_new(struct snd_card *card, int device,
int snd_compress_new(struct snd_card *card, int device,
			int type, struct snd_compr *compr);
			int type, const char *id, struct snd_compr *compr);


/* dsp driver callback apis
/* dsp driver callback apis
 * For playback: driver should call snd_compress_fragment_elapsed() to let the
 * For playback: driver should call snd_compress_fragment_elapsed() to let the
+12 −1
Original line number Original line Diff line number Diff line
@@ -945,6 +945,11 @@ static void snd_compress_proc_done(struct snd_compr *compr)
	snd_info_free_entry(compr->proc_root);
	snd_info_free_entry(compr->proc_root);
	compr->proc_root = NULL;
	compr->proc_root = NULL;
}
}

static inline void snd_compress_set_id(struct snd_compr *compr, const char *id)
{
	strlcpy(compr->id, id, sizeof(compr->id));
}
#else
#else
static inline int snd_compress_proc_init(struct snd_compr *compr)
static inline int snd_compress_proc_init(struct snd_compr *compr)
{
{
@@ -954,6 +959,10 @@ static inline int snd_compress_proc_init(struct snd_compr *compr)
static inline void snd_compress_proc_done(struct snd_compr *compr)
static inline void snd_compress_proc_done(struct snd_compr *compr)
{
{
}
}

static inline void snd_compress_set_id(struct snd_compr *compr, const char *id)
{
}
#endif
#endif


static int snd_compress_dev_free(struct snd_device *device)
static int snd_compress_dev_free(struct snd_device *device)
@@ -974,7 +983,7 @@ static int snd_compress_dev_free(struct snd_device *device)
 * @compr: compress device pointer
 * @compr: compress device pointer
 */
 */
int snd_compress_new(struct snd_card *card, int device,
int snd_compress_new(struct snd_card *card, int device,
			int dirn, struct snd_compr *compr)
			int dirn, const char *id, struct snd_compr *compr)
{
{
	static struct snd_device_ops ops = {
	static struct snd_device_ops ops = {
		.dev_free = snd_compress_dev_free,
		.dev_free = snd_compress_dev_free,
@@ -987,6 +996,8 @@ int snd_compress_new(struct snd_card *card, int device,
	compr->device = device;
	compr->device = device;
	compr->direction = dirn;
	compr->direction = dirn;


	snd_compress_set_id(compr, id);

	snd_device_initialize(&compr->dev, card);
	snd_device_initialize(&compr->dev, card);
	dev_set_name(&compr->dev, "comprC%iD%i", card->number, device);
	dev_set_name(&compr->dev, "comprC%iD%i", card->number, device);


+7 −1
Original line number Original line Diff line number Diff line
@@ -689,7 +689,13 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
		compr->ops->copy = soc_compr_copy;
		compr->ops->copy = soc_compr_copy;


	mutex_init(&compr->lock);
	mutex_init(&compr->lock);
	ret = snd_compress_new(rtd->card->snd_card, num, direction, compr);

	snprintf(new_name, sizeof(new_name), "%s %s-%d",
		 rtd->dai_link->stream_name,
		 rtd->codec_dai->name, num);

	ret = snd_compress_new(rtd->card->snd_card, num, direction,
				new_name, compr);
	if (ret < 0) {
	if (ret < 0) {
		pr_err("compress asoc: can't create compress for codec %s\n",
		pr_err("compress asoc: can't create compress for codec %s\n",
			codec->component.name);
			codec->component.name);