ASoC: Intel: Support rt5650 codec for Cherrytrail & Braswell
Subsystems (3)
PATCH 1/2 ASoC: Intel: Support rt5650 codec for Cherrytrail & Braswell
From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the cht_bsw_rt5645 driver
--- sound/soc/intel/Kconfig | 7 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 108 +++++++++++++++++++++++++------ 2 files changed, 94 insertions(+), 21 deletions(-)
sound/soc/intel/Kconfig +4 -3
@@ -112,12 +112,13 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH If unsure select "N". config SND_SOC_INTEL_CHT_BSW_RT5645_MACH - tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645 codec" - depends on X86_INTEL_LPSS + tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec" + depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS + select SND_SOC_INTEL_BAYTRAIL select SND_SOC_RT5645 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell - platforms with RT5645 audio codec. + platforms with RT5645/5650 audio codec. If unsure select "N".
sound/soc/intel/boards/cht_bsw_rt5645.c +90 -18
175 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH 2/2 ASoC: Intel: Add support rt5650 in sst driver
From: "Fang, Yang A" <[email protected]>
Added entry in sst driver to support rt5650 codec
for intel Braswell platform.
--- sound/soc/intel/atom/sst/sst_acpi.c | 2 ++ 1 file changed, 2 insertions(+)
sound/soc/intel/atom/sst/sst_acpi.c +2 -0
@@ -354,6 +354,8 @@ static struct sst_machines sst_acpi_chv[] = { &chv_platform_data }, {"10EC5645" ,"cht-bsw" ,"cht-bsw-rt5645" ,NULL ,"intel/fw_sst_22a8.bin" , &chv_platform_data }, + {"10EC5650", "cht-bsw", "cht-bsw-rt5645", NULL, "intel/fw_sst_22a8.bin", + &chv_platform_data }, {}, };
Signature · 1 line
1.7.9.5
Re: [PATCH 2/2] ASoC: Intel: Add support rt5650 in sst driver
Quoted 4 lines · On Tue, Apr 21, 2015 at 04:36:00PM -0700, [email protected] wrote:
From: "Fang, Yang A" <[email protected]>
Added entry in sst driver to support rt5650 codec
for intel Braswell platform.
Applied, thanks.
Quoted 15 lines · On Tue, Apr 21, 2015 at 04:35:59PM -0700, [email protected] wrote:
From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the
cht_bsw_rt5645driverSigned-off-by Fang, Yang A <[email protected]>--- sound/soc/intel/Kconfig | 7 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 108 +++++++++++++++++++++++++------ 2 files changed, 94 insertions(+), 21 deletions(-)sound/soc/intel/Kconfig +0
-0
sound/soc/intel/Kconfig config SND_SOC_INTEL_CHT_BSW_RT5672_MACH · line 116
Quoted 7 lines
sound/soc/intel/Kconfig +2
-2@@ -112,12 +112,13 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH If unsure select "N". config SND_SOC_INTEL_CHT_BSW_RT5645_MACH - tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645 codec" - depends on X86_INTEL_LPSS + tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec" + depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS
why this additional depends, it should be selecting SND_SOC_INTEL_SST?
Quoted 76 lines
sound/soc/intel/Kconfig +2
-1+ select SND_SOC_INTEL_BAYTRAIL select SND_SOC_RT5645 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell - platforms with RT5645 audio codec. + platforms with RT5645/5650 audio codec. If unsure select "N".sound/soc/intel/boards/cht_bsw_rt5645.c +30
-1@@ -21,6 +21,7 @@*/ #include <linux/module.h> +#include <linux/acpi.h> #include <linux/platform_device.h> #include <linux/slab.h> #include <sound/pcm.h> @@ -33,9 +34,16 @@#define CHT_PLAT_CLK_3_HZ 19200000#define CHT_CODEC_DAI "rt5645-aif1" +struct cht_acpi_card { +char *codec_id; +int codec_type; +struct snd_soc_card *soc_card; +}; +struct cht_mc_private {struct snd_soc_jack hp_jack;struct snd_soc_jack mic_jack; +struct cht_acpi_card *acpi_card; };static inline struct snd_soc_dai *cht_get_codec_dai (struct snd_soc_card *card)@@ -94,7 +102,7 @@ static const struct snd_soc_dapm_widget cht_dapm_widgets[] = { platform_clock_control, SND_SOC_DAPM_POST_PMD), }; -static const struct snd_soc_dapm_route cht_audio_map[] = { +static const struct snd_soc_dapm_route cht_5645_audio_map[] = { {"IN1P" ,NULL ,"Headset Mic" }, {"IN1N" ,NULL ,"Headset Mic" }, {"DMIC L1" ,NULL ,"Int Mic" },@@ -115,6 +123,27 @@ static const struct snd_soc_dapm_route cht_audio_map[] = { {"Ext Spk", NULL, "Platform Clock"}, }; +static const struct snd_soc_dapm_route cht_5650_audio_map[] = { + {"IN1P" ,NULL ,"Headset Mic" }, + {"IN1N" ,NULL ,"Headset Mic" }, + {"DMIC L2" ,NULL ,"Int Mic" }, + {"DMIC R2" ,NULL ,"Int Mic" }, + {"Headphone" ,NULL ,"HPOL" }, + {"Headphone" ,NULL ,"HPOR" }, + {"Ext Spk" ,NULL ,"SPOL" }, + {"Ext Spk" ,NULL ,"SPOR" }, + {"AIF1 Playback" ,NULL ,"ssp2 Tx" }, + {"ssp2 Tx" ,NULL ,"codec_out0" }, + {"ssp2 Tx" ,NULL ,"codec_out1" }, + {"codec_in0" ,NULL ,"ssp2 Rx" }, + {"codec_in1" ,NULL ,"ssp2 Rx" }, + {"ssp2 Rx" ,NULL ,"AIF1 Capture" }, + {"Headphone" ,NULL ,"Platform Clock" }, + {"Headset Mic" ,NULL ,"Platform Clock" }, + {"Int Mic" ,NULL ,"Platform Clock" }, + {"Ext Spk" ,NULL ,"Platform Clock" }, +}; +static const struct snd_kcontrol_new cht_mc_controls[] = {SOC_DAPM_PIN_SWITCH ("Headphone" ), SOC_DAPM_PIN_SWITCH("Headset Mic"),
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 242
Quoted 4 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +0
-1@@ -239,7 +268,7 @@ static struct snd_soc_dai_link cht_dailink[] = { .codec_dai_name = "snd-soc-dummy-dai", .codec_name = "snd-soc-dummy", .platform_name = "sst-mfld-platform", - .ignore_suspend = 1,
why removing this?
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 271
Quoted 1 line
sound/soc/intel/boards/cht_bsw_rt5645.c +1
-0+ .nonatomic = true,
Did you test the older device with this flag set
Quoted 40 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +15
-11.dynamic = 1, .dpcm_playback = 1, .dpcm_capture = 1,@@ -267,7 +296,7 @@ static struct snd_soc_dai_link cht_dailink[] = { | SND_SOC_DAIFMT_CBS_CFS, .init = cht_codec_init, .be_hw_params_fixup = cht_codec_fixup, - .ignore_suspend = 1, + .nonatomic = true, .dpcm_playback = 1, .dpcm_capture = 1, .ops = &cht_be_ssp2_ops,@@ -275,43 +304,86 @@ static struct snd_soc_dai_link cht_dailink[] = { };/* SoC card */ -static struct snd_soc_card snd_soc_card_cht = { - .name ="chtrt5645" , - .dai_link = cht_dailink, - .num_links =ARRAY_SIZE (cht_dailink), - .dapm_widgets = cht_dapm_widgets, - .num_dapm_widgets =ARRAY_SIZE (cht_dapm_widgets), - .dapm_routes = cht_audio_map, - .num_dapm_routes =ARRAY_SIZE (cht_audio_map), - .controls = cht_mc_controls, - .num_controls =ARRAY_SIZE (cht_mc_controls), +static struct snd_soc_card snd_soc_card_cht[] = { + { + .name ="chtrt5645" , + .dai_link = cht_dailink, + .num_links =ARRAY_SIZE (cht_dailink), + .dapm_widgets = cht_dapm_widgets, + .num_dapm_widgets =ARRAY_SIZE (cht_dapm_widgets), + .dapm_routes = cht_5645_audio_map, + .num_dapm_routes =ARRAY_SIZE (cht_5645_audio_map), + .controls = cht_mc_controls, + .num_controls =ARRAY_SIZE (cht_mc_controls), + }, + { + .name ="chtrt5650" ,
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 330
Quoted 10 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +9
-0+ .dai_link = cht_dailink, + .num_links = ARRAY_SIZE(cht_dailink), + .dapm_widgets = cht_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(cht_dapm_widgets), + .dapm_routes = cht_5650_audio_map, + .num_dapm_routes = ARRAY_SIZE(cht_5650_audio_map), + .controls = cht_mc_controls, + .num_controls = ARRAY_SIZE(cht_mc_controls), + } };
I dont find the arrays very userful here, it could have been two different structs too.
Quoted 11 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +10
-0+static struct cht_acpi_card snd_soc_cards[] = { + {"10EC5645" ,CODEC_TYPE_RT5645 , &snd_soc_card_cht[0 ]}, + {"10EC5650" ,CODEC_TYPE_RT5650 , &snd_soc_card_cht[1 ]}, +}; + +static acpi_status snd_acpi_codec_match (acpi_handle handle,u32 level, +void *context,void **ret) +{ + *(bool *)context = true; +return AE_OK ;
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 351
Quoted 10 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +6
-0+} +static int snd_cht_mc_probe (struct platform_device *pdev) {int ret_val =0 ; +int i;struct cht_mc_private *drv; +struct snd_soc_card *card = snd_soc_cards[0 ].soc_card; +bool found = false; +char codec_name[32 ];
i thought ACPI names we 3 + 4 chars only?
Signature · 1 line
~Vinod
Quoted 46 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +19
-5drv =devm_kzalloc (&pdev->dev,sizeof (*drv),GFP_ATOMIC );if (!drv)return -ENOMEM ; - snd_soc_card_cht.dev = &pdev->dev; -snd_soc_card_set_drvdata (&snd_soc_card_cht, drv); - ret_val =devm_snd_soc_register_card (&pdev->dev, &snd_soc_card_cht); +for (i =0 ; i <ARRAY_SIZE (snd_soc_cards); i++) { +if (ACPI_SUCCESS (acpi_get_devices ( + snd_soc_cards[i].codec_id, + snd_acpi_codec_match, + &found,NULL )) && found) { +dev_dbg (&pdev->dev, +"found codec %s\n" , snd_soc_cards[i].codec_id); + card = snd_soc_cards[i].soc_card; + drv->acpi_card = &snd_soc_cards[i]; +break ; + } + } + card->dev = &pdev->dev; +sprintf (codec_name,"i2c-%s:00" , drv->acpi_card->codec_id); +/* set correct codec name */ +strcpy ((char *)card->dai_link[2 ].codec_name, codec_name); +snd_soc_card_set_drvdata (card, drv); + ret_val =devm_snd_soc_register_card (&pdev->dev, card);if (ret_val) {dev_err (&pdev->dev,"snd_soc_register_card failed %d\n" , ret_val);return ret_val; } -platform_set_drvdata (pdev, &snd_soc_card_cht); +platform_set_drvdata (pdev, card);return ret_val; }static struct platform_driver snd_cht_mc_driver = { .driver = { .name ="cht-bsw-rt5645" , - .pm = &snd_soc_pm_ops, }, .probe = snd_cht_mc_probe, };Signature · 1 line
1.7.9.5
Quoted 18 lines · Vinod Koul
Quoted 17 lines · On Tue, Apr 21, 2015 at 04:35:59PM -0700, [email protected] wrote:
From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the
cht_bsw_rt5645driverSigned-off-by Fang, Yang A <[email protected]>--- sound/soc/intel/Kconfig | 7 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 108 +++++++++++++++++++++++++------ 2 files changed, 94 insertions(+), 21 deletions(-)sound/soc/intel/Kconfig +0
-0@@ -112,12 +112,13 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH If unsure select "N".
Quoted 6 lines
sound/soc/intel/Kconfig config SND_SOC_INTEL_CHT_BSW_RT5672_MACH · line 116
Quoted 5 lines
sound/soc/intel/Kconfig +2
-2config SND_SOC_INTEL_CHT_BSW_RT5645_MACH - tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645 codec" - depends on X86_INTEL_LPSS + tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec" + depends on SND_SOC_INTEL_SST && X86_INTEL_LPSSwhy this additional depends, it should be selecting
SND_SOC_INTEL_SST?
sure I can try that
Quoted 74 lines
Quoted 74 lines
sound/soc/intel/Kconfig +2
-1+ select SND_SOC_INTEL_BAYTRAIL select SND_SOC_RT5645 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell - platforms with RT5645 audio codec. + platforms with RT5645/5650 audio codec. If unsure select "N".sound/soc/intel/boards/cht_bsw_rt5645.c +30
-1@@ -21,6 +21,7 @@*/ #include <linux/module.h> +#include <linux/acpi.h> #include <linux/platform_device.h> #include <linux/slab.h> #include <sound/pcm.h> @@ -33,9 +34,16 @@#define CHT_PLAT_CLK_3_HZ 19200000#define CHT_CODEC_DAI "rt5645-aif1" +struct cht_acpi_card { +char *codec_id; +int codec_type; +struct snd_soc_card *soc_card; +}; +struct cht_mc_private {struct snd_soc_jack hp_jack;struct snd_soc_jack mic_jack; +struct cht_acpi_card *acpi_card; };static inline struct snd_soc_dai *cht_get_codec_dai (struct snd_soc_card *card)@@ -94,7 +102,7 @@ static const struct snd_soc_dapm_widget cht_dapm_widgets[] = { platform_clock_control, SND_SOC_DAPM_POST_PMD), }; -static const struct snd_soc_dapm_route cht_audio_map[] = { +static const struct snd_soc_dapm_route cht_5645_audio_map[] = { {"IN1P" ,NULL ,"Headset Mic" }, {"IN1N" ,NULL ,"Headset Mic" }, {"DMIC L1" ,NULL ,"Int Mic" },@@ -115,6 +123,27 @@ static const struct snd_soc_dapm_route cht_audio_map[] = { {"Ext Spk", NULL, "Platform Clock"}, }; +static const struct snd_soc_dapm_route cht_5650_audio_map[] = { + {"IN1P" ,NULL ,"Headset Mic" }, + {"IN1N" ,NULL ,"Headset Mic" }, + {"DMIC L2" ,NULL ,"Int Mic" }, + {"DMIC R2" ,NULL ,"Int Mic" }, + {"Headphone" ,NULL ,"HPOL" }, + {"Headphone" ,NULL ,"HPOR" }, + {"Ext Spk" ,NULL ,"SPOL" }, + {"Ext Spk" ,NULL ,"SPOR" }, + {"AIF1 Playback" ,NULL ,"ssp2 Tx" }, + {"ssp2 Tx" ,NULL ,"codec_out0" }, + {"ssp2 Tx" ,NULL ,"codec_out1" }, + {"codec_in0" ,NULL ,"ssp2 Rx" }, + {"codec_in1" ,NULL ,"ssp2 Rx" }, + {"ssp2 Rx" ,NULL ,"AIF1 Capture" }, + {"Headphone" ,NULL ,"Platform Clock" }, + {"Headset Mic" ,NULL ,"Platform Clock" }, + {"Int Mic" ,NULL ,"Platform Clock" }, + {"Ext Spk" ,NULL ,"Platform Clock" }, +} + static const struct snd_kcontrol_new cht_mc_controls[] = {
Quoted 8 lines
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 242
Quoted 7 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +0
-1SOC_DAPM_PIN_SWITCH ("Headphone" ), SOC_DAPM_PIN_SWITCH("Headset Mic"),@@ -239,7 +268,7 @@ static struct snd_soc_dai_link cht_dailink[] = { .codec_dai_name = "snd-soc-dummy-dai", .codec_name = "snd-soc-dummy", .platform_name = "sst-mfld-platform", - .ignore_suspend = 1,why removing this?
This is carrying the fix from below commit for rt5672 machine driver
commit 583e58a0f0e996008780fe4df0f7640890a9b69a
Author: Subhransu S. Prusty <[email protected]> Date: Tue Feb 24 11:39:46 2015 +0530
ASoC: Intel: Remove ignore suspend support
In our platform we want platform and codec driver routines to get
invoked
and don't need the machine routines so remove here
Quoted 3 lines
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 271
Quoted 2 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +1
-0+ .nonatomic = true,Did you test the older device with this flag set
will test it but expect same result since 5645 and 5650 are similar codec
Quoted 44 lines
Quoted 44 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +19
-11.dynamic = 1, .dpcm_playback = 1, .dpcm_capture = 1,@@ -267,7 +296,7 @@ static struct snd_soc_dai_link cht_dailink[] = { | SND_SOC_DAIFMT_CBS_CFS, .init = cht_codec_init, .be_hw_params_fixup = cht_codec_fixup, - .ignore_suspend = 1, + .nonatomic = true, .dpcm_playback = 1, .dpcm_capture = 1, .ops = &cht_be_ssp2_ops,@@ -275,43 +304,86 @@ static struct snd_soc_dai_link cht_dailink[] = { };/* SoC card */ -static struct snd_soc_card snd_soc_card_cht = { - .name ="chtrt5645" , - .dai_link = cht_dailink, - .num_links =ARRAY_SIZE (cht_dailink), - .dapm_widgets = cht_dapm_widgets, - .num_dapm_widgets =ARRAY_SIZE (cht_dapm_widgets), - .dapm_routes = cht_audio_map, - .num_dapm_routes =ARRAY_SIZE (cht_audio_map), - .controls = cht_mc_controls, - .num_controls =ARRAY_SIZE (cht_mc_controls), +static struct snd_soc_card snd_soc_card_cht[] = { + { + .name ="chtrt5645" , + .dai_link = cht_dailink, + .num_links =ARRAY_SIZE (cht_dailink), + .dapm_widgets = cht_dapm_widgets, + .num_dapm_widgets =ARRAY_SIZE (cht_dapm_widgets), + .dapm_routes = cht_5645_audio_map, + .num_dapm_routes =ARRAY_SIZE (cht_5645_audio_map), + .controls = cht_mc_controls, + .num_controls =ARRAY_SIZE (cht_mc_controls), + }, + { + .name ="chtrt5650" , + .dai_link = cht_dailink, + .num_links =ARRAY_SIZE (cht_dailink), + .dapm_widgets = cht_dapm_widgets, + .num_dapm_widgets =ARRAY_SIZE (cht_dapm_widgets),
Quoted 8 lines
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 330
Quoted 6 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +5
-0+ .dapm_routes = cht_5650_audio_map, + .num_dapm_routes = ARRAY_SIZE(cht_5650_audio_map), + .controls = cht_mc_controls, + .num_controls = ARRAY_SIZE(cht_mc_controls), + } };I dont find the arrays very userful here, it could have been two different structs too.
that also can be done.
Quoted 15 lines
Quoted 15 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +12
-0+static struct cht_acpi_card snd_soc_cards[] = { + {"10EC5645" ,CODEC_TYPE_RT5645 , &snd_soc_card_cht[0 ]}, + {"10EC5650" ,CODEC_TYPE_RT5650 , &snd_soc_card_cht[1 ]}, +}; + +static acpi_status snd_acpi_codec_match (acpi_handle handle,u32 level, +void *context,void **ret) +{ + *(bool *)context = true; +return AE_OK ; +} +static int snd_cht_mc_probe (struct platform_device *pdev)
Quoted 9 lines
sound/soc/intel/boards/cht_bsw_rt5645.c static struct snd_soc_dai_link cht_dailink[] = { · line 351
Quoted 7 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +4
-0{int ret_val =0 ; +int i;struct cht_mc_private *drv; +struct snd_soc_card *card = snd_soc_cards[0 ].soc_card; +bool found = false; +char codec_name[32 ];i thought ACPI names we 3 + 4 chars only?
the expected name is i2c-10EC5650:00 i could reduce the array size potentially.
Thanks,
Yang
Quoted 51 lines
Signature · 1 line
~VinodQuoted 46 lines
sound/soc/intel/boards/cht_bsw_rt5645.c +19
-5drv =devm_kzalloc (&pdev->dev,sizeof (*drv),GFP_ATOMIC );if (!drv)return -ENOMEM ; - snd_soc_card_cht.dev = &pdev->dev; -snd_soc_card_set_drvdata (&snd_soc_card_cht, drv); - ret_val =devm_snd_soc_register_card (&pdev->dev, &snd_soc_card_cht); +for (i =0 ; i <ARRAY_SIZE (snd_soc_cards); i++) { +if (ACPI_SUCCESS (acpi_get_devices ( + snd_soc_cards[i].codec_id, + snd_acpi_codec_match, + &found,NULL )) && found) { +dev_dbg (&pdev->dev, +"found codec %s\n" , snd_soc_cards[i].codec_id); + card = snd_soc_cards[i].soc_card; + drv->acpi_card = &snd_soc_cards[i]; +break ; + } + } + card->dev = &pdev->dev; +sprintf (codec_name,"i2c-%s:00" , drv->acpi_card->codec_id); +/* set correct codec name */ +strcpy ((char *)card->dai_link[2 ].codec_name, codec_name); +snd_soc_card_set_drvdata (card, drv); + ret_val =devm_snd_soc_register_card (&pdev->dev, card);if (ret_val) {dev_err (&pdev->dev,"snd_soc_register_card failed %d\n" , ret_val);return ret_val; } -platform_set_drvdata (pdev, &snd_soc_card_cht); +platform_set_drvdata (pdev, card);return ret_val; }static struct platform_driver snd_cht_mc_driver = { .driver = { .name ="cht-bsw-rt5645" , - .pm = &snd_soc_pm_ops, }, .probe = snd_cht_mc_probe, };Signature · 1 line
1.7.9.5
PATCH v2 1/1 ASoC: Intel: Support rt5650 codec for Cherrytrail & Braswell
In reply to [email protected]From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the cht_bsw_rt5645 driver
--- sound/soc/intel/Kconfig | 5 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 93 +++++++++++++++++++++++++++---- 2 files changed, 85 insertions(+), 13 deletions(-)
sound/soc/intel/Kconfig +3 -2
@@ -112,12 +112,13 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH If unsure select "N". config SND_SOC_INTEL_CHT_BSW_RT5645_MACH - tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645 codec" + tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec" depends on X86_INTEL_LPSS + select SND_SOC_INTEL_BAYTRAIL select SND_SOC_RT5645 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell - platforms with RT5645 audio codec. + platforms with RT5645/5650 audio codec. If unsure select "N".
sound/soc/intel/boards/cht_bsw_rt5645.c +82 -11
167 lines not on this page · raw message
Signature · 1 line
1.7.9.5
PATCH v3 1/1 ASoC: Intel: Support rt5650 codec for Cherrytrail & Braswell
In reply to [email protected]From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the cht_bsw_rt5645 driver
--- sound/soc/intel/Kconfig | 4 +- sound/soc/intel/boards/cht_bsw_rt5645.c | 93 +++++++++++++++++++++++++++---- 2 files changed, 84 insertions(+), 13 deletions(-)
sound/soc/intel/Kconfig +2 -2
@@ -112,12 +112,12 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH If unsure select "N". config SND_SOC_INTEL_CHT_BSW_RT5645_MACH - tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645 codec" + tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec" depends on X86_INTEL_LPSS select SND_SOC_RT5645 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell - platforms with RT5645 audio codec. + platforms with RT5645/5650 audio codec. If unsure select "N".
sound/soc/intel/boards/cht_bsw_rt5645.c +82 -11
167 lines not on this page · raw message
Signature · 1 line
1.7.9.5
Quoted 4 lines · On Thu, Apr 23, 2015 at 10:23:02AM -0700, [email protected] wrote:
From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the
cht_bsw_rt5645driver
Signature · 1 line
~Vinod
Quoted 3 lines · On Thu, Apr 23, 2015 at 10:23:02AM -0700, [email protected] wrote:
From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the
cht_bsw_rt5645driver
Applied, thanks.
Quoted 12 lines
-----Original Message-----
From: Mark Brown [mailto:[email protected]]
Sent: Friday, April 24, 2015 5:44 AM
To: Fang, Yang A
Cc: [email protected]; [email protected]; Koul, Vinod; [email protected]; Nujella, Sathyanarayana; Jain, Praveen K; Iriawan, Denny
Subject: Re: [PATCH v3] ASoC: Intel: Support rt5650 codec for Cherrytrail & Braswell
Quoted 6 lines
Quoted 3 lines · On Thu, Apr 23, 2015 at 10:23:02AM -0700, [email protected] wrote:
From: "Fang, Yang A" <[email protected]>
rt5650 and rt5645 are similar codec so reuse the
cht_bsw_rt5645driverApplied, thanks.
Hi Mark,
May I ask which branch you are applied? I did not find it in topic/intel or for-next.
Thanks,
Yang
Mark Brown
maintainerQuoted 2 lines · Yang A
May I ask which branch you are applied? I did not find it in topic/intel or for-next.
Applied means it's in my local tree, not that it's been published.