All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Modify the initialization and headphone-related settings
@ 2026-10-26  6:42 Zhang Yi
  2026-10-26  6:42 ` [PATCH v2 1/3] ASoC: es9356-sdca: Modify the timing and configuration of headphone events Zhang Yi
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Zhang Yi @ 2026-10-26  6:42 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi

To support different versions of the ES9356, the code reads the chip version
and performs different initialization configurations based on the version number.
To improve button performance, we've adjusted the timing and settings related to the headphones.

v2 -> v1:
	-The changes have been made as suggested.
	The incorrect path now first restores `regcache_cache_only(es9356->regmap, true)` before returning,
	preventing `regmap` from remaining in the direct-bus state while `hw_init` and `first_hw_init` are still false.
	At the same time, the return value has been changed from -EINVAL to ret,
	while retaining the original error code for es9356_register_init().

Zhang Yi (3):
  ASoC: es9356-sdca: Modify the timing and configuration of headphone
    events
  ASoC: es9356-sdca: Add writeable_reg
  ASoC: es9356-sdca: Modify the Initialization Configuration

 sound/soc/codecs/es9356.c | 106 ++++++++++++++++++++++++++++++--------
 sound/soc/codecs/es9356.h |   5 ++
 2 files changed, 89 insertions(+), 22 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/3] ASoC: es9356-sdca: Modify the timing and configuration of headphone events
  2026-10-26  6:42 [PATCH v2 0/3] Modify the initialization and headphone-related settings Zhang Yi
@ 2026-10-26  6:42 ` Zhang Yi
  2026-10-26  6:42 ` [PATCH v2 2/3] ASoC: es9356-sdca: Add writeable_reg Zhang Yi
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Zhang Yi @ 2026-10-26  6:42 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi

Change the time it takes to create a workqueue from 280 ms to 50 ms to
ensure faster response to button presses.
Modify the settings related to buttons after plugging in the headset
to ensure more accurate button type recognition.

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
---
 sound/soc/codecs/es9356.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sound/soc/codecs/es9356.c b/sound/soc/codecs/es9356.c
index b8b3ffc13..4bb51dd8d 100644
--- a/sound/soc/codecs/es9356.c
+++ b/sound/soc/codecs/es9356.c
@@ -352,7 +352,7 @@ static int es9356_sdca_headset_detect(struct es9356_sdw_priv *es9356)
 	if (reg) {
 		regmap_write(es9356->regmap,
 			SDW_SDCA_CTL(FUNC_NUM_UAJ, ES9356_SDCA_ENT_GE35, ES9356_SDCA_CTL_SELECTED_MODE, 0), reg);
-		regmap_write(es9356->regmap, ES9356_HP_DETECTTIME, 0x75);
+		regmap_write(es9356->regmap, ES9356_HP_DETECTTIME, 0x74);
 	} else {
 		regmap_write(es9356->regmap, ES9356_HP_DETECTTIME, 0xa4);
 	}
@@ -403,7 +403,7 @@ static void es9356_interrupt_handler(struct work_struct *work)
 			SND_JACK_BTN_2 | SND_JACK_BTN_3 |
 			SND_JACK_BTN_4);
 		mod_delayed_work(system_power_efficient_wq,
-			&es9356->button_detect_work, msecs_to_jiffies(280));
+			&es9356->button_detect_work, msecs_to_jiffies(50));
 	}
 }
 
@@ -450,7 +450,7 @@ static void es9356_button_detect_handler(struct work_struct *work)
 			SND_JACK_BTN_2 | SND_JACK_BTN_3 |
 			SND_JACK_BTN_4);
 		mod_delayed_work(system_power_efficient_wq,
-			&es9356->button_detect_work, msecs_to_jiffies(280));
+			&es9356->button_detect_work, msecs_to_jiffies(50));
 	}
 
 	return;
@@ -1000,10 +1000,10 @@ static int es9356_sdw_interrupt_callback(struct sdw_slave *slave,
 		count++;
 	} while (stat != 0 && count < retry);
 
-	/* The 280 ms figure was determined through testing */
+	/* The 50 ms figure was determined through testing */
 	if (status->sdca_cascade && !es9356->disable_irq)
 		mod_delayed_work(system_power_efficient_wq,
-			&es9356->interrupt_handle_work, msecs_to_jiffies(280));
+			&es9356->interrupt_handle_work, msecs_to_jiffies(50));
 
 	mutex_unlock(&es9356->disable_irq_lock);
 	return 0;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/3] ASoC: es9356-sdca: Add writeable_reg
  2026-10-26  6:42 [PATCH v2 0/3] Modify the initialization and headphone-related settings Zhang Yi
  2026-10-26  6:42 ` [PATCH v2 1/3] ASoC: es9356-sdca: Modify the timing and configuration of headphone events Zhang Yi
@ 2026-10-26  6:42 ` Zhang Yi
  2026-10-26  6:42 ` [PATCH v2 3/3] ASoC: es9356-sdca: Modify the Initialization Configuration Zhang Yi
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Zhang Yi @ 2026-10-26  6:42 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi

Set ES9356_VERSION and the HID-related registers to read-only.

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
---
 sound/soc/codecs/es9356.c | 15 +++++++++++++++
 sound/soc/codecs/es9356.h |  1 +
 2 files changed, 16 insertions(+)

diff --git a/sound/soc/codecs/es9356.c b/sound/soc/codecs/es9356.c
index 4bb51dd8d..a22e92d1e 100644
--- a/sound/soc/codecs/es9356.c
+++ b/sound/soc/codecs/es9356.c
@@ -724,10 +724,25 @@ static bool es9356_sdca_volatile_register(struct device *dev, unsigned int reg)
 	}
 }
 
+static bool es9356_writeable_register(struct device *dev, unsigned int reg)
+{
+	switch (reg) {
+	case ES9356_VERSION:
+	case ES9356_BUF_ADDR_HID:
+	case ES9356_HID_BYTE2:
+	case ES9356_HID_BYTE3:
+	case ES9356_HID_BYTE4:
+		return false;
+	default:
+		return true;
+	}
+}
+
 static const struct regmap_config es9356_sdca_regmap = {
 	.reg_bits = 32,
 	.val_bits = 16,
 	.volatile_reg = es9356_sdca_volatile_register,
+	.writeable_reg = es9356_writeable_register,
 	.max_register = 0x45ffffff,
 	.cache_type = REGCACHE_MAPLE,
 	.use_single_read = true,
diff --git a/sound/soc/codecs/es9356.h b/sound/soc/codecs/es9356.h
index 2a676f365..ceb571903 100644
--- a/sound/soc/codecs/es9356.h
+++ b/sound/soc/codecs/es9356.h
@@ -4,6 +4,7 @@
 #define __ES9356_H__
 
 /*ES9356 Implementation-define*/
+#define ES9356_VERSION                          0x2000
 #define ES9356_FLAGS_HP                         0x2003
 #define ES9356_CSM_RESET                        0x2020
 #define ES9356_FUC_RESET                        0x2021
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/3] ASoC: es9356-sdca: Modify the Initialization Configuration
  2026-10-26  6:42 [PATCH v2 0/3] Modify the initialization and headphone-related settings Zhang Yi
  2026-10-26  6:42 ` [PATCH v2 1/3] ASoC: es9356-sdca: Modify the timing and configuration of headphone events Zhang Yi
  2026-10-26  6:42 ` [PATCH v2 2/3] ASoC: es9356-sdca: Add writeable_reg Zhang Yi
@ 2026-10-26  6:42 ` Zhang Yi
  2026-10-26  9:20   ` sashiko-bot
  2026-10-26 20:16 ` [PATCH v2 0/3] Modify the initialization and headphone-related settings Mark Brown
  2026-10-28 12:46 ` Mark Brown
  4 siblings, 1 reply; 8+ messages in thread
From: Zhang Yi @ 2026-10-26  6:42 UTC (permalink / raw)
  To: linux-sound, broonie; +Cc: tiwai, Zhang Yi

Read the chip version number and modify the initialization configuration

Signed-off-by: Zhang Yi <zhangyi@everest-semi.com>
---
 sound/soc/codecs/es9356.c | 81 +++++++++++++++++++++++++++++++--------
 sound/soc/codecs/es9356.h |  4 ++
 2 files changed, 68 insertions(+), 17 deletions(-)

diff --git a/sound/soc/codecs/es9356.c b/sound/soc/codecs/es9356.c
index a22e92d1e..9c70ccd5b 100644
--- a/sound/soc/codecs/es9356.c
+++ b/sound/soc/codecs/es9356.c
@@ -749,58 +749,97 @@ static const struct regmap_config es9356_sdca_regmap = {
 	.use_single_write = true,
 };
 
-static void es9356_register_init(struct es9356_sdw_priv *es9356)
+static int es9356_register_init(struct es9356_sdw_priv *es9356)
 {
+	unsigned int version;
+	int ret;
+
+	ret = regmap_read(es9356->regmap, ES9356_VERSION, &version);
+	if (ret < 0) {
+		pr_err_ratelimited("IO error in %s, ret %d\n", __func__, ret);
+		return ret;
+	}
+
+	regmap_write(es9356->regmap, ES9356_SPKLDO_CTL, 0x2c);
+	if (!(version >> 1))
+		regmap_write(es9356->regmap, ES9356_HP_VOLUME, 0x11);
+	else
+		regmap_write(es9356->regmap, ES9356_HP_VOLUME, 0x00);
+
+	regmap_write(es9356->regmap, ES9356_SPKCLK_CTL, 0xc3);
 	regmap_write(es9356->regmap, ES9356_STATE, 0x02);
 	regmap_write(es9356->regmap, ES9356_ENDPOINT_MODE, 0x24);
 	regmap_write(es9356->regmap, ES9356_PRE_DIV_CTL, 0x00);
 	regmap_write(es9356->regmap, ES9356_ADC_OSR, 0x18);
-	regmap_write(es9356->regmap, ES9356_ADC_OSRGAIN, 0x13);
+	regmap_write(es9356->regmap, ES9356_ADC_OSRGAIN, 0x11);
 	regmap_write(es9356->regmap, ES9356_DAC_OSR, 0x16);
 	regmap_write(es9356->regmap, ES9356_CLK_CTL, 0x0f);
-	regmap_write(es9356->regmap, ES9356_CSM_RESET, 0x01);
-	regmap_write(es9356->regmap, ES9356_CLK_SEL, 0x30);
 
+	if (!(version >> 1))
+		regmap_write(es9356->regmap, ES9356_CLK_SEL, 0x30);
+	else
+		regmap_write(es9356->regmap, ES9356_CLK_SEL, 0x10);
+
+	regmap_write(es9356->regmap, ES9356_CSM_RESET, 0x01);
 	regmap_write(es9356->regmap, ES9356_DETCLK_CTL, 0x51);
-	regmap_write(es9356->regmap, ES9356_HP_TYPE, 0x10);
+	regmap_write(es9356->regmap, ES9356_HP_TYPE, 0x00);
 	regmap_write(es9356->regmap, ES9356_MICBIAS_CTL, 0x10);
 	regmap_write(es9356->regmap, ES9356_HPDETECT_CTL, 0x07);
 	regmap_write(es9356->regmap, ES9356_ADC_ANA, 0x30);
-	regmap_write(es9356->regmap, ES9356_PGA_CTL, 0xa8);
+	regmap_write(es9356->regmap, ES9356_PGA_CTL, 0xaa);
 	regmap_write(es9356->regmap, ES9356_ADC_INT, 0xaa);
 	regmap_write(es9356->regmap, ES9356_ADC_LP, 0x19);
 	regmap_write(es9356->regmap, ES9356_VMID1SEL, 0xbc);
 	regmap_write(es9356->regmap, ES9356_VMID_TIME, 0x0b);
 	regmap_write(es9356->regmap, ES9356_STATE_TIME, 0xbb);
-	regmap_write(es9356->regmap, ES9356_HP_SPK_TIME, 0x77);
+	regmap_write(es9356->regmap, ES9356_HP_SPK_TIME, 0x7a);
 	regmap_write(es9356->regmap, ES9356_HP_DETECTTIME, 0xa4);
-	regmap_write(es9356->regmap, ES9356_MICBIAS_SEL, 0x15);
+
+	if ((version & GENMASK(1, 0)) == 0x03)
+		regmap_write(es9356->regmap, ES9356_MICBIAS_SEL, 0x15);
+	else
+		regmap_write(es9356->regmap, ES9356_MICBIAS_SEL, 0x25);
+
+	regmap_write(es9356->regmap, ES9356_SPARE_REGISTER3, 0x00);
 	regmap_write(es9356->regmap, ES9356_KEY_PRESS_TIME, 0xff);
 	regmap_write(es9356->regmap, ES9356_KEY_RELEASE_TIME, 0xff);
 	regmap_write(es9356->regmap, ES9356_KEY_HOLD_TIME, 0x0f);
-	regmap_write(es9356->regmap, ES9356_BTSEL_REF, 0x00);
+
+	if ((version & GENMASK(1, 0)) == 0x03)
+		regmap_write(es9356->regmap, ES9356_BTSEL_REF, 0x04);
+	else
+		regmap_write(es9356->regmap, ES9356_BTSEL_REF, 0x00);
+
 	regmap_write(es9356->regmap, ES9356_KEYD_DETECT, 0x18);
 	regmap_write(es9356->regmap, ES9356_MICBIAS_RES, 0x03);
-	regmap_write(es9356->regmap, ES9356_BUTTON_CHARGE, 0x00);
-	regmap_write(es9356->regmap, ES9356_CALIBRATION_TIME, 0x13);
-	regmap_write(es9356->regmap, ES9356_CALIBRATION_SETTING, 0xf4);
+	regmap_write(es9356->regmap, ES9356_CALIBRATION_TIME, 0x1a);
+
+	if (!(version >> 1)) {
+		regmap_write(es9356->regmap, ES9356_CALIBRATION_SETTING, 0xc3);
+	} else {
+		regmap_write(es9356->regmap, ES9356_CALIBRATION_SETTING, 0xf4);
+		regmap_write(es9356->regmap, ES9356_SPK_SCP, 0x55);
+	}
 
 	regmap_write(es9356->regmap, ES9356_SPK_VOLUME, 0x33);
 	regmap_write(es9356->regmap, ES9356_DAC_VROI, 0x01);
 	regmap_write(es9356->regmap, ES9356_DAC_LP, 0x00);
 	regmap_write(es9356->regmap, ES9356_HP_IBIAS, 0x04);
 	regmap_write(es9356->regmap, ES9356_HP_LP, 0x03);
-	regmap_write(es9356->regmap, ES9356_SPKLDO_CTL, 0x65);
+	regmap_write(es9356->regmap, ES9356_SPKLDO_CTL, 0x6c);
 	regmap_write(es9356->regmap, ES9356_SPKBIAS_COMP, 0x09);
-	regmap_write(es9356->regmap, ES9356_VMID1STL, 0x00);
+	regmap_write(es9356->regmap, ES9356_VMID1STL, 0x01);
 	regmap_write(es9356->regmap, ES9356_VMID2STL, 0x00);
 	regmap_write(es9356->regmap, ES9356_VSEL, 0xfc);
 
 	regmap_write(es9356->regmap, ES9356_IBIASGEN, 0x10);
-	regmap_write(es9356->regmap, ES9356_ADC_AMIC_CTL, 0x0d);
+	regmap_write(es9356->regmap, ES9356_ADC_AMIC_CTL, 0x05);
 	regmap_write(es9356->regmap, ES9356_STATE, 0x0e);
 	regmap_write(es9356->regmap, ES9356_CSM_RESET, 0x00);
 	regmap_write(es9356->regmap, ES9356_HP_TYPE, 0x08);
+	regmap_write(es9356->regmap, ES9356_DAC_AUTOMUTE, 0x31);
+	regmap_write(es9356->regmap, ES9356_DAC_AUTOMUTE_WINSIZE, 0x3D);
+	regmap_write(es9356->regmap, ES9356_DAC_AUTOMUTE_RESULT1, 0x80);
 
 	regmap_write(es9356->regmap,
 		SDW_SDCA_CTL(FUNC_NUM_MIC, ES9356_SDCA_ENT_FU113, ES9356_SDCA_CTL_FU_VOLUME, CH_L), ES9356_DEFAULT_VOLUME);
@@ -821,11 +860,14 @@ static void es9356_register_init(struct es9356_sdw_priv *es9356)
 		SDW_SDCA_CTL(FUNC_NUM_UAJ, ES9356_SDCA_ENT_FU36, ES9356_SDCA_CTL_FU_VOLUME, CH_L), ES9356_DEFAULT_VOLUME);
 	regmap_write(es9356->regmap,
 		SDW_SDCA_CTL(FUNC_NUM_UAJ, ES9356_SDCA_ENT_FU36, ES9356_SDCA_CTL_FU_VOLUME, CH_R), ES9356_DEFAULT_VOLUME);
+
+	return 0;
 }
 
 static int es9356_sdca_io_init(struct device *dev, struct sdw_slave *slave)
 {
 	struct es9356_sdw_priv *es9356 = dev_get_drvdata(&slave->dev);
+	int ret = 0;
 
 	if (es9356->hw_init)
 		return 0;
@@ -840,7 +882,11 @@ static int es9356_sdca_io_init(struct device *dev, struct sdw_slave *slave)
 		/* update count of parent 'active' children */
 		pm_runtime_set_active(&slave->dev);
 
-		es9356_register_init(es9356);
+		ret = es9356_register_init(es9356);
+		if (ret < 0) {
+			regcache_cache_only(es9356->regmap, true);
+			goto err_out;
+		}
 	}
 	pm_runtime_get_noresume(&slave->dev);
 
@@ -867,10 +913,11 @@ static int es9356_sdca_io_init(struct device *dev, struct sdw_slave *slave)
 
 	es9356->hw_init = true;
 
+err_out:
 	pm_runtime_mark_last_busy(&slave->dev);
 	pm_runtime_put_autosuspend(&slave->dev);
 
-	return 0;
+	return ret;
 }
 
 static int es9356_sdw_update_status(struct sdw_slave *slave,
diff --git a/sound/soc/codecs/es9356.h b/sound/soc/codecs/es9356.h
index ceb571903..c147ecdd8 100644
--- a/sound/soc/codecs/es9356.h
+++ b/sound/soc/codecs/es9356.h
@@ -38,6 +38,7 @@
 #define ES9356_MICBIAS_CTL                      0x2047
 #define ES9356_HPDETECT_CTL                     0x2048
 #define ES9356_MICBIAS_RES                      0x2049
+#define ES9356_SPARE_REGISTER3                  0x204a
 
 /*CLK*/
 #define ES9356_CLK_SEL                          0x2050
@@ -82,6 +83,9 @@
 #define ES9356_DAC_RAMP                         0x2093
 #define ES9356_DAC_VPPSCALE                     0x2094
 #define ES9356_DAC_SWAP                         0x2097
+#define ES9356_DAC_AUTOMUTE                     0x2098
+#define ES9356_DAC_AUTOMUTE_WINSIZE             0x2099
+#define ES9356_DAC_AUTOMUTE_RESULT1             0x209B
 #define ES9356_SPKCMP_VPPSC                     0x20A0
 #define ES9356_CALIBRATION_TIME                 0x20A1
 #define ES9356_CALIBRATION_SETTING              0x20A2
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 3/3] ASoC: es9356-sdca: Modify the Initialization Configuration
  2026-10-26  6:42 ` [PATCH v2 3/3] ASoC: es9356-sdca: Modify the Initialization Configuration Zhang Yi
@ 2026-10-26  9:20   ` sashiko-bot
  0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-10-26  9:20 UTC (permalink / raw)
  To: Zhang Yi, linux-sound

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] ASoC: es9356: unbalanced runtime PM put on error in es9356_sdca_io_init()
--

commit 60c9cfe2c366d3c665f55ff2537b8dd346fc2323
Author: Zhang Yi <zhangyi@everest-semi.com>

ASoC: es9356-sdca: Modify the Initialization Configuration

This commit updates es9356_register_init() to read the chip version register
and apply version-specific register settings during initialization. It also
propagates regmap read errors from es9356_register_init() to
es9356_sdca_io_init().

> diff --git a/sound/soc/codecs/es9356.c b/sound/soc/codecs/es9356.c
> index a22e92d1e5ccd..9c70ccd5b310f 100644
> --- a/sound/soc/codecs/es9356.c
> +++ b/sound/soc/codecs/es9356.c
[ ... ]
> @@ -840,7 +882,11 @@ static int es9356_sdca_io_init(struct device *dev, struct sdw_slave *slave)
>  		/* update count of parent 'active' children */
>  		pm_runtime_set_active(&slave->dev);
>  
> -		es9356_register_init(es9356);
> +		ret = es9356_register_init(es9356);
> +		if (ret < 0) {
> +			regcache_cache_only(es9356->regmap, true);
> +			goto err_out;
> +		}
>  	}
>  	pm_runtime_get_noresume(&slave->dev);
>  
> @@ -867,10 +913,11 @@ static int es9356_sdca_io_init(struct device *dev, struct sdw_slave *slave)
>  
>  	es9356->hw_init = true;
>  
> +err_out:
>  	pm_runtime_mark_last_busy(&slave->dev);
>  	pm_runtime_put_autosuspend(&slave->dev);
>  
> -	return 0;
> +	return ret;
>  }

[Severity: High]
Does jumping to err_out here cause an unbalanced runtime PM put on
slave->dev?

In sound/soc/codecs/es9356.c, when es9356_sdw_update_status() calls
es9356_sdca_io_init() on initial attachment (with es9356->first_hw_init
false) and regmap_read() of ES9356_VERSION fails in es9356_register_init(),
the error path jumps to err_out before pm_runtime_get_noresume(&slave->dev)
is called:

	if (es9356->first_hw_init) {
		regcache_cache_bypass(es9356->regmap, true);
	} else {
		/* update count of parent 'active' children */
		pm_runtime_set_active(&slave->dev);

		ret = es9356_register_init(es9356);
		if (ret < 0) {
			regcache_cache_only(es9356->regmap, true);
			goto err_out;
		}
	}
	pm_runtime_get_noresume(&slave->dev);

At err_out, pm_runtime_put_autosuspend(&slave->dev) is then executed without
a matching get, underflowing slave->dev.power.usage_count and leaving
slave->dev in the active runtime PM state with es9356->first_hw_init still
false.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261026064251.15017-1-zhangyi@everest-semi.com?part=3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/3] Modify the initialization and headphone-related settings
  2026-10-26  6:42 [PATCH v2 0/3] Modify the initialization and headphone-related settings Zhang Yi
                   ` (2 preceding siblings ...)
  2026-10-26  6:42 ` [PATCH v2 3/3] ASoC: es9356-sdca: Modify the Initialization Configuration Zhang Yi
@ 2026-10-26 20:16 ` Mark Brown
  2026-10-28 12:46 ` Mark Brown
  4 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2026-10-26 20:16 UTC (permalink / raw)
  To: linux-sound, Zhang Yi; +Cc: tiwai

On Mon, 26 Oct 2026 14:42:48 +0800, Zhang Yi wrote:
> Modify the initialization and headphone-related settings
> 
> To support different versions of the ES9356, the code reads the chip version
> and performs different initialization configurations based on the version number.
> To improve button performance, we've adjusted the timing and settings related to the headphones.
> 
> v2 -> v1:
> 	-The changes have been made as suggested.
> 	The incorrect path now first restores `regcache_cache_only(es9356->regmap, true)` before returning,
> 	preventing `regmap` from remaining in the direct-bus state while `hw_init` and `first_hw_init` are still false.
> 	At the same time, the return value has been changed from -EINVAL to ret,
> 	while retaining the original error code for es9356_register_init().
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.4

Thanks!

[1/3] ASoC: es9356-sdca: Modify the timing and configuration of headphone events
      https://git.kernel.org/broonie/sound/c/5532cec20250
[2/3] ASoC: es9356-sdca: Add writeable_reg
      https://git.kernel.org/broonie/sound/c/ddc9472baf11
[3/3] ASoC: es9356-sdca: Modify the Initialization Configuration
      https://git.kernel.org/broonie/sound/c/6d7dbcb5f8e4

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/3] Modify the initialization and headphone-related settings
  2026-10-26  6:42 [PATCH v2 0/3] Modify the initialization and headphone-related settings Zhang Yi
                   ` (3 preceding siblings ...)
  2026-10-26 20:16 ` [PATCH v2 0/3] Modify the initialization and headphone-related settings Mark Brown
@ 2026-10-28 12:46 ` Mark Brown
  2026-10-29  1:33   ` zhangyi
  4 siblings, 1 reply; 8+ messages in thread
From: Mark Brown @ 2026-10-28 12:46 UTC (permalink / raw)
  To: Zhang Yi; +Cc: linux-sound, tiwai

[-- Attachment #1: Type: text/plain, Size: 401 bytes --]

On Mon, Oct 26, 2026 at 02:42:48PM +0800, Zhang Yi wrote:

> To support different versions of the ES9356, the code reads the chip version
> and performs different initialization configurations based on the version number.
> To improve button performance, we've adjusted the timing and settings related to the headphones.

v1 was already applied, please send incrmental patches with the changes
in v2.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/3] Modify the initialization and headphone-related settings
  2026-10-28 12:46 ` Mark Brown
@ 2026-10-29  1:33   ` zhangyi
  0 siblings, 0 replies; 8+ messages in thread
From: zhangyi @ 2026-10-29  1:33 UTC (permalink / raw)
  To: broonie; +Cc: linux-sound, tiwai

> > To support different versions of the ES9356, the code reads the chip 
> > version and performs different initialization configurations based on
the version number.
> > To improve button performance, we've adjusted the timing and settings
related to the headphones.>
>
> v1 was already applied, please send incrmental patches with the changes in
v2.

But what I saw yesterday was that v2 had been applied.
The Message-Id for the email I received yesterday is: 
<179304576788.199157.7157888741242210309.b4-ty@b4>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-10-29  1:33 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-26  6:42 [PATCH v2 0/3] Modify the initialization and headphone-related settings Zhang Yi
2026-10-26  6:42 ` [PATCH v2 1/3] ASoC: es9356-sdca: Modify the timing and configuration of headphone events Zhang Yi
2026-10-26  6:42 ` [PATCH v2 2/3] ASoC: es9356-sdca: Add writeable_reg Zhang Yi
2026-10-26  6:42 ` [PATCH v2 3/3] ASoC: es9356-sdca: Modify the Initialization Configuration Zhang Yi
2026-10-26  9:20   ` sashiko-bot
2026-10-26 20:16 ` [PATCH v2 0/3] Modify the initialization and headphone-related settings Mark Brown
2026-10-28 12:46 ` Mark Brown
2026-10-29  1:33   ` zhangyi

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.