linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Add ACPI table for the ts3a227e driver
@ 2017-05-02 10:11 Thierry Escande
  2017-05-02 10:11 ` [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization Thierry Escande
  2017-05-02 10:11 ` [PATCH 2/2] ASoC: ts3a227e: add acpi table Thierry Escande
  0 siblings, 2 replies; 7+ messages in thread
From: Thierry Escande @ 2017-05-02 10:11 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel, linux-kernel

Hi,

This series adds ACPI match table for the ts3a227e driver. The ts3a227e
is an Autonomous Audio Accessory Detection and Configuration Switch used
to detect audio accessory features like jack plugging and unplugging,
mic presence, and button pressed events.

This series also fixes a null pointer dereference occurring in the
TI max9890 driver when the ts3a227e hardware is present and its driver
probed. The jack detection was enabled in the ts3a227e driver before the
jack structure was allocated, causing the null pointer access.

Regards,
 Thierry

Fang, Yang A (1):
  ASoC: ts3a227e: add acpi table

Thierry Escande (1):
  ASoc: cht_bsw_max98090_ti: Fix jack initialization

 sound/soc/codecs/ts3a227e.c                  | 10 ++++++
 sound/soc/intel/boards/cht_bsw_max98090_ti.c | 52 +++++++++++++++++-----------
 2 files changed, 41 insertions(+), 21 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization
  2017-05-02 10:11 [PATCH 0/2] Add ACPI table for the ts3a227e driver Thierry Escande
@ 2017-05-02 10:11 ` Thierry Escande
  2017-05-04 17:01   ` [alsa-devel] " Pierre-Louis Bossart
  2017-05-02 10:11 ` [PATCH 2/2] ASoC: ts3a227e: add acpi table Thierry Escande
  1 sibling, 1 reply; 7+ messages in thread
From: Thierry Escande @ 2017-05-02 10:11 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel, linux-kernel

If the ts3a227e audio accessory detection hardware is present and its
driver probed, the jack needs to be created before enabling jack
detection in the ts3a227e driver. With this patch, the jack is
instantiated in the max98090 headset init function if the ts3a227e is
present. This fixes a null pointer dereference as the jack detection
enabling function in the ts3a driver was called before the jack is
created.

Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
---
 sound/soc/intel/boards/cht_bsw_max98090_ti.c | 50 +++++++++++++++++-----------
 1 file changed, 30 insertions(+), 20 deletions(-)

diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
index 742bc0d..f17e474 100644
--- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
+++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
@@ -128,30 +128,21 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
 	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
 	struct snd_soc_jack *jack = &ctx->jack;
 
-	/**
-	* TI supports 4 butons headset detection
-	* KEY_MEDIA
-	* KEY_VOICECOMMAND
-	* KEY_VOLUMEUP
-	* KEY_VOLUMEDOWN
-	*/
-	if (ctx->ts3a227e_present)
-		jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
-					SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-					SND_JACK_BTN_2 | SND_JACK_BTN_3;
-	else
-		jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
+	if (ctx->ts3a227e_present) {
+		/*
+		 * The jack has already been created in the
+		 * cht_max98090_headset_init() function.
+		 */
+		snd_soc_jack_notifier_register(jack, &cht_jack_nb);
+		return 0;
+	}
+
+	jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
 
 	ret = snd_soc_card_jack_new(runtime->card, "Headset Jack",
 					jack_type, jack, NULL, 0);
-
-	if (ret) {
+	if (ret)
 		dev_err(runtime->dev, "Headset Jack creation failed %d\n", ret);
-		return ret;
-	}
-
-	if (ctx->ts3a227e_present)
-		snd_soc_jack_notifier_register(jack, &cht_jack_nb);
 
 	return ret;
 }
@@ -200,6 +191,25 @@ static int cht_max98090_headset_init(struct snd_soc_component *component)
 {
 	struct snd_soc_card *card = component->card;
 	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(card);
+	struct snd_soc_jack *jack = &ctx->jack;
+	int jack_type;
+	int ret;
+
+	/*
+	 * TI supports 4 butons headset detection
+	 * KEY_MEDIA
+	 * KEY_VOICECOMMAND
+	 * KEY_VOLUMEUP
+	 * KEY_VOLUMEDOWN
+	 */
+	jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
+		    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
+		    SND_JACK_BTN_2 | SND_JACK_BTN_3;
+
+	ret = snd_soc_card_jack_new(card, "Headset Jack", jack_type,
+				    jack, NULL, 0);
+	if (ret)
+		return ret;
 
 	return ts3a227e_enable_jack_detect(component, &ctx->jack);
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] ASoC: ts3a227e: add acpi table
  2017-05-02 10:11 [PATCH 0/2] Add ACPI table for the ts3a227e driver Thierry Escande
  2017-05-02 10:11 ` [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization Thierry Escande
@ 2017-05-02 10:11 ` Thierry Escande
  2017-09-19 13:45   ` Applied "ASoC: ts3a227e: add acpi table" to the asoc tree Mark Brown
  1 sibling, 1 reply; 7+ messages in thread
From: Thierry Escande @ 2017-05-02 10:11 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel, linux-kernel

From: "Fang, Yang A" <yang.a.fang@intel.com>

This patch adds the acpi match table for the ts3a227e audio accessory
detection device. This enables headset features like jack plug/unplug
notifications, mic presence, and button pressed events.

Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
---
 sound/soc/codecs/ts3a227e.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/sound/soc/codecs/ts3a227e.c b/sound/soc/codecs/ts3a227e.c
index 4356843..738e04b 100644
--- a/sound/soc/codecs/ts3a227e.c
+++ b/sound/soc/codecs/ts3a227e.c
@@ -15,6 +15,7 @@
 #include <linux/module.h>
 #include <linux/of_gpio.h>
 #include <linux/regmap.h>
+#include <linux/acpi.h>
 
 #include <sound/core.h>
 #include <sound/jack.h>
@@ -374,11 +375,20 @@ static const struct of_device_id ts3a227e_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, ts3a227e_of_match);
 
+#ifdef CONFIG_ACPI
+static struct acpi_device_id ts3a227e_acpi_match[] = {
+	{ "104C227E", 0 },
+	{},
+};
+MODULE_DEVICE_TABLE(acpi, ts3a227e_acpi_match);
+#endif
+
 static struct i2c_driver ts3a227e_driver = {
 	.driver = {
 		.name = "ts3a227e",
 		.pm = &ts3a227e_pm,
 		.of_match_table = of_match_ptr(ts3a227e_of_match),
+		.acpi_match_table = ACPI_PTR(ts3a227e_acpi_match),
 	},
 	.probe = ts3a227e_i2c_probe,
 	.id_table = ts3a227e_i2c_ids,
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization
  2017-05-02 10:11 ` [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization Thierry Escande
@ 2017-05-04 17:01   ` Pierre-Louis Bossart
  2017-05-05 12:37     ` Thierry Escande
  0 siblings, 1 reply; 7+ messages in thread
From: Pierre-Louis Bossart @ 2017-05-04 17:01 UTC (permalink / raw)
  To: Thierry Escande, Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel, linux-kernel

On 05/02/2017 05:11 AM, Thierry Escande wrote:

> If the ts3a227e audio accessory detection hardware is present and its
> driver probed, the jack needs to be created before enabling jack
> detection in the ts3a227e driver. With this patch, the jack is
> instantiated in the max98090 headset init function if the ts3a227e is
> present. This fixes a null pointer dereference as the jack detection
> enabling function in the ts3a driver was called before the jack is
> created.
is this in any way related to 
https://bugzilla.kernel.org/show_bug.cgi?id=151521
" Sound not working on Acer Chromebook R11 (CYAN) braswell / cherryview 
/ cherry trail"

I provided a similar patch and didn't see any followup. 
https://bugzilla.kernel.org/attachment.cgi?id=254867
Thanks
-Pierre

>
> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
> ---
>   sound/soc/intel/boards/cht_bsw_max98090_ti.c | 50 +++++++++++++++++-----------
>   1 file changed, 30 insertions(+), 20 deletions(-)
>
> diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
> index 742bc0d..f17e474 100644
> --- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
> +++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
> @@ -128,30 +128,21 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
>   	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
>   	struct snd_soc_jack *jack = &ctx->jack;
>   
> -	/**
> -	* TI supports 4 butons headset detection
> -	* KEY_MEDIA
> -	* KEY_VOICECOMMAND
> -	* KEY_VOLUMEUP
> -	* KEY_VOLUMEDOWN
> -	*/
> -	if (ctx->ts3a227e_present)
> -		jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
> -					SND_JACK_BTN_0 | SND_JACK_BTN_1 |
> -					SND_JACK_BTN_2 | SND_JACK_BTN_3;
> -	else
> -		jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
> +	if (ctx->ts3a227e_present) {
> +		/*
> +		 * The jack has already been created in the
> +		 * cht_max98090_headset_init() function.
> +		 */
> +		snd_soc_jack_notifier_register(jack, &cht_jack_nb);
> +		return 0;
> +	}
> +
> +	jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
>   
>   	ret = snd_soc_card_jack_new(runtime->card, "Headset Jack",
>   					jack_type, jack, NULL, 0);
> -
> -	if (ret) {
> +	if (ret)
>   		dev_err(runtime->dev, "Headset Jack creation failed %d\n", ret);
> -		return ret;
> -	}
> -
> -	if (ctx->ts3a227e_present)
> -		snd_soc_jack_notifier_register(jack, &cht_jack_nb);
>   
>   	return ret;
>   }
> @@ -200,6 +191,25 @@ static int cht_max98090_headset_init(struct snd_soc_component *component)
>   {
>   	struct snd_soc_card *card = component->card;
>   	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(card);
> +	struct snd_soc_jack *jack = &ctx->jack;
> +	int jack_type;
> +	int ret;
> +
> +	/*
> +	 * TI supports 4 butons headset detection
> +	 * KEY_MEDIA
> +	 * KEY_VOICECOMMAND
> +	 * KEY_VOLUMEUP
> +	 * KEY_VOLUMEDOWN
> +	 */
> +	jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
> +		    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
> +		    SND_JACK_BTN_2 | SND_JACK_BTN_3;
> +
> +	ret = snd_soc_card_jack_new(card, "Headset Jack", jack_type,
> +				    jack, NULL, 0);
> +	if (ret)
> +		return ret;
>   
>   	return ts3a227e_enable_jack_detect(component, &ctx->jack);
>   }

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization
  2017-05-04 17:01   ` [alsa-devel] " Pierre-Louis Bossart
@ 2017-05-05 12:37     ` Thierry Escande
  2017-05-05 16:14       ` Pierre-Louis Bossart
  0 siblings, 1 reply; 7+ messages in thread
From: Thierry Escande @ 2017-05-05 12:37 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Jaroslav Kysela, Takashi Iwai
  Cc: alsa-devel, linux-kernel

Hi,

On 04/05/2017 19:01, Pierre-Louis Bossart wrote:
> On 05/02/2017 05:11 AM, Thierry Escande wrote:
>
>> If the ts3a227e audio accessory detection hardware is present and its
>> driver probed, the jack needs to be created before enabling jack
>> detection in the ts3a227e driver. With this patch, the jack is
>> instantiated in the max98090 headset init function if the ts3a227e is
>> present. This fixes a null pointer dereference as the jack detection
>> enabling function in the ts3a driver was called before the jack is
>> created.
> is this in any way related to
> https://bugzilla.kernel.org/show_bug.cgi?id=151521
> " Sound not working on Acer Chromebook R11 (CYAN) braswell / cherryview
> / cherry trail"
>
> I provided a similar patch and didn't see any followup.
> https://bugzilla.kernel.org/attachment.cgi?id=254867
> Thanks
> -Pierre

That's the exact same issue.

I fixed it by creating the jack in the aux_dev .init() function since 
it's how this is done in the rockchip max98090 driver.

Regards,
  Thierry

>
>>
>> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
>> ---
>>   sound/soc/intel/boards/cht_bsw_max98090_ti.c | 50
>> +++++++++++++++++-----------
>>   1 file changed, 30 insertions(+), 20 deletions(-)
>>
>> diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>> b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>> index 742bc0d..f17e474 100644
>> --- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>> +++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>> @@ -128,30 +128,21 @@ static int cht_codec_init(struct
>> snd_soc_pcm_runtime *runtime)
>>       struct cht_mc_private *ctx =
>> snd_soc_card_get_drvdata(runtime->card);
>>       struct snd_soc_jack *jack = &ctx->jack;
>>   -    /**
>> -    * TI supports 4 butons headset detection
>> -    * KEY_MEDIA
>> -    * KEY_VOICECOMMAND
>> -    * KEY_VOLUMEUP
>> -    * KEY_VOLUMEDOWN
>> -    */
>> -    if (ctx->ts3a227e_present)
>> -        jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
>> -                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
>> -                    SND_JACK_BTN_2 | SND_JACK_BTN_3;
>> -    else
>> -        jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
>> +    if (ctx->ts3a227e_present) {
>> +        /*
>> +         * The jack has already been created in the
>> +         * cht_max98090_headset_init() function.
>> +         */
>> +        snd_soc_jack_notifier_register(jack, &cht_jack_nb);
>> +        return 0;
>> +    }
>> +
>> +    jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
>>         ret = snd_soc_card_jack_new(runtime->card, "Headset Jack",
>>                       jack_type, jack, NULL, 0);
>> -
>> -    if (ret) {
>> +    if (ret)
>>           dev_err(runtime->dev, "Headset Jack creation failed %d\n",
>> ret);
>> -        return ret;
>> -    }
>> -
>> -    if (ctx->ts3a227e_present)
>> -        snd_soc_jack_notifier_register(jack, &cht_jack_nb);
>>         return ret;
>>   }
>> @@ -200,6 +191,25 @@ static int cht_max98090_headset_init(struct
>> snd_soc_component *component)
>>   {
>>       struct snd_soc_card *card = component->card;
>>       struct cht_mc_private *ctx = snd_soc_card_get_drvdata(card);
>> +    struct snd_soc_jack *jack = &ctx->jack;
>> +    int jack_type;
>> +    int ret;
>> +
>> +    /*
>> +     * TI supports 4 butons headset detection
>> +     * KEY_MEDIA
>> +     * KEY_VOICECOMMAND
>> +     * KEY_VOLUMEUP
>> +     * KEY_VOLUMEDOWN
>> +     */
>> +    jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
>> +            SND_JACK_BTN_0 | SND_JACK_BTN_1 |
>> +            SND_JACK_BTN_2 | SND_JACK_BTN_3;
>> +
>> +    ret = snd_soc_card_jack_new(card, "Headset Jack", jack_type,
>> +                    jack, NULL, 0);
>> +    if (ret)
>> +        return ret;
>>         return ts3a227e_enable_jack_detect(component, &ctx->jack);
>>   }
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization
  2017-05-05 12:37     ` Thierry Escande
@ 2017-05-05 16:14       ` Pierre-Louis Bossart
  0 siblings, 0 replies; 7+ messages in thread
From: Pierre-Louis Bossart @ 2017-05-05 16:14 UTC (permalink / raw)
  To: Thierry Escande, Jaroslav Kysela, Takashi Iwai; +Cc: alsa-devel, linux-kernel

On 5/5/17 7:37 AM, Thierry Escande wrote:
> Hi,
>
> On 04/05/2017 19:01, Pierre-Louis Bossart wrote:
>> On 05/02/2017 05:11 AM, Thierry Escande wrote:
>>
>>> If the ts3a227e audio accessory detection hardware is present and its
>>> driver probed, the jack needs to be created before enabling jack
>>> detection in the ts3a227e driver. With this patch, the jack is
>>> instantiated in the max98090 headset init function if the ts3a227e is
>>> present. This fixes a null pointer dereference as the jack detection
>>> enabling function in the ts3a driver was called before the jack is
>>> created.
>> is this in any way related to
>> https://bugzilla.kernel.org/show_bug.cgi?id=151521
>> " Sound not working on Acer Chromebook R11 (CYAN) braswell / cherryview
>> / cherry trail"
>>
>> I provided a similar patch and didn't see any followup.
>> https://bugzilla.kernel.org/attachment.cgi?id=254867
>> Thanks
>> -Pierre
>
> That's the exact same issue.
>
> I fixed it by creating the jack in the aux_dev .init() function since
> it's how this is done in the rockchip max98090 driver.

ok, so do you get sound on Cyan chromebooks with these two fixes?
it'd be worth adding a reference to the bugzilla # in the commit message.

>
> Regards,
>  Thierry
>
>>
>>>
>>> Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
>>> ---
>>>   sound/soc/intel/boards/cht_bsw_max98090_ti.c | 50
>>> +++++++++++++++++-----------
>>>   1 file changed, 30 insertions(+), 20 deletions(-)
>>>
>>> diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>>> b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>>> index 742bc0d..f17e474 100644
>>> --- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>>> +++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
>>> @@ -128,30 +128,21 @@ static int cht_codec_init(struct
>>> snd_soc_pcm_runtime *runtime)
>>>       struct cht_mc_private *ctx =
>>> snd_soc_card_get_drvdata(runtime->card);
>>>       struct snd_soc_jack *jack = &ctx->jack;
>>>   -    /**
>>> -    * TI supports 4 butons headset detection
>>> -    * KEY_MEDIA
>>> -    * KEY_VOICECOMMAND
>>> -    * KEY_VOLUMEUP
>>> -    * KEY_VOLUMEDOWN
>>> -    */
>>> -    if (ctx->ts3a227e_present)
>>> -        jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
>>> -                    SND_JACK_BTN_0 | SND_JACK_BTN_1 |
>>> -                    SND_JACK_BTN_2 | SND_JACK_BTN_3;
>>> -    else
>>> -        jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
>>> +    if (ctx->ts3a227e_present) {
>>> +        /*
>>> +         * The jack has already been created in the
>>> +         * cht_max98090_headset_init() function.
>>> +         */
>>> +        snd_soc_jack_notifier_register(jack, &cht_jack_nb);
>>> +        return 0;
>>> +    }
>>> +
>>> +    jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
>>>         ret = snd_soc_card_jack_new(runtime->card, "Headset Jack",
>>>                       jack_type, jack, NULL, 0);
>>> -
>>> -    if (ret) {
>>> +    if (ret)
>>>           dev_err(runtime->dev, "Headset Jack creation failed %d\n",
>>> ret);
>>> -        return ret;
>>> -    }
>>> -
>>> -    if (ctx->ts3a227e_present)
>>> -        snd_soc_jack_notifier_register(jack, &cht_jack_nb);
>>>         return ret;
>>>   }
>>> @@ -200,6 +191,25 @@ static int cht_max98090_headset_init(struct
>>> snd_soc_component *component)
>>>   {
>>>       struct snd_soc_card *card = component->card;
>>>       struct cht_mc_private *ctx = snd_soc_card_get_drvdata(card);
>>> +    struct snd_soc_jack *jack = &ctx->jack;
>>> +    int jack_type;
>>> +    int ret;
>>> +
>>> +    /*
>>> +     * TI supports 4 butons headset detection
>>> +     * KEY_MEDIA
>>> +     * KEY_VOICECOMMAND
>>> +     * KEY_VOLUMEUP
>>> +     * KEY_VOLUMEDOWN
>>> +     */
>>> +    jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
>>> +            SND_JACK_BTN_0 | SND_JACK_BTN_1 |
>>> +            SND_JACK_BTN_2 | SND_JACK_BTN_3;
>>> +
>>> +    ret = snd_soc_card_jack_new(card, "Headset Jack", jack_type,
>>> +                    jack, NULL, 0);
>>> +    if (ret)
>>> +        return ret;
>>>         return ts3a227e_enable_jack_detect(component, &ctx->jack);
>>>   }
>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Applied "ASoC: ts3a227e: add acpi table" to the asoc tree
  2017-05-02 10:11 ` [PATCH 2/2] ASoC: ts3a227e: add acpi table Thierry Escande
@ 2017-09-19 13:45   ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2017-09-19 13:45 UTC (permalink / raw)
  To: Fang, Yang A
  Cc: Fang Yang A, Thierry Escande, Pierre-Louis Bossart, Mark Brown,
	Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-kernel,
	alsa-devel

The patch

   ASoC: ts3a227e: add acpi table

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

>From a10953f5d33b2334c8fb1799084ab49347a59821 Mon Sep 17 00:00:00 2001
From: "Fang, Yang A" <yang.a.fang@intel.com>
Date: Fri, 8 Sep 2017 00:13:07 -0500
Subject: [PATCH] ASoC: ts3a227e: add acpi table

This patch adds the acpi match table for the ts3a227e audio accessory
detection device. This enables headset features like jack plug/unplug
notifications, mic presence, and button pressed events.

Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Acked-By: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/codecs/ts3a227e.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/sound/soc/codecs/ts3a227e.c b/sound/soc/codecs/ts3a227e.c
index 43568435c208..738e04b09116 100644
--- a/sound/soc/codecs/ts3a227e.c
+++ b/sound/soc/codecs/ts3a227e.c
@@ -15,6 +15,7 @@
 #include <linux/module.h>
 #include <linux/of_gpio.h>
 #include <linux/regmap.h>
+#include <linux/acpi.h>
 
 #include <sound/core.h>
 #include <sound/jack.h>
@@ -374,11 +375,20 @@ static const struct of_device_id ts3a227e_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, ts3a227e_of_match);
 
+#ifdef CONFIG_ACPI
+static struct acpi_device_id ts3a227e_acpi_match[] = {
+	{ "104C227E", 0 },
+	{},
+};
+MODULE_DEVICE_TABLE(acpi, ts3a227e_acpi_match);
+#endif
+
 static struct i2c_driver ts3a227e_driver = {
 	.driver = {
 		.name = "ts3a227e",
 		.pm = &ts3a227e_pm,
 		.of_match_table = of_match_ptr(ts3a227e_of_match),
+		.acpi_match_table = ACPI_PTR(ts3a227e_acpi_match),
 	},
 	.probe = ts3a227e_i2c_probe,
 	.id_table = ts3a227e_i2c_ids,
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-09-19 13:45 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-02 10:11 [PATCH 0/2] Add ACPI table for the ts3a227e driver Thierry Escande
2017-05-02 10:11 ` [PATCH 1/2] ASoc: cht_bsw_max98090_ti: Fix jack initialization Thierry Escande
2017-05-04 17:01   ` [alsa-devel] " Pierre-Louis Bossart
2017-05-05 12:37     ` Thierry Escande
2017-05-05 16:14       ` Pierre-Louis Bossart
2017-05-02 10:11 ` [PATCH 2/2] ASoC: ts3a227e: add acpi table Thierry Escande
2017-09-19 13:45   ` Applied "ASoC: ts3a227e: add acpi table" to the asoc tree Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).