diff options
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/soc-dapm.h | 49 | ||||
-rw-r--r-- | include/sound/soc.h | 9 |
2 files changed, 38 insertions, 20 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h index 8fd3b41b763f..5881876e8f5b 100644 --- a/include/sound/soc-dapm.h +++ b/include/sound/soc-dapm.h | |||
@@ -297,6 +297,7 @@ enum snd_soc_dapm_type; | |||
297 | struct snd_soc_dapm_path; | 297 | struct snd_soc_dapm_path; |
298 | struct snd_soc_dapm_pin; | 298 | struct snd_soc_dapm_pin; |
299 | struct snd_soc_dapm_route; | 299 | struct snd_soc_dapm_route; |
300 | struct snd_soc_dapm_context; | ||
300 | 301 | ||
301 | int dapm_reg_event(struct snd_soc_dapm_widget *w, | 302 | int dapm_reg_event(struct snd_soc_dapm_widget *w, |
302 | struct snd_kcontrol *kcontrol, int event); | 303 | struct snd_kcontrol *kcontrol, int event); |
@@ -324,16 +325,16 @@ int snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol, | |||
324 | struct snd_ctl_elem_value *uncontrol); | 325 | struct snd_ctl_elem_value *uncontrol); |
325 | int snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol, | 326 | int snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol, |
326 | struct snd_ctl_elem_value *uncontrol); | 327 | struct snd_ctl_elem_value *uncontrol); |
327 | int snd_soc_dapm_new_control(struct snd_soc_codec *codec, | 328 | int snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm, |
328 | const struct snd_soc_dapm_widget *widget); | 329 | const struct snd_soc_dapm_widget *widget); |
329 | int snd_soc_dapm_new_controls(struct snd_soc_codec *codec, | 330 | int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, |
330 | const struct snd_soc_dapm_widget *widget, | 331 | const struct snd_soc_dapm_widget *widget, |
331 | int num); | 332 | int num); |
332 | 333 | ||
333 | /* dapm path setup */ | 334 | /* dapm path setup */ |
334 | int snd_soc_dapm_new_widgets(struct snd_soc_codec *codec); | 335 | int snd_soc_dapm_new_widgets(struct snd_soc_dapm_context *dapm); |
335 | void snd_soc_dapm_free(struct snd_soc_codec *codec); | 336 | void snd_soc_dapm_free(struct snd_soc_dapm_context *dapm); |
336 | int snd_soc_dapm_add_routes(struct snd_soc_codec *codec, | 337 | int snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm, |
337 | const struct snd_soc_dapm_route *route, int num); | 338 | const struct snd_soc_dapm_route *route, int num); |
338 | 339 | ||
339 | /* dapm events */ | 340 | /* dapm events */ |
@@ -343,17 +344,21 @@ void snd_soc_dapm_shutdown(struct snd_soc_card *card); | |||
343 | 344 | ||
344 | /* dapm sys fs - used by the core */ | 345 | /* dapm sys fs - used by the core */ |
345 | int snd_soc_dapm_sys_add(struct device *dev); | 346 | int snd_soc_dapm_sys_add(struct device *dev); |
346 | void snd_soc_dapm_debugfs_init(struct snd_soc_codec *codec); | 347 | void snd_soc_dapm_debugfs_init(struct snd_soc_dapm_context *dapm); |
347 | 348 | ||
348 | /* dapm audio pin control and status */ | 349 | /* dapm audio pin control and status */ |
349 | int snd_soc_dapm_enable_pin(struct snd_soc_codec *codec, const char *pin); | 350 | int snd_soc_dapm_enable_pin(struct snd_soc_dapm_context *dapm, |
350 | int snd_soc_dapm_disable_pin(struct snd_soc_codec *codec, const char *pin); | 351 | const char *pin); |
351 | int snd_soc_dapm_nc_pin(struct snd_soc_codec *codec, const char *pin); | 352 | int snd_soc_dapm_disable_pin(struct snd_soc_dapm_context *dapm, |
352 | int snd_soc_dapm_get_pin_status(struct snd_soc_codec *codec, const char *pin); | 353 | const char *pin); |
353 | int snd_soc_dapm_sync(struct snd_soc_codec *codec); | 354 | int snd_soc_dapm_nc_pin(struct snd_soc_dapm_context *dapm, const char *pin); |
354 | int snd_soc_dapm_force_enable_pin(struct snd_soc_codec *codec, | 355 | int snd_soc_dapm_get_pin_status(struct snd_soc_dapm_context *dapm, |
356 | const char *pin); | ||
357 | int snd_soc_dapm_sync(struct snd_soc_dapm_context *dapm); | ||
358 | int snd_soc_dapm_force_enable_pin(struct snd_soc_dapm_context *dapm, | ||
355 | const char *pin); | 359 | const char *pin); |
356 | int snd_soc_dapm_ignore_suspend(struct snd_soc_codec *codec, const char *pin); | 360 | int snd_soc_dapm_ignore_suspend(struct snd_soc_dapm_context *dapm, |
361 | const char *pin); | ||
357 | 362 | ||
358 | /* dapm widget types */ | 363 | /* dapm widget types */ |
359 | enum snd_soc_dapm_type { | 364 | enum snd_soc_dapm_type { |
@@ -425,6 +430,7 @@ struct snd_soc_dapm_widget { | |||
425 | char *sname; /* stream name */ | 430 | char *sname; /* stream name */ |
426 | struct snd_soc_codec *codec; | 431 | struct snd_soc_codec *codec; |
427 | struct list_head list; | 432 | struct list_head list; |
433 | struct snd_soc_dapm_context *dapm; | ||
428 | 434 | ||
429 | /* dapm control */ | 435 | /* dapm control */ |
430 | short reg; /* negative reg = no direct dapm */ | 436 | short reg; /* negative reg = no direct dapm */ |
@@ -461,4 +467,21 @@ struct snd_soc_dapm_widget { | |||
461 | struct list_head power_list; | 467 | struct list_head power_list; |
462 | }; | 468 | }; |
463 | 469 | ||
470 | /* DAPM context */ | ||
471 | struct snd_soc_dapm_context { | ||
472 | u32 pop_time; | ||
473 | struct list_head widgets; | ||
474 | struct list_head paths; | ||
475 | enum snd_soc_bias_level bias_level; | ||
476 | enum snd_soc_bias_level suspend_bias_level; | ||
477 | struct delayed_work delayed_work; | ||
478 | unsigned int idle_bias_off:1; /* Use BIAS_OFF instead of STANDBY */ | ||
479 | |||
480 | struct device *dev; /* from parent - for debug */ | ||
481 | struct snd_soc_codec *codec; /* parent codec */ | ||
482 | #ifdef CONFIG_DEBUG_FS | ||
483 | struct dentry *debugfs_dapm; | ||
484 | #endif | ||
485 | }; | ||
486 | |||
464 | #endif | 487 | #endif |
diff --git a/include/sound/soc.h b/include/sound/soc.h index aaf34d7cd95e..b048e08e2cc7 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
@@ -238,6 +238,7 @@ struct soc_enum; | |||
238 | struct snd_soc_ac97_ops; | 238 | struct snd_soc_ac97_ops; |
239 | struct snd_soc_jack; | 239 | struct snd_soc_jack; |
240 | struct snd_soc_jack_pin; | 240 | struct snd_soc_jack_pin; |
241 | #include <sound/soc-dapm.h> | ||
241 | 242 | ||
242 | #ifdef CONFIG_GPIOLIB | 243 | #ifdef CONFIG_GPIOLIB |
243 | struct snd_soc_jack_gpio; | 244 | struct snd_soc_jack_gpio; |
@@ -436,7 +437,6 @@ struct snd_soc_codec { | |||
436 | /* runtime */ | 437 | /* runtime */ |
437 | struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */ | 438 | struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */ |
438 | unsigned int active; | 439 | unsigned int active; |
439 | unsigned int idle_bias_off:1; /* Use BIAS_OFF instead of STANDBY */ | ||
440 | unsigned int cache_only:1; /* Suppress writes to hardware */ | 440 | unsigned int cache_only:1; /* Suppress writes to hardware */ |
441 | unsigned int cache_sync:1; /* Cache needs to be synced to hardware */ | 441 | unsigned int cache_sync:1; /* Cache needs to be synced to hardware */ |
442 | unsigned int suspended:1; /* Codec is in suspend PM state */ | 442 | unsigned int suspended:1; /* Codec is in suspend PM state */ |
@@ -452,12 +452,7 @@ struct snd_soc_codec { | |||
452 | void *reg_cache; | 452 | void *reg_cache; |
453 | 453 | ||
454 | /* dapm */ | 454 | /* dapm */ |
455 | u32 pop_time; | 455 | struct snd_soc_dapm_context dapm; |
456 | struct list_head dapm_widgets; | ||
457 | struct list_head dapm_paths; | ||
458 | enum snd_soc_bias_level bias_level; | ||
459 | enum snd_soc_bias_level suspend_bias_level; | ||
460 | struct delayed_work delayed_work; | ||
461 | 456 | ||
462 | #ifdef CONFIG_DEBUG_FS | 457 | #ifdef CONFIG_DEBUG_FS |
463 | struct dentry *debugfs_codec_root; | 458 | struct dentry *debugfs_codec_root; |