* [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
* 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
* [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
* 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).