From: Mauro Carvalho Chehab <mchehab@kernel.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: "Cezary Rojewski" <cezary.rojewski@intel.com>,
alsa-devel@alsa-project.org,
"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
"Bard Liao" <yung-chuan.liao@linux.intel.com>,
"Jie Yang" <yang.jie@linux.intel.com>,
"Takashi Iwai" <tiwai@suse.com>,
"Liam Girdwood" <liam.r.girdwood@linux.intel.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Mark Brown" <broonie@kernel.org>,
"Péter Ujfalusi" <peter.ujfalusi@linux.intel.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/2] ASoC: Intel: sof_es8336: support a separate gpio to control headphone
Date: Tue, 5 Apr 2022 17:37:01 +0200 [thread overview]
Message-ID: <20220405173701.1459b198@coco.lan> (raw)
In-Reply-To: <5df9bb3c-2346-f465-fcae-eb6fe381def3@linux.intel.com>
Em Tue, 5 Apr 2022 09:57:30 -0500
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> escreveu:
> On 4/5/22 03:44, Mauro Carvalho Chehab wrote:
> > From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> >
> > Some devices may use both gpio0 and gpio1 to independently switch
> > the speaker and the headphone.
> >
> > Add support for that.
> >
> > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> > ---
> >
> > See [PATCH v2 0/2] at: https://lore.kernel.org/all/cover.1649147890.git.mchehab@kernel.org/
> >
> > sound/soc/intel/boards/sof_es8336.c | 60 ++++++++++++++++++++++++-----
> > 1 file changed, 50 insertions(+), 10 deletions(-)
> >
> > diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c
> > index 5e0529aa4f1d..bcd80870d252 100644
> > --- a/sound/soc/intel/boards/sof_es8336.c
> > +++ b/sound/soc/intel/boards/sof_es8336.c
> > @@ -30,6 +30,7 @@
> > #define SOF_ES8336_TGL_GPIO_QUIRK BIT(4)
> > #define SOF_ES8336_ENABLE_DMIC BIT(5)
> > #define SOF_ES8336_JD_INVERTED BIT(6)
> > +#define SOF_ES8336_HEADPHONE_GPIO BIT(7)
> >
> > static unsigned long quirk;
> >
> > @@ -39,7 +40,7 @@ MODULE_PARM_DESC(quirk, "Board-specific quirk override");
> >
> > struct sof_es8336_private {
> > struct device *codec_dev;
> > - struct gpio_desc *gpio_pa;
> > + struct gpio_desc *gpio_pa, *gpio_pa_headphone;
> > struct snd_soc_jack jack;
> > struct list_head hdmi_pcm_list;
> > bool speaker_en;
> > @@ -51,15 +52,28 @@ struct sof_hdmi_pcm {
> > int device;
> > };
> >
> > -static const struct acpi_gpio_params pa_enable_gpio = { 0, 0, true };
> > +static const struct acpi_gpio_params pa_enable_gpio0 = { 0, 0, true };
> > +static const struct acpi_gpio_params pa_enable_gpio1 = { 1, 0, true };
> > +
> > static const struct acpi_gpio_mapping acpi_es8336_gpios[] = {
> > - { "pa-enable-gpios", &pa_enable_gpio, 1 },
> > + { "pa-enable-gpios", &pa_enable_gpio0, 1 },
> > { }
> > };
> >
> > -static const struct acpi_gpio_params quirk_pa_enable_gpio = { 1, 0, true };
> > static const struct acpi_gpio_mapping quirk_acpi_es8336_gpios[] = {
> > - { "pa-enable-gpios", &quirk_pa_enable_gpio, 1 },
> > + { "pa-enable-gpios", &pa_enable_gpio1, 1 },
> > + { }
> > +};
> > +
> > +static const struct acpi_gpio_mapping quirk_acpi_headphone_es8336_gpios[] = {
> > + { "pa-enable-gpios", &pa_enable_gpio0, 1 },
> > + { "pa-enable-headphone-gpios", &pa_enable_gpio1, 1 },
> > + { }
> > +};
> > +
> > +static const struct acpi_gpio_mapping quirk_tgl_acpi_headphone_es8336_gpios[] = {
> > + { "pa-enable-gpios", &pa_enable_gpio1, 1 },
> > + { "pa-enable-headphone-gpios", &pa_enable_gpio0, 1 },
> > { }
>
> This is starting to be a bit messy, the initial gpios were really
> intended for speakers and should be clearly referring to speakers now.
> the TGL quirk really means gpio1 is used instead of gpio0, and I can't
> figure out what the 'pa' prefix is needed for.
>
> Can I suggest the attached cleanup patch be added first? That would make
> it clearer and more readable IMHO. Compile-tested only since I don't
> have hardware.
Makes sense. I'll place it before the first patch, rebase them,
test and re-submit.
> Thanks!
Thanks!
Mauro
WARNING: multiple messages have this Message-ID (diff)
From: Mauro Carvalho Chehab <mchehab@kernel.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: "Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
"Hans de Goede" <hdegoede@redhat.com>,
"Péter Ujfalusi" <peter.ujfalusi@linux.intel.com>,
"Bard Liao" <yung-chuan.liao@linux.intel.com>,
"Cezary Rojewski" <cezary.rojewski@intel.com>,
"Jaroslav Kysela" <perex@perex.cz>,
"Jie Yang" <yang.jie@linux.intel.com>,
"Liam Girdwood" <liam.r.girdwood@linux.intel.com>,
"Mark Brown" <broonie@kernel.org>,
"Takashi Iwai" <tiwai@suse.com>,
alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/2] ASoC: Intel: sof_es8336: support a separate gpio to control headphone
Date: Tue, 5 Apr 2022 17:37:01 +0200 [thread overview]
Message-ID: <20220405173701.1459b198@coco.lan> (raw)
In-Reply-To: <5df9bb3c-2346-f465-fcae-eb6fe381def3@linux.intel.com>
Em Tue, 5 Apr 2022 09:57:30 -0500
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> escreveu:
> On 4/5/22 03:44, Mauro Carvalho Chehab wrote:
> > From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> >
> > Some devices may use both gpio0 and gpio1 to independently switch
> > the speaker and the headphone.
> >
> > Add support for that.
> >
> > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
> > ---
> >
> > See [PATCH v2 0/2] at: https://lore.kernel.org/all/cover.1649147890.git.mchehab@kernel.org/
> >
> > sound/soc/intel/boards/sof_es8336.c | 60 ++++++++++++++++++++++++-----
> > 1 file changed, 50 insertions(+), 10 deletions(-)
> >
> > diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c
> > index 5e0529aa4f1d..bcd80870d252 100644
> > --- a/sound/soc/intel/boards/sof_es8336.c
> > +++ b/sound/soc/intel/boards/sof_es8336.c
> > @@ -30,6 +30,7 @@
> > #define SOF_ES8336_TGL_GPIO_QUIRK BIT(4)
> > #define SOF_ES8336_ENABLE_DMIC BIT(5)
> > #define SOF_ES8336_JD_INVERTED BIT(6)
> > +#define SOF_ES8336_HEADPHONE_GPIO BIT(7)
> >
> > static unsigned long quirk;
> >
> > @@ -39,7 +40,7 @@ MODULE_PARM_DESC(quirk, "Board-specific quirk override");
> >
> > struct sof_es8336_private {
> > struct device *codec_dev;
> > - struct gpio_desc *gpio_pa;
> > + struct gpio_desc *gpio_pa, *gpio_pa_headphone;
> > struct snd_soc_jack jack;
> > struct list_head hdmi_pcm_list;
> > bool speaker_en;
> > @@ -51,15 +52,28 @@ struct sof_hdmi_pcm {
> > int device;
> > };
> >
> > -static const struct acpi_gpio_params pa_enable_gpio = { 0, 0, true };
> > +static const struct acpi_gpio_params pa_enable_gpio0 = { 0, 0, true };
> > +static const struct acpi_gpio_params pa_enable_gpio1 = { 1, 0, true };
> > +
> > static const struct acpi_gpio_mapping acpi_es8336_gpios[] = {
> > - { "pa-enable-gpios", &pa_enable_gpio, 1 },
> > + { "pa-enable-gpios", &pa_enable_gpio0, 1 },
> > { }
> > };
> >
> > -static const struct acpi_gpio_params quirk_pa_enable_gpio = { 1, 0, true };
> > static const struct acpi_gpio_mapping quirk_acpi_es8336_gpios[] = {
> > - { "pa-enable-gpios", &quirk_pa_enable_gpio, 1 },
> > + { "pa-enable-gpios", &pa_enable_gpio1, 1 },
> > + { }
> > +};
> > +
> > +static const struct acpi_gpio_mapping quirk_acpi_headphone_es8336_gpios[] = {
> > + { "pa-enable-gpios", &pa_enable_gpio0, 1 },
> > + { "pa-enable-headphone-gpios", &pa_enable_gpio1, 1 },
> > + { }
> > +};
> > +
> > +static const struct acpi_gpio_mapping quirk_tgl_acpi_headphone_es8336_gpios[] = {
> > + { "pa-enable-gpios", &pa_enable_gpio1, 1 },
> > + { "pa-enable-headphone-gpios", &pa_enable_gpio0, 1 },
> > { }
>
> This is starting to be a bit messy, the initial gpios were really
> intended for speakers and should be clearly referring to speakers now.
> the TGL quirk really means gpio1 is used instead of gpio0, and I can't
> figure out what the 'pa' prefix is needed for.
>
> Can I suggest the attached cleanup patch be added first? That would make
> it clearer and more readable IMHO. Compile-tested only since I don't
> have hardware.
Makes sense. I'll place it before the first patch, rebase them,
test and re-submit.
> Thanks!
Thanks!
Mauro
next prev parent reply other threads:[~2022-04-05 15:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-05 8:44 [PATCH v2 0/2] Make headphone work on Huawei Matebook D15 Mauro Carvalho Chehab
2022-04-05 8:44 ` Mauro Carvalho Chehab
2022-04-05 8:44 ` [PATCH v2 1/2] ASoC: Intel: sof_es8336: support a separate gpio to control headphone Mauro Carvalho Chehab
2022-04-05 8:44 ` Mauro Carvalho Chehab
2022-04-05 14:57 ` Pierre-Louis Bossart
2022-04-05 14:57 ` Pierre-Louis Bossart
2022-04-05 15:37 ` Mauro Carvalho Chehab [this message]
2022-04-05 15:37 ` Mauro Carvalho Chehab
2022-04-05 8:44 ` [PATCH v2 2/2] ASoC: Intel: sof_es8336: Huawei Matebook D15 uses a headphone gpio Mauro Carvalho Chehab
2022-04-05 8:44 ` Mauro Carvalho Chehab
2022-04-05 9:00 ` [PATCH v2 0/2] Make headphone work on Huawei Matebook D15 Hans de Goede
2022-04-05 9:00 ` Hans de Goede
2022-04-05 13:48 ` Mauro Carvalho Chehab
2022-04-05 13:48 ` Mauro Carvalho Chehab
2022-04-05 13:56 ` Hans de Goede
2022-04-05 13:56 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220405173701.1459b198@coco.lan \
--to=mchehab@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=cezary.rojewski@intel.com \
--cc=hdegoede@redhat.com \
--cc=liam.r.girdwood@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab+huawei@kernel.org \
--cc=peter.ujfalusi@linux.intel.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=tiwai@suse.com \
--cc=yang.jie@linux.intel.com \
--cc=yung-chuan.liao@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.