aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound/core.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sound/core.h')
-rw-r--r--include/sound/core.h44
1 files changed, 9 insertions, 35 deletions
diff --git a/include/sound/core.h b/include/sound/core.h
index 1df3f2fe5350..da5748289968 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -109,6 +109,7 @@ struct snd_card {
109 private data */ 109 private data */
110 struct list_head devices; /* devices */ 110 struct list_head devices; /* devices */
111 111
112 struct device ctl_dev; /* control device */
112 unsigned int last_numid; /* last used numeric ID */ 113 unsigned int last_numid; /* last used numeric ID */
113 struct rw_semaphore controls_rwsem; /* controls list lock */ 114 struct rw_semaphore controls_rwsem; /* controls list lock */
114 rwlock_t ctl_files_rwlock; /* ctl_files list lock */ 115 rwlock_t ctl_files_rwlock; /* ctl_files list lock */
@@ -131,6 +132,7 @@ struct snd_card {
131 struct completion *release_completion; 132 struct completion *release_completion;
132 struct device *dev; /* device assigned to this card */ 133 struct device *dev; /* device assigned to this card */
133 struct device card_dev; /* cardX object for sysfs */ 134 struct device card_dev; /* cardX object for sysfs */
135 const struct attribute_group *dev_groups[4]; /* assigned sysfs attr */
134 bool registered; /* card_dev is registered? */ 136 bool registered; /* card_dev is registered? */
135 137
136#ifdef CONFIG_PM 138#ifdef CONFIG_PM
@@ -206,43 +208,13 @@ extern struct class *sound_class;
206 208
207void snd_request_card(int card); 209void snd_request_card(int card);
208 210
209int snd_register_device_for_dev(int type, struct snd_card *card, 211void snd_device_initialize(struct device *dev, struct snd_card *card);
210 int dev,
211 const struct file_operations *f_ops,
212 void *private_data,
213 const char *name,
214 struct device *device);
215 212
216/** 213int snd_register_device(int type, struct snd_card *card, int dev,
217 * snd_register_device - Register the ALSA device file for the card 214 const struct file_operations *f_ops,
218 * @type: the device type, SNDRV_DEVICE_TYPE_XXX 215 void *private_data, struct device *device);
219 * @card: the card instance 216int snd_unregister_device(struct device *dev);
220 * @dev: the device index
221 * @f_ops: the file operations
222 * @private_data: user pointer for f_ops->open()
223 * @name: the device file name
224 *
225 * Registers an ALSA device file for the given card.
226 * The operators have to be set in reg parameter.
227 *
228 * This function uses the card's device pointer to link to the
229 * correct &struct device.
230 *
231 * Return: Zero if successful, or a negative error code on failure.
232 */
233static inline int snd_register_device(int type, struct snd_card *card, int dev,
234 const struct file_operations *f_ops,
235 void *private_data,
236 const char *name)
237{
238 return snd_register_device_for_dev(type, card, dev, f_ops,
239 private_data, name,
240 snd_card_get_device_link(card));
241}
242
243int snd_unregister_device(int type, struct snd_card *card, int dev);
244void *snd_lookup_minor_data(unsigned int minor, int type); 217void *snd_lookup_minor_data(unsigned int minor, int type);
245struct device *snd_get_device(int type, struct snd_card *card, int dev);
246 218
247#ifdef CONFIG_SND_OSSEMUL 219#ifdef CONFIG_SND_OSSEMUL
248int snd_register_oss_device(int type, struct snd_card *card, int dev, 220int snd_register_oss_device(int type, struct snd_card *card, int dev,
@@ -291,6 +263,8 @@ void snd_card_set_id(struct snd_card *card, const char *id);
291int snd_card_register(struct snd_card *card); 263int snd_card_register(struct snd_card *card);
292int snd_card_info_init(void); 264int snd_card_info_init(void);
293int snd_card_info_done(void); 265int snd_card_info_done(void);
266int snd_card_add_dev_attr(struct snd_card *card,
267 const struct attribute_group *group);
294int snd_component_add(struct snd_card *card, const char *component); 268int snd_component_add(struct snd_card *card, const char *component);
295int snd_card_file_add(struct snd_card *card, struct file *file); 269int snd_card_file_add(struct snd_card *card, struct file *file);
296int snd_card_file_remove(struct snd_card *card, struct file *file); 270int snd_card_file_remove(struct snd_card *card, struct file *file);