aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-01-30 02:16:35 -0500
committerTakashi Iwai <tiwai@suse.de>2015-02-02 08:42:45 -0500
commit04c5d5a430fca046cffac099a3f41e74816939da (patch)
treeef729f9772a7bd0673dede15fb64a62d8e3e6284
parent5205388d2d6dbdc5cb743c4e3f61acb9a5e5794f (diff)
ALSA: compress: Embed struct device
Like previous patches, this one embeds the struct device into struct snd_compr. As the dev field wasn't used beforehand, it's reused as the new device struct. Reviewed-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--include/sound/compress_driver.h4
-rw-r--r--sound/core/compress_offload.c24
2 files changed, 21 insertions, 7 deletions
diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
index 396e8f73670a..1d0593b52573 100644
--- a/include/sound/compress_driver.h
+++ b/include/sound/compress_driver.h
@@ -134,7 +134,7 @@ struct snd_compr_ops {
134/** 134/**
135 * struct snd_compr: Compressed device 135 * struct snd_compr: Compressed device
136 * @name: DSP device name 136 * @name: DSP device name
137 * @dev: Device pointer 137 * @dev: associated device instance
138 * @ops: pointer to DSP callbacks 138 * @ops: pointer to DSP callbacks
139 * @private_data: pointer to DSP pvt data 139 * @private_data: pointer to DSP pvt data
140 * @card: sound card pointer 140 * @card: sound card pointer
@@ -144,7 +144,7 @@ struct snd_compr_ops {
144 */ 144 */
145struct snd_compr { 145struct snd_compr {
146 const char *name; 146 const char *name;
147 struct device *dev; 147 struct device dev;
148 struct snd_compr_ops *ops; 148 struct snd_compr_ops *ops;
149 void *private_data; 149 void *private_data;
150 struct snd_card *card; 150 struct snd_card *card;
diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
index 89028fab64fd..cb58c3f7f80c 100644
--- a/sound/core/compress_offload.c
+++ b/sound/core/compress_offload.c
@@ -868,12 +868,13 @@ static int snd_compress_dev_register(struct snd_device *device)
868 return -EBADFD; 868 return -EBADFD;
869 compr = device->device_data; 869 compr = device->device_data;
870 870
871 sprintf(str, "comprC%iD%i", compr->card->number, compr->device);
872 pr_debug("reg %s for device %s, direction %d\n", str, compr->name, 871 pr_debug("reg %s for device %s, direction %d\n", str, compr->name,
873 compr->direction); 872 compr->direction);
874 /* register compressed device */ 873 /* register compressed device */
875 ret = snd_register_device(SNDRV_DEVICE_TYPE_COMPRESS, compr->card, 874 ret = snd_register_device_for_dev(SNDRV_DEVICE_TYPE_COMPRESS,
876 compr->device, &snd_compr_file_ops, compr, str); 875 compr->card, compr->device,
876 &snd_compr_file_ops, compr,
877 &compr->dev, NULL, NULL);
877 if (ret < 0) { 878 if (ret < 0) {
878 pr_err("snd_register_device failed\n %d", ret); 879 pr_err("snd_register_device failed\n %d", ret);
879 return ret; 880 return ret;
@@ -892,6 +893,15 @@ static int snd_compress_dev_disconnect(struct snd_device *device)
892 return 0; 893 return 0;
893} 894}
894 895
896static int snd_compress_dev_free(struct snd_device *device)
897{
898 struct snd_compr *compr;
899
900 compr = device->device_data;
901 put_device(&compr->dev);
902 return 0;
903}
904
895/* 905/*
896 * snd_compress_new: create new compress device 906 * snd_compress_new: create new compress device
897 * @card: sound card pointer 907 * @card: sound card pointer
@@ -903,7 +913,7 @@ int snd_compress_new(struct snd_card *card, int device,
903 int dirn, struct snd_compr *compr) 913 int dirn, struct snd_compr *compr)
904{ 914{
905 static struct snd_device_ops ops = { 915 static struct snd_device_ops ops = {
906 .dev_free = NULL, 916 .dev_free = snd_compress_dev_free,
907 .dev_register = snd_compress_dev_register, 917 .dev_register = snd_compress_dev_register,
908 .dev_disconnect = snd_compress_dev_disconnect, 918 .dev_disconnect = snd_compress_dev_disconnect,
909 }; 919 };
@@ -911,6 +921,10 @@ int snd_compress_new(struct snd_card *card, int device,
911 compr->card = card; 921 compr->card = card;
912 compr->device = device; 922 compr->device = device;
913 compr->direction = dirn; 923 compr->direction = dirn;
924
925 snd_device_initialize(&compr->dev, card);
926 dev_set_name(&compr->dev, "comprC%iD%i", card->number, device);
927
914 return snd_device_new(card, SNDRV_DEV_COMPRESS, compr, &ops); 928 return snd_device_new(card, SNDRV_DEV_COMPRESS, compr, &ops);
915} 929}
916EXPORT_SYMBOL_GPL(snd_compress_new); 930EXPORT_SYMBOL_GPL(snd_compress_new);
@@ -948,7 +962,7 @@ int snd_compress_register(struct snd_compr *device)
948{ 962{
949 int retval; 963 int retval;
950 964
951 if (device->name == NULL || device->dev == NULL || device->ops == NULL) 965 if (device->name == NULL || device->ops == NULL)
952 return -EINVAL; 966 return -EINVAL;
953 967
954 pr_debug("Registering compressed device %s\n", device->name); 968 pr_debug("Registering compressed device %s\n", device->name);