mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
ALSA: hda: hda_component: Add pre and post playback hooks to hda_component
These hooks can be used to add callbacks that would be run before and after the main playback hooks. These hooks would be called for all amps, before moving on to the next hook, i.e. pre_playback_hook would be called for all amps, before the playback_hook is called for all amps, then finally the post_playback_hook is called for all amps. Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230721151816.2080453-8-sbinding@opensource.cirrus.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
a5adbfb60b
commit
4eae4892c5
@ -15,5 +15,7 @@ struct hda_component {
|
||||
struct device *dev;
|
||||
char name[HDA_MAX_NAME_SIZE];
|
||||
struct hda_codec *codec;
|
||||
void (*pre_playback_hook)(struct device *dev, int action);
|
||||
void (*playback_hook)(struct device *dev, int action);
|
||||
void (*post_playback_hook)(struct device *dev, int action);
|
||||
};
|
||||
|
@ -6700,9 +6700,17 @@ static void comp_generic_playback_hook(struct hda_pcm_stream *hinfo, struct hda_
|
||||
int i;
|
||||
|
||||
for (i = 0; i < HDA_MAX_COMPONENTS; i++) {
|
||||
if (spec->comps[i].dev)
|
||||
if (spec->comps[i].dev && spec->comps[i].pre_playback_hook)
|
||||
spec->comps[i].pre_playback_hook(spec->comps[i].dev, action);
|
||||
}
|
||||
for (i = 0; i < HDA_MAX_COMPONENTS; i++) {
|
||||
if (spec->comps[i].dev && spec->comps[i].playback_hook)
|
||||
spec->comps[i].playback_hook(spec->comps[i].dev, action);
|
||||
}
|
||||
for (i = 0; i < HDA_MAX_COMPONENTS; i++) {
|
||||
if (spec->comps[i].dev && spec->comps[i].post_playback_hook)
|
||||
spec->comps[i].post_playback_hook(spec->comps[i].dev, action);
|
||||
}
|
||||
}
|
||||
|
||||
struct cs35l41_dev_name {
|
||||
|
Loading…
Reference in New Issue
Block a user