All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cezary Rojewski <cezary.rojewski@intel.com>
To: alsa-devel@alsa-project.org, broonie@kernel.org
Cc: Cezary Rojewski <cezary.rojewski@intel.com>,
	pierre-louis.bossart@linux.intel.com, tiwai@suse.com,
	hdegoede@redhat.com, amadeuszx.slawinski@linux.intel.com
Subject: [PATCH v2 16/17] ASoC: Intel: bdw_rt286: Refactor suspend/resume
Date: Mon, 13 Jun 2022 11:15:45 +0200	[thread overview]
Message-ID: <20220613091546.1565167-17-cezary.rojewski@intel.com> (raw)
In-Reply-To: <20220613091546.1565167-1-cezary.rojewski@intel.com>

Make use of card->remove() rather than pdev->remove() to unassign jack
during card unbind procedure.

To reduce code size, define unified jack setter in form of
bdw_rt286_set_jack() and invoke it during remove(), suspend_pre() and
resume_port().

Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
---
 sound/soc/intel/boards/bdw_rt286.c | 50 +++++++++---------------------
 1 file changed, 14 insertions(+), 36 deletions(-)

diff --git a/sound/soc/intel/boards/bdw_rt286.c b/sound/soc/intel/boards/bdw_rt286.c
index 92fddf6061e8..106a06398858 100644
--- a/sound/soc/intel/boards/bdw_rt286.c
+++ b/sound/soc/intel/boards/bdw_rt286.c
@@ -199,43 +199,33 @@ static struct snd_soc_dai_link card_dai_links[] = {
 	},
 };
 
-static void broadwell_disable_jack(struct snd_soc_card *card)
+static int card_set_jack(struct snd_soc_card *card, struct snd_soc_jack *jack)
 {
-	struct snd_soc_component *component;
-
-	for_each_card_components(card, component) {
-		if (!strcmp(component->name, "i2c-INT343A:00")) {
-			dev_dbg(component->dev, "disabling jack detect before going to suspend.\n");
-			snd_soc_component_set_jack(component, NULL, NULL);
-			break;
-		}
-	}
+	struct snd_soc_dai *codec_dai = snd_soc_card_get_codec_dai(card, "rt286-aif1");
+
+	return snd_soc_component_set_jack(codec_dai->component, jack, NULL);
 }
 
-static int card_suspend_pre(struct snd_soc_card *card)
+static int card_remove(struct snd_soc_card *card)
 {
-	broadwell_disable_jack(card);
+	return card_set_jack(card, NULL);
+}
 
-	return 0;
+static int card_suspend_pre(struct snd_soc_card *card)
+{
+	return card_set_jack(card, NULL);
 }
 
 static int card_resume_post(struct snd_soc_card *card)
 {
-	struct snd_soc_component *component;
-
-	for_each_card_components(card, component) {
-		if (!strcmp(component->name, "i2c-INT343A:00")) {
-			dev_dbg(component->dev, "enabling jack detect for resume.\n");
-			snd_soc_component_set_jack(component, &card_headset, NULL);
-			break;
-		}
-	}
-
-	return 0;
+	return card_set_jack(card, &card_headset);
 }
 
 static struct snd_soc_card bdw_rt286_card = {
 	.owner = THIS_MODULE,
+	.remove = card_remove,
+	.suspend_pre = card_suspend_pre,
+	.resume_post = card_resume_post,
 	.dai_link = card_dai_links,
 	.num_links = ARRAY_SIZE(card_dai_links),
 	.controls = card_controls,
@@ -245,8 +235,6 @@ static struct snd_soc_card bdw_rt286_card = {
 	.dapm_routes = card_routes,
 	.num_dapm_routes = ARRAY_SIZE(card_routes),
 	.fully_routed = true,
-	.suspend_pre = card_suspend_pre,
-	.resume_post = card_resume_post,
 };
 
 /* Use space before codec name to simplify card ID, and simplify driver name. */
@@ -278,18 +266,8 @@ static int bdw_rt286_probe(struct platform_device *pdev)
 	return devm_snd_soc_register_card(dev, &bdw_rt286_card);
 }
 
-static int bdw_rt286_remove(struct platform_device *pdev)
-{
-	struct snd_soc_card *card = platform_get_drvdata(pdev);
-
-	broadwell_disable_jack(card);
-
-	return 0;
-}
-
 static struct platform_driver bdw_rt286_driver = {
 	.probe = bdw_rt286_probe,
-	.remove = bdw_rt286_remove,
 	.driver = {
 		.name = "bdw_rt286",
 		.pm = &snd_soc_pm_ops
-- 
2.25.1


  parent reply	other threads:[~2022-06-13  9:11 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-13  9:15 [PATCH v2 00/17] ASoC: Intel: haswell and broadwell boards update Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 01/17] ASoC: Intel: Rename haswell source file to hsw_rt5640 Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 02/17] ASoC: Intel: hsw_rt5640: Reword prefixes of all driver members Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 03/17] ASoC: Intel: hsw_rt5640: Reword driver name Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 04/17] ASoC: Intel: hsw_rt5640: Update code indentation Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 05/17] ASoC: Intel: hsw_rt5640: Update file comments Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 06/17] ASoC: Intel: hsw_rt5640: Improve probe() function quality Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 07/17] ASoC: Intel: hsw_rt5640: Improve hw_params() debug-ability Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 08/17] ASoC: Intel: Rename broadwell source file to bdw_rt286 Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 09/17] ASoC: Intel: bdw_rt286: Reword prefixes of all driver members Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 10/17] ASoC: Intel: bdw_rt286: Reword driver name Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 11/17] ASoC: Intel: bdw_rt286: Update code indentation Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 12/17] ASoC: Intel: bdw_rt286: Update file comments Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 13/17] ASoC: Intel: bdw_rt286: Improve probe() function quality Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 14/17] ASoC: Intel: bdw_rt286: Improve hw_params() debug-ability Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 15/17] ASoC: Intel: bdw_rt286: Improve codec_link_init() quality Cezary Rojewski
2022-06-13  9:15 ` Cezary Rojewski [this message]
2022-06-15  1:27   ` [PATCH v2 16/17] ASoC: Intel: bdw_rt286: Refactor suspend/resume Pierre-Louis Bossart
2022-06-15 12:57     ` Cezary Rojewski
2022-06-15 16:25       ` Pierre-Louis Bossart
2022-06-19 13:04         ` Cezary Rojewski
2022-06-19 13:58       ` Cezary Rojewski
2022-06-13  9:15 ` [PATCH v2 17/17] ASoC: Intel: bdw_rt286: Remove FE DAI ops Cezary Rojewski
2022-06-24 10:59 ` [PATCH v2 00/17] ASoC: Intel: haswell and broadwell boards update Mark Brown

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=20220613091546.1565167-17-cezary.rojewski@intel.com \
    --to=cezary.rojewski@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=amadeuszx.slawinski@linux.intel.com \
    --cc=broonie@kernel.org \
    --cc=hdegoede@redhat.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@suse.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.