aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/audio_module.c
diff options
context:
space:
mode:
authorVaibhav Agarwal <vaibhav.agarwal@linaro.org>2016-09-01 11:38:40 +0530
committerGreg Kroah-Hartman <gregkh@google.com>2016-09-02 14:13:39 +0200
commit847175e8e660045f9366e7efd091969e8f32cc0c (patch)
tree7ebb89db1f66f9c5191eae46f2af7468d65e9aa8 /drivers/staging/greybus/audio_module.c
parentgreybus: audio: Added jack_type support in topology struct (diff)
downloadlinux-dev-847175e8e660045f9366e7efd091969e8f32cc0c.tar.xz
linux-dev-847175e8e660045f9366e7efd091969e8f32cc0c.zip
greybus: audio: Fetch jack_mask, button_mask from module's topology data
Added extra fields namely jack_mask & button_mask for each module_info. These fields are required while registering jack & reporting jack events. Earlier, these were hard coded values assuming fixed capabilities say HEADSET, LINEOUT, etc. supported by GB-codec driver. Now these are computed dynamically based on module's jack capability shared via topology data. Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org> Reviewed-by: Mark Greer <mgreer@animalcreek.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/audio_module.c')
-rw-r--r--drivers/staging/greybus/audio_module.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/staging/greybus/audio_module.c b/drivers/staging/greybus/audio_module.c
index c2172719e687..f764f007b543 100644
--- a/drivers/staging/greybus/audio_module.c
+++ b/drivers/staging/greybus/audio_module.c
@@ -33,22 +33,22 @@ static int gbaudio_request_jack(struct gbaudio_module_info *module,
module->button_status = 0;
if (button_status)
snd_soc_jack_report(&module->button_jack, 0,
- GBCODEC_JACK_BUTTON_MASK);
+ module->button_mask);
snd_soc_jack_report(&module->headset_jack, 0,
- GBCODEC_JACK_MASK);
+ module->jack_mask);
return 0;
}
/* currently supports Headphone, Headset & Lineout only */
- report &= ~GBCODEC_JACK_MASK;
- report |= req->jack_attribute & GBCODEC_JACK_MASK;
+ report &= ~module->jack_mask;
+ report |= req->jack_attribute & module->jack_mask;
if (module->jack_type)
dev_warn_ratelimited(module->dev,
"Modifying jack from %d to %d\n",
module->jack_type, report);
module->jack_type = report;
- snd_soc_jack_report(&module->headset_jack, report, GBCODEC_JACK_MASK);
+ snd_soc_jack_report(&module->headset_jack, report, module->jack_mask);
return 0;
}
@@ -69,7 +69,7 @@ static int gbaudio_request_button(struct gbaudio_module_info *module,
return -EINVAL;
}
- report = module->button_status & GBCODEC_JACK_BUTTON_MASK;
+ report = module->button_status & module->button_mask;
switch (req->button_id) {
case 1:
@@ -100,8 +100,7 @@ static int gbaudio_request_button(struct gbaudio_module_info *module,
module->button_status = report;
- snd_soc_jack_report(&module->button_jack, report,
- GBCODEC_JACK_BUTTON_MASK);
+ snd_soc_jack_report(&module->button_jack, report, module->button_mask);
return 0;
}