Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05ab5f0d authored by Vaibhav Agarwal's avatar Vaibhav Agarwal Committed by Greg Kroah-Hartman
Browse files

greybus: audio: Identify jack type based on attributes reported



Originally, idea was to use widget_type to identify jack_type.
However, suggestive way is to identify jack based on jack
attributes.

Changes already exists in codec FW to report jack attributes.

Signed-off-by: default avatarVaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: default avatarMark Greer <mgreer@animalcreek.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 475f498b
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ static int gbaudio_request_jack(struct gbaudio_module_info *module,
	int report, button_status;

	dev_warn(module->dev, "Jack Event received: type: %u, event: %u\n",
		 req->widget_type, req->event);
		 req->jack_attribute, req->event);

	mutex_lock(&module->lock);
	if (req->event == GB_AUDIO_JACK_EVENT_REMOVAL) {
@@ -43,18 +43,9 @@ static int gbaudio_request_jack(struct gbaudio_module_info *module,
		return 0;
	}

	report &= ~GBCODEC_JACK_MASK;
	/* currently supports Headphone, Headset & Lineout only */
	if (req->widget_type && GB_AUDIO_WIDGET_TYPE_HP)
		report |=  SND_JACK_HEADPHONE & GBCODEC_JACK_MASK;

	if (req->widget_type && GB_AUDIO_WIDGET_TYPE_MIC)
		report = SND_JACK_MICROPHONE & GBCODEC_JACK_MASK;

	if (req->widget_type && GB_AUDIO_WIDGET_TYPE_LINE)
		report = (report & GBCODEC_JACK_MASK) |
			SND_JACK_LINEOUT | SND_JACK_LINEIN;

	report &= ~GBCODEC_JACK_MASK;
	report |= req->jack_attribute & GBCODEC_JACK_MASK;
	if (module->jack_type)
		dev_warn(module->dev, "Modifying jack from %d to %d\n",
			 module->jack_type, report);