[v1,2/7] ALSA: hda: cs35l41: Support additional ASUS ROG 2023 models

Message ID 20231218151221.388745-3-sbinding@opensource.cirrus.com
State New
Headers
Series Add support for various laptops using CS35L41 HDA without _DSD |

Commit Message

Stefan Binding Dec. 18, 2023, 3:12 p.m. UTC
  Add new model entries into configuration table.

Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
---
 sound/pci/hda/cs35l41_hda_property.c | 36 ++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
  

Comments

Luke Jones Dec. 21, 2023, 8:41 a.m. UTC | #1
On Mon, 2023-12-18 at 15:12 +0000, Stefan Binding wrote:
> Add new model entries into configuration table.
> 
> Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
> ---
>  sound/pci/hda/cs35l41_hda_property.c | 36
> ++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/sound/pci/hda/cs35l41_hda_property.c
> b/sound/pci/hda/cs35l41_hda_property.c
> index f90423ded85d..a0d808ed640a 100644
> --- a/sound/pci/hda/cs35l41_hda_property.c
> +++ b/sound/pci/hda/cs35l41_hda_property.c
> @@ -42,6 +42,24 @@ static const struct cs35l41_config
> cs35l41_config_table[] = {
>   * in the ACPI. The Reset GPIO is also valid, so we can use the
> Reset defined in _DSD.
>   */
>  	{ "103C89C6", SPI, 2, INTERNAL, { CS35L41_RIGHT,
> CS35L41_LEFT, 0, 0 }, -1, -1, -1, 1000, 4500, 24 },
> +	{ "10431433", I2C, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
> +	{ "10431463", I2C, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
> +	{ "10431473", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
> +	{ "10431483", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
> +	{ "10431493", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "104314D3", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "104314E3", I2C, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
> +	{ "10431503", I2C, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
> +	{ "10431533", I2C, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
> +	{ "10431573", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "10431663", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
> +	{ "104317F3", I2C, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
> +	{ "10431C9F", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "10431CAF", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "10431CCF", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "10431CDF", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "10431CEF", SPI, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
> +	{ "10431D1F", I2C, 2, INTERNAL, { CS35L41_LEFT,
> CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
>  	{}
>  };
>  

Very good to see this work done. I have tested on 3 models and each one
has very good sound now. Many thanks!

> @@ -316,6 +334,24 @@ static const struct cs35l41_prop_model
> cs35l41_prop_model_table[] = {
>  	{ "CLSA0100", NULL, lenovo_legion_no_acpi },
>  	{ "CLSA0101", NULL, lenovo_legion_no_acpi },
>  	{ "CSC3551", "103C89C6", generic_dsd_config },
> +	{ "CSC3551", "10431433", generic_dsd_config },
> +	{ "CSC3551", "10431463", generic_dsd_config },
> +	{ "CSC3551", "10431473", generic_dsd_config },
> +	{ "CSC3551", "10431483", generic_dsd_config },
> +	{ "CSC3551", "10431493", generic_dsd_config },
> +	{ "CSC3551", "104314D3", generic_dsd_config },
> +	{ "CSC3551", "104314E3", generic_dsd_config },
> +	{ "CSC3551", "10431503", generic_dsd_config },
> +	{ "CSC3551", "10431533", generic_dsd_config },
> +	{ "CSC3551", "10431573", generic_dsd_config },
> +	{ "CSC3551", "10431663", generic_dsd_config },
> +	{ "CSC3551", "104317F3", generic_dsd_config },
> +	{ "CSC3551", "10431C9F", generic_dsd_config },
> +	{ "CSC3551", "10431CAF", generic_dsd_config },
> +	{ "CSC3551", "10431CCF", generic_dsd_config },
> +	{ "CSC3551", "10431CDF", generic_dsd_config },
> +	{ "CSC3551", "10431CEF", generic_dsd_config },
> +	{ "CSC3551", "10431D1F", generic_dsd_config },
>  	{}
>  };
>
  

Patch

diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c
index f90423ded85d..a0d808ed640a 100644
--- a/sound/pci/hda/cs35l41_hda_property.c
+++ b/sound/pci/hda/cs35l41_hda_property.c
@@ -42,6 +42,24 @@  static const struct cs35l41_config cs35l41_config_table[] = {
  * in the ACPI. The Reset GPIO is also valid, so we can use the Reset defined in _DSD.
  */
 	{ "103C89C6", SPI, 2, INTERNAL, { CS35L41_RIGHT, CS35L41_LEFT, 0, 0 }, -1, -1, -1, 1000, 4500, 24 },
+	{ "10431433", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
+	{ "10431463", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
+	{ "10431473", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
+	{ "10431483", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
+	{ "10431493", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "104314D3", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "104314E3", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
+	{ "10431503", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
+	{ "10431533", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
+	{ "10431573", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "10431663", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
+	{ "104317F3", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
+	{ "10431C9F", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "10431CAF", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "10431CCF", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "10431CDF", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "10431CEF", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
+	{ "10431D1F", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
 	{}
 };
 
@@ -316,6 +334,24 @@  static const struct cs35l41_prop_model cs35l41_prop_model_table[] = {
 	{ "CLSA0100", NULL, lenovo_legion_no_acpi },
 	{ "CLSA0101", NULL, lenovo_legion_no_acpi },
 	{ "CSC3551", "103C89C6", generic_dsd_config },
+	{ "CSC3551", "10431433", generic_dsd_config },
+	{ "CSC3551", "10431463", generic_dsd_config },
+	{ "CSC3551", "10431473", generic_dsd_config },
+	{ "CSC3551", "10431483", generic_dsd_config },
+	{ "CSC3551", "10431493", generic_dsd_config },
+	{ "CSC3551", "104314D3", generic_dsd_config },
+	{ "CSC3551", "104314E3", generic_dsd_config },
+	{ "CSC3551", "10431503", generic_dsd_config },
+	{ "CSC3551", "10431533", generic_dsd_config },
+	{ "CSC3551", "10431573", generic_dsd_config },
+	{ "CSC3551", "10431663", generic_dsd_config },
+	{ "CSC3551", "104317F3", generic_dsd_config },
+	{ "CSC3551", "10431C9F", generic_dsd_config },
+	{ "CSC3551", "10431CAF", generic_dsd_config },
+	{ "CSC3551", "10431CCF", generic_dsd_config },
+	{ "CSC3551", "10431CDF", generic_dsd_config },
+	{ "CSC3551", "10431CEF", generic_dsd_config },
+	{ "CSC3551", "10431D1F", generic_dsd_config },
 	{}
 };