|
6 | 6 | * |
7 | 7 | */ |
8 | 8 |
|
| 9 | +#include <linux/soundwire/sdw_intel.h> |
| 10 | +#include <sound/sdca.h> |
9 | 11 | #include <sound/soc-acpi.h> |
10 | 12 | #include <sound/soc-acpi-intel-match.h> |
11 | 13 | #include <sound/soc-acpi-intel-ssp-common.h> |
| 14 | +#include "soc-acpi-intel-sdca-quirks.h" |
12 | 15 | #include "soc-acpi-intel-sdw-mockup-match.h" |
13 | 16 |
|
14 | 17 | static const struct snd_soc_acpi_codecs mtl_rt5682_rt5682s_hp = { |
@@ -133,6 +136,27 @@ static const struct snd_soc_acpi_endpoint rt712_endpoints[] = { |
133 | 136 | }, |
134 | 137 | }; |
135 | 138 |
|
| 139 | +static const struct snd_soc_acpi_endpoint rt712_vb_endpoints[] = { |
| 140 | + { |
| 141 | + .num = 0, |
| 142 | + .aggregated = 0, |
| 143 | + .group_position = 0, |
| 144 | + .group_id = 0, |
| 145 | + }, |
| 146 | + { |
| 147 | + .num = 1, |
| 148 | + .aggregated = 0, |
| 149 | + .group_position = 0, |
| 150 | + .group_id = 0, |
| 151 | + }, |
| 152 | + { |
| 153 | + .num = 2, |
| 154 | + .aggregated = 0, |
| 155 | + .group_position = 0, |
| 156 | + .group_id = 0, |
| 157 | + }, |
| 158 | +}; |
| 159 | + |
136 | 160 | /* |
137 | 161 | * RT722 is a multi-function codec, three endpoints are created for |
138 | 162 | * its headset, amp and dmic functions. |
@@ -190,6 +214,15 @@ static const struct snd_soc_acpi_adr_device rt712_0_single_adr[] = { |
190 | 214 | } |
191 | 215 | }; |
192 | 216 |
|
| 217 | +static const struct snd_soc_acpi_adr_device rt712_vb_0_single_adr[] = { |
| 218 | + { |
| 219 | + .adr = 0x000030025D071201ull, |
| 220 | + .num_endpoints = ARRAY_SIZE(rt712_vb_endpoints), |
| 221 | + .endpoints = rt712_vb_endpoints, |
| 222 | + .name_prefix = "rt712" |
| 223 | + } |
| 224 | +}; |
| 225 | + |
193 | 226 | static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = { |
194 | 227 | { |
195 | 228 | .adr = 0x000330025D171201ull, |
@@ -363,6 +396,15 @@ static const struct snd_soc_acpi_link_adr mtl_712_l0[] = { |
363 | 396 | {} |
364 | 397 | }; |
365 | 398 |
|
| 399 | +static const struct snd_soc_acpi_link_adr mtl_712_vb_l0[] = { |
| 400 | + { |
| 401 | + .mask = BIT(0), |
| 402 | + .num_adr = ARRAY_SIZE(rt712_vb_0_single_adr), |
| 403 | + .adr_d = rt712_vb_0_single_adr, |
| 404 | + }, |
| 405 | + {} |
| 406 | +}; |
| 407 | + |
366 | 408 | static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = { |
367 | 409 | { /* Jack Playback Endpoint */ |
368 | 410 | .num = 0, |
@@ -774,6 +816,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = { |
774 | 816 | .drv_name = "sof_sdw", |
775 | 817 | .sof_tplg_filename = "sof-mtl-rt712-l0-rt1712-l3.tplg", |
776 | 818 | }, |
| 819 | + { |
| 820 | + .link_mask = BIT(0), |
| 821 | + .links = mtl_712_vb_l0, |
| 822 | + .drv_name = "sof_sdw", |
| 823 | + .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, |
| 824 | + .sof_tplg_filename = "sof-mtl-rt712-vb-l0.tplg", |
| 825 | + }, |
777 | 826 | { |
778 | 827 | .link_mask = BIT(0), |
779 | 828 | .links = mtl_712_l0, |
@@ -843,3 +892,5 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = { |
843 | 892 | {}, |
844 | 893 | }; |
845 | 894 | EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_sdw_machines); |
| 895 | + |
| 896 | +MODULE_IMPORT_NS(SND_SOC_ACPI_INTEL_SDCA_QUIRKS); |
0 commit comments