alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET
@ 2021-01-15  7:53 Yu-Hsuan Hsu
  2021-01-15  7:53 ` [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing Yu-Hsuan Hsu
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Yu-Hsuan Hsu @ 2021-01-15  7:53 UTC (permalink / raw)
  To: linux-kernel
  Cc: alsa-devel, Gustavo A . R . Silva, Takashi Iwai, Liam Girdwood,
	Guenter Roeck, Mark Brown, Prashant Malani, Pi-Hsun Shih,
	Enric Balletbo i Serra, Benson Leung, Yu-Hsuan Hsu,
	Cheng-Yi Chiang

Add the new command EC_CODEC_I2S_RX_RESET in ec_codec_i2s_rx_subcmd,
which is used for resetting the EC codec.

Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
---
 include/linux/platform_data/cros_ec_commands.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
index 86376779ab31..95889ada83a3 100644
--- a/include/linux/platform_data/cros_ec_commands.h
+++ b/include/linux/platform_data/cros_ec_commands.h
@@ -4600,6 +4600,7 @@ enum ec_codec_i2s_rx_subcmd {
 	EC_CODEC_I2S_RX_SET_SAMPLE_DEPTH = 0x2,
 	EC_CODEC_I2S_RX_SET_DAIFMT = 0x3,
 	EC_CODEC_I2S_RX_SET_BCLK = 0x4,
+	EC_CODEC_I2S_RX_RESET = 0x5,
 	EC_CODEC_I2S_RX_SUBCMD_COUNT,
 };
 
-- 
2.30.0.296.g2bfb1c46d8-goog


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

* [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing
  2021-01-15  7:53 [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET Yu-Hsuan Hsu
@ 2021-01-15  7:53 ` Yu-Hsuan Hsu
  2021-01-19 11:36   ` Enric Balletbo i Serra
  2021-01-19 11:35 ` [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET Enric Balletbo i Serra
  2021-01-21  0:05 ` Mark Brown
  2 siblings, 1 reply; 5+ messages in thread
From: Yu-Hsuan Hsu @ 2021-01-15  7:53 UTC (permalink / raw)
  To: linux-kernel
  Cc: alsa-devel, Gustavo A . R . Silva, Takashi Iwai, Liam Girdwood,
	Guenter Roeck, Mark Brown, Prashant Malani, Pi-Hsun Shih,
	Enric Balletbo i Serra, Benson Leung, Yu-Hsuan Hsu,
	Cheng-Yi Chiang

It is not guaranteed that I2S RX is disabled when the kernel booting.
For example, if the kernel crashes while it is enabled, it will keep
enabled until the next time EC reboots. Reset I2S RX when probing to
fix this issue.

Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
---
Updated the info message.

 sound/soc/codecs/cros_ec_codec.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/sound/soc/codecs/cros_ec_codec.c b/sound/soc/codecs/cros_ec_codec.c
index f33a2a9654e7..c4772f82485a 100644
--- a/sound/soc/codecs/cros_ec_codec.c
+++ b/sound/soc/codecs/cros_ec_codec.c
@@ -1011,6 +1011,18 @@ static int cros_ec_codec_platform_probe(struct platform_device *pdev)
 	}
 	priv->ec_capabilities = r.capabilities;
 
+	/* Reset EC codec i2s rx. */
+	p.cmd = EC_CODEC_I2S_RX_RESET;
+	ret = send_ec_host_command(priv->ec_device, EC_CMD_EC_CODEC_I2S_RX,
+				   (uint8_t *)&p, sizeof(p), NULL, 0);
+	if (ret == -ENOPROTOOPT) {
+		dev_info(dev,
+			 "Missing reset command. Please update EC firmware.\n");
+	} else if (ret) {
+		dev_err(dev, "failed to EC_CODEC_I2S_RESET: %d\n", ret);
+		return ret;
+	}
+
 	platform_set_drvdata(pdev, priv);
 
 	ret = devm_snd_soc_register_component(dev, &i2s_rx_component_driver,
-- 
2.30.0.296.g2bfb1c46d8-goog


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

* Re: [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET
  2021-01-15  7:53 [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET Yu-Hsuan Hsu
  2021-01-15  7:53 ` [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing Yu-Hsuan Hsu
@ 2021-01-19 11:35 ` Enric Balletbo i Serra
  2021-01-21  0:05 ` Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Enric Balletbo i Serra @ 2021-01-19 11:35 UTC (permalink / raw)
  To: Yu-Hsuan Hsu, linux-kernel
  Cc: alsa-devel, Gustavo A . R . Silva, Takashi Iwai, Liam Girdwood,
	Mark Brown, Prashant Malani, Pi-Hsun Shih, Guenter Roeck,
	Benson Leung, Cheng-Yi Chiang

Hi Yu-Hsuan,

On 15/1/21 8:53, Yu-Hsuan Hsu wrote:
> Add the new command EC_CODEC_I2S_RX_RESET in ec_codec_i2s_rx_subcmd,
> which is used for resetting the EC codec.
> 
> Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>

Please carry the tags when sending newer versions if nothing changed. This patch
was already

Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>

Mark I'm fine if both patches go through your tree.


> ---
>  include/linux/platform_data/cros_ec_commands.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
> index 86376779ab31..95889ada83a3 100644
> --- a/include/linux/platform_data/cros_ec_commands.h
> +++ b/include/linux/platform_data/cros_ec_commands.h
> @@ -4600,6 +4600,7 @@ enum ec_codec_i2s_rx_subcmd {
>  	EC_CODEC_I2S_RX_SET_SAMPLE_DEPTH = 0x2,
>  	EC_CODEC_I2S_RX_SET_DAIFMT = 0x3,
>  	EC_CODEC_I2S_RX_SET_BCLK = 0x4,
> +	EC_CODEC_I2S_RX_RESET = 0x5,
>  	EC_CODEC_I2S_RX_SUBCMD_COUNT,
>  };
>  
> 

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

* Re: [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing
  2021-01-15  7:53 ` [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing Yu-Hsuan Hsu
@ 2021-01-19 11:36   ` Enric Balletbo i Serra
  0 siblings, 0 replies; 5+ messages in thread
From: Enric Balletbo i Serra @ 2021-01-19 11:36 UTC (permalink / raw)
  To: Yu-Hsuan Hsu, linux-kernel
  Cc: alsa-devel, Gustavo A . R . Silva, Takashi Iwai, Liam Girdwood,
	Mark Brown, Prashant Malani, Pi-Hsun Shih, Guenter Roeck,
	Benson Leung, Cheng-Yi Chiang

Hi Yu-Hsuan,

Thanks to apply the nit, but you can maintain the reviewed tag.

On 15/1/21 8:53, Yu-Hsuan Hsu wrote:
> It is not guaranteed that I2S RX is disabled when the kernel booting.
> For example, if the kernel crashes while it is enabled, it will keep
> enabled until the next time EC reboots. Reset I2S RX when probing to
> fix this issue.
> 
> Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>

Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>


> ---
> Updated the info message.
> 
>  sound/soc/codecs/cros_ec_codec.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/sound/soc/codecs/cros_ec_codec.c b/sound/soc/codecs/cros_ec_codec.c
> index f33a2a9654e7..c4772f82485a 100644
> --- a/sound/soc/codecs/cros_ec_codec.c
> +++ b/sound/soc/codecs/cros_ec_codec.c
> @@ -1011,6 +1011,18 @@ static int cros_ec_codec_platform_probe(struct platform_device *pdev)
>  	}
>  	priv->ec_capabilities = r.capabilities;
>  
> +	/* Reset EC codec i2s rx. */
> +	p.cmd = EC_CODEC_I2S_RX_RESET;
> +	ret = send_ec_host_command(priv->ec_device, EC_CMD_EC_CODEC_I2S_RX,
> +				   (uint8_t *)&p, sizeof(p), NULL, 0);
> +	if (ret == -ENOPROTOOPT) {
> +		dev_info(dev,
> +			 "Missing reset command. Please update EC firmware.\n");
> +	} else if (ret) {
> +		dev_err(dev, "failed to EC_CODEC_I2S_RESET: %d\n", ret);
> +		return ret;
> +	}
> +
>  	platform_set_drvdata(pdev, priv);
>  
>  	ret = devm_snd_soc_register_component(dev, &i2s_rx_component_driver,
> 

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

* Re: [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET
  2021-01-15  7:53 [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET Yu-Hsuan Hsu
  2021-01-15  7:53 ` [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing Yu-Hsuan Hsu
  2021-01-19 11:35 ` [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET Enric Balletbo i Serra
@ 2021-01-21  0:05 ` Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2021-01-21  0:05 UTC (permalink / raw)
  To: Yu-Hsuan Hsu, linux-kernel
  Cc: alsa-devel, Liam Girdwood, Gustavo A . R . Silva, Takashi Iwai,
	Guenter Roeck, Prashant Malani, Pi-Hsun Shih,
	Enric Balletbo i Serra, Benson Leung, Cheng-Yi Chiang

On Fri, 15 Jan 2021 15:53:00 +0800, Yu-Hsuan Hsu wrote:
> Add the new command EC_CODEC_I2S_RX_RESET in ec_codec_i2s_rx_subcmd,
> which is used for resetting the EC codec.

Applied to

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

Thanks!

[1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET
      commit: f4d3bd8be4f2bc43e4b13490cbc9969d15c2f058
[2/2] ASoC: cros_ec_codec: Reset I2S RX when probing
      commit: 7f1f7ae102ea082745e320b3c8c003f43c063edf

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] 5+ messages in thread

end of thread, other threads:[~2021-01-21  0:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-15  7:53 [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET Yu-Hsuan Hsu
2021-01-15  7:53 ` [PATCH v7 2/2] ASoC: cros_ec_codec: Reset I2S RX when probing Yu-Hsuan Hsu
2021-01-19 11:36   ` Enric Balletbo i Serra
2021-01-19 11:35 ` [PATCH v7 1/2] cros_ec_commands: Add EC_CODEC_I2S_RX_RESET Enric Balletbo i Serra
2021-01-21  0:05 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).