Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-11-21 Thread Pierre-Louis Bossart

On 11/21/17 3:30 AM, Carlo Caione wrote:

On Thu, Nov 16, 2017 at 1:53 PM, Carlo Caione  wrote:

On Wed, Oct 18, 2017 at 7:05 PM, Pierre-Louis Bossart
 wrote:

On 10/18/17 11:49 AM, Carlo Caione wrote:


From: Carlo Caione 

Introduce a new custom dapm routes map to quirk platforms with the
internal mic connected to IN2P.



LGTM. If we start getting more quirks for this codec, we should think of
adding a module parameters to select them from the command line or with
modprobe (as done in other machine drivers).


Hey Pierre,
I'm currently working on a laptop (always with the rt5651 codec)
having two separate internal mics (on IN1P and IN2P) and the headset
on IN3P. I was thinking how to describe this situation in the current
driver without having to add all the 6 different configuration as
quirks. Any suggestion?



The microphone configurations are not handled with a mask but an enum 
and the BYT_RT5651_MAP() macro. You can just add a new configuration 
such at BYT_RT5651_IN1_IN2 which uses the analog mics on those two and 
implicitly use IN3 for the headset. I don't see the point of handling 
all possible permutations at this point.


Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-11-21 Thread Pierre-Louis Bossart

On 11/21/17 3:30 AM, Carlo Caione wrote:

On Thu, Nov 16, 2017 at 1:53 PM, Carlo Caione  wrote:

On Wed, Oct 18, 2017 at 7:05 PM, Pierre-Louis Bossart
 wrote:

On 10/18/17 11:49 AM, Carlo Caione wrote:


From: Carlo Caione 

Introduce a new custom dapm routes map to quirk platforms with the
internal mic connected to IN2P.



LGTM. If we start getting more quirks for this codec, we should think of
adding a module parameters to select them from the command line or with
modprobe (as done in other machine drivers).


Hey Pierre,
I'm currently working on a laptop (always with the rt5651 codec)
having two separate internal mics (on IN1P and IN2P) and the headset
on IN3P. I was thinking how to describe this situation in the current
driver without having to add all the 6 different configuration as
quirks. Any suggestion?



The microphone configurations are not handled with a mask but an enum 
and the BYT_RT5651_MAP() macro. You can just add a new configuration 
such at BYT_RT5651_IN1_IN2 which uses the analog mics on those two and 
implicitly use IN3 for the headset. I don't see the point of handling 
all possible permutations at this point.


Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-11-21 Thread Carlo Caione
On Thu, Nov 16, 2017 at 1:53 PM, Carlo Caione  wrote:
> On Wed, Oct 18, 2017 at 7:05 PM, Pierre-Louis Bossart
>  wrote:
>> On 10/18/17 11:49 AM, Carlo Caione wrote:
>>>
>>> From: Carlo Caione 
>>>
>>> Introduce a new custom dapm routes map to quirk platforms with the
>>> internal mic connected to IN2P.
>>
>>
>> LGTM. If we start getting more quirks for this codec, we should think of
>> adding a module parameters to select them from the command line or with
>> modprobe (as done in other machine drivers).
>
> Hey Pierre,
> I'm currently working on a laptop (always with the rt5651 codec)
> having two separate internal mics (on IN1P and IN2P) and the headset
> on IN3P. I was thinking how to describe this situation in the current
> driver without having to add all the 6 different configuration as
> quirks. Any suggestion?

gentle ping on this question.

cheers,

-- 
Carlo Caione


Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-11-21 Thread Carlo Caione
On Thu, Nov 16, 2017 at 1:53 PM, Carlo Caione  wrote:
> On Wed, Oct 18, 2017 at 7:05 PM, Pierre-Louis Bossart
>  wrote:
>> On 10/18/17 11:49 AM, Carlo Caione wrote:
>>>
>>> From: Carlo Caione 
>>>
>>> Introduce a new custom dapm routes map to quirk platforms with the
>>> internal mic connected to IN2P.
>>
>>
>> LGTM. If we start getting more quirks for this codec, we should think of
>> adding a module parameters to select them from the command line or with
>> modprobe (as done in other machine drivers).
>
> Hey Pierre,
> I'm currently working on a laptop (always with the rt5651 codec)
> having two separate internal mics (on IN1P and IN2P) and the headset
> on IN3P. I was thinking how to describe this situation in the current
> driver without having to add all the 6 different configuration as
> quirks. Any suggestion?

gentle ping on this question.

cheers,

-- 
Carlo Caione


Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-11-16 Thread Carlo Caione
On Wed, Oct 18, 2017 at 7:05 PM, Pierre-Louis Bossart
 wrote:
> On 10/18/17 11:49 AM, Carlo Caione wrote:
>>
>> From: Carlo Caione 
>>
>> Introduce a new custom dapm routes map to quirk platforms with the
>> internal mic connected to IN2P.
>
>
> LGTM. If we start getting more quirks for this codec, we should think of
> adding a module parameters to select them from the command line or with
> modprobe (as done in other machine drivers).

Hey Pierre,
I'm currently working on a laptop (always with the rt5651 codec)
having two separate internal mics (on IN1P and IN2P) and the headset
on IN3P. I was thinking how to describe this situation in the current
driver without having to add all the 6 different configuration as
quirks. Any suggestion?

Cheers,

-- 
Carlo Caione


Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-11-16 Thread Carlo Caione
On Wed, Oct 18, 2017 at 7:05 PM, Pierre-Louis Bossart
 wrote:
> On 10/18/17 11:49 AM, Carlo Caione wrote:
>>
>> From: Carlo Caione 
>>
>> Introduce a new custom dapm routes map to quirk platforms with the
>> internal mic connected to IN2P.
>
>
> LGTM. If we start getting more quirks for this codec, we should think of
> adding a module parameters to select them from the command line or with
> modprobe (as done in other machine drivers).

Hey Pierre,
I'm currently working on a laptop (always with the rt5651 codec)
having two separate internal mics (on IN1P and IN2P) and the headset
on IN3P. I was thinking how to describe this situation in the current
driver without having to add all the 6 different configuration as
quirks. Any suggestion?

Cheers,

-- 
Carlo Caione


Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-10-18 Thread Pierre-Louis Bossart

On 10/18/17 11:49 AM, Carlo Caione wrote:

From: Carlo Caione 

Introduce a new custom dapm routes map to quirk platforms with the
internal mic connected to IN2P.


LGTM. If we start getting more quirks for this codec, we should think of 
adding a module parameters to select them from the command line or with 
modprobe (as done in other machine drivers).


Reviewed-by: Pierre-Louis Bossart 



Signed-off-by: Carlo Caione 
---
  sound/soc/intel/boards/bytcr_rt5651.c | 16 +++-
  1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/sound/soc/intel/boards/bytcr_rt5651.c 
b/sound/soc/intel/boards/bytcr_rt5651.c
index 3076bfc0db5e..1dad5c98c9ef 100644
--- a/sound/soc/intel/boards/bytcr_rt5651.c
+++ b/sound/soc/intel/boards/bytcr_rt5651.c
@@ -37,6 +37,7 @@
  enum {
BYT_RT5651_DMIC_MAP,
BYT_RT5651_IN1_MAP,
+   BYT_RT5651_IN2_MAP,
  };
  
  #define BYT_RT5651_MAP(quirk)	((quirk) & GENMASK(7, 0))

@@ -58,6 +59,8 @@ static void log_quirks(struct device *dev)
dev_info(dev, "quirk DMIC_MAP enabled");
if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_IN1_MAP)
dev_info(dev, "quirk IN1_MAP enabled");
+   if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_IN2_MAP)
+   dev_info(dev, "quirk IN2_MAP enabled");
if (byt_rt5651_quirk & BYT_RT5651_DMIC_EN)
dev_info(dev, "quirk DMIC enabled");
if (byt_rt5651_quirk & BYT_RT5651_MCLK_EN)
@@ -143,7 +146,6 @@ static const struct snd_soc_dapm_route 
byt_rt5651_audio_map[] = {
{"ssp2 Rx", NULL, "AIF1 Capture"},
  
  	{"Headset Mic", NULL, "micbias1"}, /* lowercase for rt5651 */

-   {"IN2P", NULL, "Headset Mic"},
{"Headphone", NULL, "HPOL"},
{"Headphone", NULL, "HPOR"},
{"Speaker", NULL, "LOUTL"},
@@ -151,15 +153,23 @@ static const struct snd_soc_dapm_route 
byt_rt5651_audio_map[] = {
  };
  
  static const struct snd_soc_dapm_route byt_rt5651_intmic_dmic_map[] = {

+   {"IN2P", NULL, "Headset Mic"},
{"DMIC L1", NULL, "Internal Mic"},
{"DMIC R1", NULL, "Internal Mic"},
  };
  
  static const struct snd_soc_dapm_route byt_rt5651_intmic_in1_map[] = {

{"Internal Mic", NULL, "micbias1"},
+   {"IN2P", NULL, "Headset Mic"},
{"IN1P", NULL, "Internal Mic"},
  };
  
+static const struct snd_soc_dapm_route byt_rt5651_intmic_in2_map[] = {

+   {"Internal Mic", NULL, "micbias1"},
+   {"IN1P", NULL, "Headset Mic"},
+   {"IN2P", NULL, "Internal Mic"},
+};
+
  static const struct snd_kcontrol_new byt_rt5651_controls[] = {
SOC_DAPM_PIN_SWITCH("Headphone"),
SOC_DAPM_PIN_SWITCH("Headset Mic"),
@@ -246,6 +256,10 @@ static int byt_rt5651_init(struct snd_soc_pcm_runtime 
*runtime)
custom_map = byt_rt5651_intmic_in1_map;
num_routes = ARRAY_SIZE(byt_rt5651_intmic_in1_map);
break;
+   case BYT_RT5651_IN2_MAP:
+   custom_map = byt_rt5651_intmic_in2_map;
+   num_routes = ARRAY_SIZE(byt_rt5651_intmic_in2_map);
+   break;
default:
custom_map = byt_rt5651_intmic_dmic_map;
num_routes = ARRAY_SIZE(byt_rt5651_intmic_dmic_map);





Re: [alsa-devel] [PATCH] SoC: intel: byt: Introduce new custom IN2 map

2017-10-18 Thread Pierre-Louis Bossart

On 10/18/17 11:49 AM, Carlo Caione wrote:

From: Carlo Caione 

Introduce a new custom dapm routes map to quirk platforms with the
internal mic connected to IN2P.


LGTM. If we start getting more quirks for this codec, we should think of 
adding a module parameters to select them from the command line or with 
modprobe (as done in other machine drivers).


Reviewed-by: Pierre-Louis Bossart 



Signed-off-by: Carlo Caione 
---
  sound/soc/intel/boards/bytcr_rt5651.c | 16 +++-
  1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/sound/soc/intel/boards/bytcr_rt5651.c 
b/sound/soc/intel/boards/bytcr_rt5651.c
index 3076bfc0db5e..1dad5c98c9ef 100644
--- a/sound/soc/intel/boards/bytcr_rt5651.c
+++ b/sound/soc/intel/boards/bytcr_rt5651.c
@@ -37,6 +37,7 @@
  enum {
BYT_RT5651_DMIC_MAP,
BYT_RT5651_IN1_MAP,
+   BYT_RT5651_IN2_MAP,
  };
  
  #define BYT_RT5651_MAP(quirk)	((quirk) & GENMASK(7, 0))

@@ -58,6 +59,8 @@ static void log_quirks(struct device *dev)
dev_info(dev, "quirk DMIC_MAP enabled");
if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_IN1_MAP)
dev_info(dev, "quirk IN1_MAP enabled");
+   if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_IN2_MAP)
+   dev_info(dev, "quirk IN2_MAP enabled");
if (byt_rt5651_quirk & BYT_RT5651_DMIC_EN)
dev_info(dev, "quirk DMIC enabled");
if (byt_rt5651_quirk & BYT_RT5651_MCLK_EN)
@@ -143,7 +146,6 @@ static const struct snd_soc_dapm_route 
byt_rt5651_audio_map[] = {
{"ssp2 Rx", NULL, "AIF1 Capture"},
  
  	{"Headset Mic", NULL, "micbias1"}, /* lowercase for rt5651 */

-   {"IN2P", NULL, "Headset Mic"},
{"Headphone", NULL, "HPOL"},
{"Headphone", NULL, "HPOR"},
{"Speaker", NULL, "LOUTL"},
@@ -151,15 +153,23 @@ static const struct snd_soc_dapm_route 
byt_rt5651_audio_map[] = {
  };
  
  static const struct snd_soc_dapm_route byt_rt5651_intmic_dmic_map[] = {

+   {"IN2P", NULL, "Headset Mic"},
{"DMIC L1", NULL, "Internal Mic"},
{"DMIC R1", NULL, "Internal Mic"},
  };
  
  static const struct snd_soc_dapm_route byt_rt5651_intmic_in1_map[] = {

{"Internal Mic", NULL, "micbias1"},
+   {"IN2P", NULL, "Headset Mic"},
{"IN1P", NULL, "Internal Mic"},
  };
  
+static const struct snd_soc_dapm_route byt_rt5651_intmic_in2_map[] = {

+   {"Internal Mic", NULL, "micbias1"},
+   {"IN1P", NULL, "Headset Mic"},
+   {"IN2P", NULL, "Internal Mic"},
+};
+
  static const struct snd_kcontrol_new byt_rt5651_controls[] = {
SOC_DAPM_PIN_SWITCH("Headphone"),
SOC_DAPM_PIN_SWITCH("Headset Mic"),
@@ -246,6 +256,10 @@ static int byt_rt5651_init(struct snd_soc_pcm_runtime 
*runtime)
custom_map = byt_rt5651_intmic_in1_map;
num_routes = ARRAY_SIZE(byt_rt5651_intmic_in1_map);
break;
+   case BYT_RT5651_IN2_MAP:
+   custom_map = byt_rt5651_intmic_in2_map;
+   num_routes = ARRAY_SIZE(byt_rt5651_intmic_in2_map);
+   break;
default:
custom_map = byt_rt5651_intmic_dmic_map;
num_routes = ARRAY_SIZE(byt_rt5651_intmic_dmic_map);