diff options
Diffstat (limited to 'include/sound/soc-dapm.h')
| -rw-r--r-- | include/sound/soc-dapm.h | 49 |
1 files changed, 36 insertions, 13 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 |
