mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge tag 'sound-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Lots of small fixes: - A race fix for debugfs handling in ALSA core - A series of corrections for MIDI2 core format conversions - ASoC Intel fixes for 16 bit DMIC config - Updates for missing module parameters in ASoC code - HD-audio quirk, Cirrus codec fix, etc minor fixes" * tag 'sound-6.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (26 commits) ALSA: seq: ump: Fix swapped song position pointer data ASoC: SOF: ipc4-topology: Adjust the params based on DAI formats ASoC: SOF: ipc4-topology: Improve readability of sof_ipc4_prepare_dai_copier() ASoC: SOF: ipc4-topology/pcm: Rename sof_ipc4_copier_is_single_format() ASoC: SOF: ipc4-topology: Print out the channel count in sof_ipc4_dbg_audio_format ASoC: SOF: ipc4-topology: Add support for NHLT with 16-bit only DMIC blob ALSA: seq: Fix yet another spot for system message conversion ALSA: ump: Set default protocol when not given explicitly ALSA: ump: Don't accept an invalid UMP protocol number ASoC: SOF: ipc4-topology: Fix input format query of process modules without base extension ASoC: Intel: sof-sdw: fix missing SPI_MASTER dependency ALSA: pcm: fix typo in comment ALSA: ump: Don't clear bank selection after sending a program change ALSA: seq: Fix incorrect UMP type for system messages ALSA/hda: intel-dsp-config: reduce log verbosity ALSA: seq: Don't clear bank selection at event -> UMP MIDI2 conversion ALSA: seq: Fix missing bank setup between MIDI1/MIDI2 UMP conversion ASoC: SOF: add missing MODULE_DESCRIPTION() ASoC: SOF: reorder MODULE_ definitions ASoC: SOF: AMD: group all module related information ...
This commit is contained in:
@@ -5188,7 +5188,6 @@ F: Documentation/devicetree/bindings/media/i2c/chrontel,ch7322.yaml
|
||||
F: drivers/media/cec/i2c/ch7322.c
|
||||
|
||||
CIRRUS LOGIC AUDIO CODEC DRIVERS
|
||||
M: James Schulman <james.schulman@cirrus.com>
|
||||
M: David Rhodes <david.rhodes@cirrus.com>
|
||||
M: Richard Fitzgerald <rf@opensource.cirrus.com>
|
||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||
|
||||
@@ -124,7 +124,7 @@ struct snd_pcm_ops {
|
||||
#define SNDRV_PCM_RATE_768000 (1U<<16) /* 768000Hz */
|
||||
|
||||
#define SNDRV_PCM_RATE_CONTINUOUS (1U<<30) /* continuous range */
|
||||
#define SNDRV_PCM_RATE_KNOT (1U<<31) /* supports more non-continuos rates */
|
||||
#define SNDRV_PCM_RATE_KNOT (1U<<31) /* supports more non-continuous rates */
|
||||
|
||||
#define SNDRV_PCM_RATE_8000_44100 (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|\
|
||||
SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|\
|
||||
|
||||
@@ -537,6 +537,11 @@ void snd_card_disconnect(struct snd_card *card)
|
||||
synchronize_irq(card->sync_irq);
|
||||
|
||||
snd_info_card_disconnect(card);
|
||||
#ifdef CONFIG_SND_DEBUG
|
||||
debugfs_remove(card->debugfs_root);
|
||||
card->debugfs_root = NULL;
|
||||
#endif
|
||||
|
||||
if (card->registered) {
|
||||
device_del(&card->card_dev);
|
||||
card->registered = false;
|
||||
@@ -586,10 +591,6 @@ static int snd_card_do_free(struct snd_card *card)
|
||||
dev_warn(card->dev, "unable to free card info\n");
|
||||
/* Not fatal error */
|
||||
}
|
||||
#ifdef CONFIG_SND_DEBUG
|
||||
debugfs_remove(card->debugfs_root);
|
||||
card->debugfs_root = NULL;
|
||||
#endif
|
||||
if (card->release_completion)
|
||||
complete(card->release_completion);
|
||||
if (!card->managed)
|
||||
|
||||
@@ -37,11 +37,15 @@ static const int jack_switch_types[SND_JACK_SWITCH_TYPES] = {
|
||||
};
|
||||
#endif /* CONFIG_SND_JACK_INPUT_DEV */
|
||||
|
||||
static void snd_jack_remove_debugfs(struct snd_jack *jack);
|
||||
|
||||
static int snd_jack_dev_disconnect(struct snd_device *device)
|
||||
{
|
||||
#ifdef CONFIG_SND_JACK_INPUT_DEV
|
||||
struct snd_jack *jack = device->device_data;
|
||||
|
||||
snd_jack_remove_debugfs(jack);
|
||||
|
||||
#ifdef CONFIG_SND_JACK_INPUT_DEV
|
||||
guard(mutex)(&jack->input_dev_lock);
|
||||
if (!jack->input_dev)
|
||||
return 0;
|
||||
@@ -381,10 +385,14 @@ static int snd_jack_debugfs_add_inject_node(struct snd_jack *jack,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void snd_jack_debugfs_clear_inject_node(struct snd_jack_kctl *jack_kctl)
|
||||
static void snd_jack_remove_debugfs(struct snd_jack *jack)
|
||||
{
|
||||
debugfs_remove(jack_kctl->jack_debugfs_root);
|
||||
jack_kctl->jack_debugfs_root = NULL;
|
||||
struct snd_jack_kctl *jack_kctl;
|
||||
|
||||
list_for_each_entry(jack_kctl, &jack->kctl_list, list) {
|
||||
debugfs_remove(jack_kctl->jack_debugfs_root);
|
||||
jack_kctl->jack_debugfs_root = NULL;
|
||||
}
|
||||
}
|
||||
#else /* CONFIG_SND_JACK_INJECTION_DEBUG */
|
||||
static int snd_jack_debugfs_add_inject_node(struct snd_jack *jack,
|
||||
@@ -393,7 +401,7 @@ static int snd_jack_debugfs_add_inject_node(struct snd_jack *jack,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void snd_jack_debugfs_clear_inject_node(struct snd_jack_kctl *jack_kctl)
|
||||
static void snd_jack_remove_debugfs(struct snd_jack *jack)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_SND_JACK_INJECTION_DEBUG */
|
||||
@@ -404,7 +412,6 @@ static void snd_jack_kctl_private_free(struct snd_kcontrol *kctl)
|
||||
|
||||
jack_kctl = kctl->private_data;
|
||||
if (jack_kctl) {
|
||||
snd_jack_debugfs_clear_inject_node(jack_kctl);
|
||||
list_del(&jack_kctl->list);
|
||||
kfree(jack_kctl);
|
||||
}
|
||||
@@ -497,8 +504,8 @@ int snd_jack_new(struct snd_card *card, const char *id, int type,
|
||||
.dev_free = snd_jack_dev_free,
|
||||
#ifdef CONFIG_SND_JACK_INPUT_DEV
|
||||
.dev_register = snd_jack_dev_register,
|
||||
.dev_disconnect = snd_jack_dev_disconnect,
|
||||
#endif /* CONFIG_SND_JACK_INPUT_DEV */
|
||||
.dev_disconnect = snd_jack_dev_disconnect,
|
||||
};
|
||||
|
||||
if (initial_kctl) {
|
||||
|
||||
@@ -157,7 +157,7 @@ static void ump_system_to_one_param_ev(const union snd_ump_midi1_msg *val,
|
||||
static void ump_system_to_songpos_ev(const union snd_ump_midi1_msg *val,
|
||||
struct snd_seq_event *ev)
|
||||
{
|
||||
ev->data.control.value = (val->system.parm1 << 7) | val->system.parm2;
|
||||
ev->data.control.value = (val->system.parm2 << 7) | val->system.parm1;
|
||||
}
|
||||
|
||||
/* Encoders for 0xf0 - 0xff */
|
||||
@@ -368,6 +368,7 @@ static int cvt_ump_midi1_to_midi2(struct snd_seq_client *dest,
|
||||
struct snd_seq_ump_event ev_cvt;
|
||||
const union snd_ump_midi1_msg *midi1 = (const union snd_ump_midi1_msg *)event->ump;
|
||||
union snd_ump_midi2_msg *midi2 = (union snd_ump_midi2_msg *)ev_cvt.ump;
|
||||
struct snd_seq_ump_midi2_bank *cc;
|
||||
|
||||
ev_cvt = *event;
|
||||
memset(&ev_cvt.ump, 0, sizeof(ev_cvt.ump));
|
||||
@@ -387,11 +388,29 @@ static int cvt_ump_midi1_to_midi2(struct snd_seq_client *dest,
|
||||
midi2->paf.data = upscale_7_to_32bit(midi1->paf.data);
|
||||
break;
|
||||
case UMP_MSG_STATUS_CC:
|
||||
cc = &dest_port->midi2_bank[midi1->note.channel];
|
||||
switch (midi1->cc.index) {
|
||||
case UMP_CC_BANK_SELECT:
|
||||
cc->bank_set = 1;
|
||||
cc->cc_bank_msb = midi1->cc.data;
|
||||
return 0; // skip
|
||||
case UMP_CC_BANK_SELECT_LSB:
|
||||
cc->bank_set = 1;
|
||||
cc->cc_bank_lsb = midi1->cc.data;
|
||||
return 0; // skip
|
||||
}
|
||||
midi2->cc.index = midi1->cc.index;
|
||||
midi2->cc.data = upscale_7_to_32bit(midi1->cc.data);
|
||||
break;
|
||||
case UMP_MSG_STATUS_PROGRAM:
|
||||
midi2->pg.program = midi1->pg.program;
|
||||
cc = &dest_port->midi2_bank[midi1->note.channel];
|
||||
if (cc->bank_set) {
|
||||
midi2->pg.bank_valid = 1;
|
||||
midi2->pg.bank_msb = cc->cc_bank_msb;
|
||||
midi2->pg.bank_lsb = cc->cc_bank_lsb;
|
||||
cc->bank_set = 0;
|
||||
}
|
||||
break;
|
||||
case UMP_MSG_STATUS_CHANNEL_PRESSURE:
|
||||
midi2->caf.data = upscale_7_to_32bit(midi1->caf.data);
|
||||
@@ -419,6 +438,7 @@ static int cvt_ump_midi2_to_midi1(struct snd_seq_client *dest,
|
||||
struct snd_seq_ump_event ev_cvt;
|
||||
union snd_ump_midi1_msg *midi1 = (union snd_ump_midi1_msg *)ev_cvt.ump;
|
||||
const union snd_ump_midi2_msg *midi2 = (const union snd_ump_midi2_msg *)event->ump;
|
||||
int err;
|
||||
u16 v;
|
||||
|
||||
ev_cvt = *event;
|
||||
@@ -443,6 +463,24 @@ static int cvt_ump_midi2_to_midi1(struct snd_seq_client *dest,
|
||||
midi1->cc.data = downscale_32_to_7bit(midi2->cc.data);
|
||||
break;
|
||||
case UMP_MSG_STATUS_PROGRAM:
|
||||
if (midi2->pg.bank_valid) {
|
||||
midi1->cc.status = UMP_MSG_STATUS_CC;
|
||||
midi1->cc.index = UMP_CC_BANK_SELECT;
|
||||
midi1->cc.data = midi2->pg.bank_msb;
|
||||
err = __snd_seq_deliver_single_event(dest, dest_port,
|
||||
(struct snd_seq_event *)&ev_cvt,
|
||||
atomic, hop);
|
||||
if (err < 0)
|
||||
return err;
|
||||
midi1->cc.index = UMP_CC_BANK_SELECT_LSB;
|
||||
midi1->cc.data = midi2->pg.bank_lsb;
|
||||
err = __snd_seq_deliver_single_event(dest, dest_port,
|
||||
(struct snd_seq_event *)&ev_cvt,
|
||||
atomic, hop);
|
||||
if (err < 0)
|
||||
return err;
|
||||
midi1->note.status = midi2->note.status;
|
||||
}
|
||||
midi1->pg.program = midi2->pg.program;
|
||||
break;
|
||||
case UMP_MSG_STATUS_CHANNEL_PRESSURE:
|
||||
@@ -691,6 +729,7 @@ static int system_ev_to_ump_midi1(const struct snd_seq_event *event,
|
||||
union snd_ump_midi1_msg *data,
|
||||
unsigned char status)
|
||||
{
|
||||
data->system.type = UMP_MSG_TYPE_SYSTEM; // override
|
||||
data->system.status = status;
|
||||
return 1;
|
||||
}
|
||||
@@ -701,6 +740,7 @@ static int system_1p_ev_to_ump_midi1(const struct snd_seq_event *event,
|
||||
union snd_ump_midi1_msg *data,
|
||||
unsigned char status)
|
||||
{
|
||||
data->system.type = UMP_MSG_TYPE_SYSTEM; // override
|
||||
data->system.status = status;
|
||||
data->system.parm1 = event->data.control.value & 0x7f;
|
||||
return 1;
|
||||
@@ -712,9 +752,10 @@ static int system_2p_ev_to_ump_midi1(const struct snd_seq_event *event,
|
||||
union snd_ump_midi1_msg *data,
|
||||
unsigned char status)
|
||||
{
|
||||
data->system.type = UMP_MSG_TYPE_SYSTEM; // override
|
||||
data->system.status = status;
|
||||
data->system.parm1 = (event->data.control.value >> 7) & 0x7f;
|
||||
data->system.parm2 = event->data.control.value & 0x7f;
|
||||
data->system.parm1 = event->data.control.value & 0x7f;
|
||||
data->system.parm2 = (event->data.control.value >> 7) & 0x7f;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -854,7 +895,6 @@ static int pgm_ev_to_ump_midi2(const struct snd_seq_event *event,
|
||||
data->pg.bank_msb = cc->cc_bank_msb;
|
||||
data->pg.bank_lsb = cc->cc_bank_lsb;
|
||||
cc->bank_set = 0;
|
||||
cc->cc_bank_msb = cc->cc_bank_lsb = 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -685,10 +685,17 @@ static void seq_notify_protocol(struct snd_ump_endpoint *ump)
|
||||
*/
|
||||
int snd_ump_switch_protocol(struct snd_ump_endpoint *ump, unsigned int protocol)
|
||||
{
|
||||
unsigned int type;
|
||||
|
||||
protocol &= ump->info.protocol_caps;
|
||||
if (protocol == ump->info.protocol)
|
||||
return 0;
|
||||
|
||||
type = protocol & SNDRV_UMP_EP_INFO_PROTO_MIDI_MASK;
|
||||
if (type != SNDRV_UMP_EP_INFO_PROTO_MIDI1 &&
|
||||
type != SNDRV_UMP_EP_INFO_PROTO_MIDI2)
|
||||
return 0;
|
||||
|
||||
ump->info.protocol = protocol;
|
||||
ump_dbg(ump, "New protocol = %x (caps = %x)\n",
|
||||
protocol, ump->info.protocol_caps);
|
||||
@@ -960,6 +967,14 @@ int snd_ump_parse_endpoint(struct snd_ump_endpoint *ump)
|
||||
if (err < 0)
|
||||
ump_dbg(ump, "Unable to get UMP EP stream config\n");
|
||||
|
||||
/* If no protocol is set by some reason, assume the valid one */
|
||||
if (!(ump->info.protocol & SNDRV_UMP_EP_INFO_PROTO_MIDI_MASK)) {
|
||||
if (ump->info.protocol_caps & SNDRV_UMP_EP_INFO_PROTO_MIDI2)
|
||||
ump->info.protocol |= SNDRV_UMP_EP_INFO_PROTO_MIDI2;
|
||||
else if (ump->info.protocol_caps & SNDRV_UMP_EP_INFO_PROTO_MIDI1)
|
||||
ump->info.protocol |= SNDRV_UMP_EP_INFO_PROTO_MIDI1;
|
||||
}
|
||||
|
||||
/* Query and create blocks from Function Blocks */
|
||||
for (blk = 0; blk < ump->info.num_blocks; blk++) {
|
||||
err = create_block_from_fb_info(ump, blk);
|
||||
|
||||
@@ -404,7 +404,6 @@ static int cvt_legacy_cmd_to_ump(struct ump_cvt_to_ump *cvt,
|
||||
midi2->pg.bank_msb = cc->cc_bank_msb;
|
||||
midi2->pg.bank_lsb = cc->cc_bank_lsb;
|
||||
cc->bank_set = 0;
|
||||
cc->cc_bank_msb = cc->cc_bank_lsb = 0;
|
||||
}
|
||||
break;
|
||||
case UMP_MSG_STATUS_CHANNEL_PRESSURE:
|
||||
|
||||
@@ -668,7 +668,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
|
||||
return SND_INTEL_DSP_DRIVER_LEGACY;
|
||||
}
|
||||
|
||||
dev_info(&pci->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class);
|
||||
dev_dbg(&pci->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class);
|
||||
|
||||
/* find the configuration for the specific device */
|
||||
cfg = snd_intel_dsp_find_config(pci, config_table, ARRAY_SIZE(config_table));
|
||||
@@ -678,12 +678,12 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
|
||||
if (cfg->flags & FLAG_SOF) {
|
||||
if (cfg->flags & FLAG_SOF_ONLY_IF_SOUNDWIRE &&
|
||||
snd_intel_dsp_check_soundwire(pci) > 0) {
|
||||
dev_info(&pci->dev, "SoundWire enabled on CannonLake+ platform, using SOF driver\n");
|
||||
dev_info_once(&pci->dev, "SoundWire enabled on CannonLake+ platform, using SOF driver\n");
|
||||
return SND_INTEL_DSP_DRIVER_SOF;
|
||||
}
|
||||
if (cfg->flags & FLAG_SOF_ONLY_IF_DMIC &&
|
||||
snd_intel_dsp_check_dmic(pci)) {
|
||||
dev_info(&pci->dev, "Digital mics found on Skylake+ platform, using SOF driver\n");
|
||||
dev_info_once(&pci->dev, "Digital mics found on Skylake+ platform, using SOF driver\n");
|
||||
return SND_INTEL_DSP_DRIVER_SOF;
|
||||
}
|
||||
if (!(cfg->flags & FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE))
|
||||
@@ -694,7 +694,7 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
|
||||
if (cfg->flags & FLAG_SST) {
|
||||
if (cfg->flags & FLAG_SST_ONLY_IF_DMIC) {
|
||||
if (snd_intel_dsp_check_dmic(pci)) {
|
||||
dev_info(&pci->dev, "Digital mics found on Skylake+ platform, using SST driver\n");
|
||||
dev_info_once(&pci->dev, "Digital mics found on Skylake+ platform, using SST driver\n");
|
||||
return SND_INTEL_DSP_DRIVER_SST;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -10310,7 +10310,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
|
||||
SND_PCI_QUIRK(0x1043, 0x3a20, "ASUS G614JZR", ALC245_FIXUP_CS35L41_SPI_2),
|
||||
SND_PCI_QUIRK(0x1043, 0x3a30, "ASUS G814JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2),
|
||||
SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC245_FIXUP_CS35L41_SPI_2),
|
||||
SND_PCI_QUIRK(0x1043, 0x3a40, "ASUS G814JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
|
||||
SND_PCI_QUIRK(0x1043, 0x3a50, "ASUS G834JYR/JZR", ALC245_FIXUP_CS35L41_SPI_2),
|
||||
SND_PCI_QUIRK(0x1043, 0x3a60, "ASUS G634JYR/JZR", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
|
||||
SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC),
|
||||
|
||||
@@ -310,8 +310,9 @@ static int cs42l43_startup(struct snd_pcm_substream *substream, struct snd_soc_d
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct cs42l43_codec *priv = snd_soc_component_get_drvdata(component);
|
||||
struct cs42l43 *cs42l43 = priv->core;
|
||||
int provider = !!regmap_test_bits(cs42l43->regmap, CS42L43_ASP_CLK_CONFIG2,
|
||||
CS42L43_ASP_MASTER_MODE_MASK);
|
||||
int provider = !dai->id || !!regmap_test_bits(cs42l43->regmap,
|
||||
CS42L43_ASP_CLK_CONFIG2,
|
||||
CS42L43_ASP_MASTER_MODE_MASK);
|
||||
|
||||
if (provider)
|
||||
priv->constraint.mask = CS42L43_PROVIDER_RATE_MASK;
|
||||
|
||||
@@ -2085,5 +2085,6 @@ static const struct cs_dsp_client_ops wm_adsp2_client_ops = {
|
||||
.watchdog_expired = wm_adsp_fatal_error,
|
||||
};
|
||||
|
||||
MODULE_DESCRIPTION("Cirrus Logic ASoC DSP Support");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_IMPORT_NS(FW_CS_DSP);
|
||||
|
||||
@@ -652,7 +652,7 @@ if SND_SOC_SOF_INTEL_SOUNDWIRE
|
||||
|
||||
config SND_SOC_INTEL_SOUNDWIRE_SOF_MACH
|
||||
tristate "SoundWire generic machine driver"
|
||||
depends on I2C && ACPI
|
||||
depends on I2C && SPI_MASTER && ACPI
|
||||
depends on MFD_INTEL_LPSS || COMPILE_TEST
|
||||
depends on SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES || COMPILE_TEST
|
||||
depends on SOUNDWIRE
|
||||
|
||||
@@ -258,8 +258,8 @@ const struct snd_sof_dsp_ops sof_acp_common_ops = {
|
||||
};
|
||||
EXPORT_SYMBOL_NS(sof_acp_common_ops, SND_SOC_SOF_AMD_COMMON);
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_DESCRIPTION("ACP SOF COMMON Driver");
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_AMD_COMMON);
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_XTENSA);
|
||||
MODULE_IMPORT_NS(SOUNDWIRE_AMD_INIT);
|
||||
MODULE_DESCRIPTION("ACP SOF COMMON Driver");
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
||||
@@ -801,7 +801,7 @@ void amd_sof_acp_remove(struct snd_sof_dev *sdev)
|
||||
}
|
||||
EXPORT_SYMBOL_NS(amd_sof_acp_remove, SND_SOC_SOF_AMD_COMMON);
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_DESCRIPTION("AMD ACP sof driver");
|
||||
MODULE_IMPORT_NS(SOUNDWIRE_AMD_INIT);
|
||||
MODULE_IMPORT_NS(SND_AMD_SOUNDWIRE_ACPI);
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
||||
@@ -140,7 +140,3 @@ int sof_acp63_ops_init(struct snd_sof_dev *sdev)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_AMD_COMMON);
|
||||
MODULE_DESCRIPTION("ACP63 SOF Driver");
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
||||
@@ -109,5 +109,6 @@ static struct pci_driver snd_sof_pci_amd_acp63_driver = {
|
||||
module_pci_driver(snd_sof_pci_amd_acp63_driver);
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_DESCRIPTION("ACP63 SOF Driver");
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_AMD_COMMON);
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV);
|
||||
|
||||
@@ -99,5 +99,6 @@ static struct pci_driver snd_sof_pci_amd_rmb_driver = {
|
||||
module_pci_driver(snd_sof_pci_amd_rmb_driver);
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_DESCRIPTION("REMBRANDT SOF Driver");
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_AMD_COMMON);
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV);
|
||||
|
||||
@@ -103,5 +103,6 @@ static struct pci_driver snd_sof_pci_amd_rn_driver = {
|
||||
module_pci_driver(snd_sof_pci_amd_rn_driver);
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_DESCRIPTION("RENOIR SOF Driver");
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_AMD_COMMON);
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV);
|
||||
|
||||
@@ -101,5 +101,6 @@ static struct pci_driver snd_sof_pci_amd_vgh_driver = {
|
||||
module_pci_driver(snd_sof_pci_amd_vgh_driver);
|
||||
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_DESCRIPTION("VANGOGH SOF Driver");
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_AMD_COMMON);
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV);
|
||||
|
||||
@@ -140,7 +140,3 @@ int sof_rembrandt_ops_init(struct snd_sof_dev *sdev)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_IMPORT_NS(SND_SOC_SOF_AMD_COMMON);
|
||||
MODULE_DESCRIPTION("REMBRANDT SOF Driver");
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user