mirror of https://gitee.com/openkylin/linux.git
ASoC: SOF: add COMPILE_TEST for PCI options
Add COMPILE_TEST and use IS_ENABLED(CONFIG_PCI) to sort out cross-compilation issues. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8fe751d8fd
commit
e13ef82a9a
|
@ -10,7 +10,7 @@ if SND_SOC_SOF_TOPLEVEL
|
||||||
|
|
||||||
config SND_SOC_SOF_PCI
|
config SND_SOC_SOF_PCI
|
||||||
tristate "SOF PCI enumeration support"
|
tristate "SOF PCI enumeration support"
|
||||||
depends on PCI
|
depends on PCI || COMPILE_TEST
|
||||||
select SND_SOC_SOF
|
select SND_SOC_SOF
|
||||||
select SND_SOC_ACPI if ACPI
|
select SND_SOC_ACPI if ACPI
|
||||||
select SND_SOC_SOF_OPTIONS
|
select SND_SOC_SOF_OPTIONS
|
||||||
|
|
|
@ -506,7 +506,9 @@ int hda_dsp_probe(struct snd_sof_dev *sdev)
|
||||||
* TODO: support interrupt mode selection with kernel parameter
|
* TODO: support interrupt mode selection with kernel parameter
|
||||||
* support msi multiple vectors
|
* support msi multiple vectors
|
||||||
*/
|
*/
|
||||||
|
#if IS_ENABLED(CONFIG_PCI)
|
||||||
ret = pci_alloc_irq_vectors(pci, 1, 1, PCI_IRQ_MSI);
|
ret = pci_alloc_irq_vectors(pci, 1, 1, PCI_IRQ_MSI);
|
||||||
|
#endif
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_info(sdev->dev, "use legacy interrupt mode\n");
|
dev_info(sdev->dev, "use legacy interrupt mode\n");
|
||||||
/*
|
/*
|
||||||
|
@ -518,7 +520,9 @@ int hda_dsp_probe(struct snd_sof_dev *sdev)
|
||||||
sdev->msi_enabled = 0;
|
sdev->msi_enabled = 0;
|
||||||
} else {
|
} else {
|
||||||
dev_info(sdev->dev, "use msi interrupt mode\n");
|
dev_info(sdev->dev, "use msi interrupt mode\n");
|
||||||
|
#if IS_ENABLED(CONFIG_PCI)
|
||||||
hdev->irq = pci_irq_vector(pci, 0);
|
hdev->irq = pci_irq_vector(pci, 0);
|
||||||
|
#endif
|
||||||
/* ipc irq number is the same of hda irq */
|
/* ipc irq number is the same of hda irq */
|
||||||
sdev->ipc_irq = hdev->irq;
|
sdev->ipc_irq = hdev->irq;
|
||||||
sdev->msi_enabled = 1;
|
sdev->msi_enabled = 1;
|
||||||
|
@ -622,8 +626,10 @@ int hda_dsp_probe(struct snd_sof_dev *sdev)
|
||||||
free_hda_irq:
|
free_hda_irq:
|
||||||
free_irq(hdev->irq, bus);
|
free_irq(hdev->irq, bus);
|
||||||
free_irq_vector:
|
free_irq_vector:
|
||||||
|
#if IS_ENABLED(CONFIG_PCI)
|
||||||
if (sdev->msi_enabled)
|
if (sdev->msi_enabled)
|
||||||
pci_free_irq_vectors(pci);
|
pci_free_irq_vectors(pci);
|
||||||
|
#endif
|
||||||
free_streams:
|
free_streams:
|
||||||
hda_dsp_stream_free(sdev);
|
hda_dsp_stream_free(sdev);
|
||||||
/* dsp_unmap: not currently used */
|
/* dsp_unmap: not currently used */
|
||||||
|
@ -638,7 +644,6 @@ int hda_dsp_remove(struct snd_sof_dev *sdev)
|
||||||
{
|
{
|
||||||
struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
|
struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
|
||||||
struct hdac_bus *bus = sof_to_bus(sdev);
|
struct hdac_bus *bus = sof_to_bus(sdev);
|
||||||
struct pci_dev *pci = to_pci_dev(sdev->dev);
|
|
||||||
const struct sof_intel_dsp_desc *chip = hda->desc;
|
const struct sof_intel_dsp_desc *chip = hda->desc;
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
|
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
|
||||||
|
@ -667,8 +672,12 @@ int hda_dsp_remove(struct snd_sof_dev *sdev)
|
||||||
|
|
||||||
free_irq(sdev->ipc_irq, sdev);
|
free_irq(sdev->ipc_irq, sdev);
|
||||||
free_irq(hda->irq, bus);
|
free_irq(hda->irq, bus);
|
||||||
if (sdev->msi_enabled)
|
#if IS_ENABLED(CONFIG_PCI)
|
||||||
|
if (sdev->msi_enabled) {
|
||||||
|
struct pci_dev *pci = to_pci_dev(sdev->dev);
|
||||||
pci_free_irq_vectors(pci);
|
pci_free_irq_vectors(pci);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
hda_dsp_stream_free(sdev);
|
hda_dsp_stream_free(sdev);
|
||||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
|
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
|
||||||
|
|
|
@ -251,9 +251,11 @@ static int sof_pci_probe(struct pci_dev *pci,
|
||||||
if (!sof_pdata)
|
if (!sof_pdata)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
#if IS_ENABLED(CONFIG_PCI)
|
||||||
ret = pcim_enable_device(pci);
|
ret = pcim_enable_device(pci);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
#endif
|
||||||
|
|
||||||
ret = pci_request_regions(pci, "Audio DSP");
|
ret = pci_request_regions(pci, "Audio DSP");
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -386,6 +388,7 @@ static const struct pci_device_id sof_pci_ids[] = {
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(pci, sof_pci_ids);
|
MODULE_DEVICE_TABLE(pci, sof_pci_ids);
|
||||||
|
|
||||||
|
#if IS_ENABLED(CONFIG_PCI)
|
||||||
/* pci_driver definition */
|
/* pci_driver definition */
|
||||||
static struct pci_driver snd_sof_pci_driver = {
|
static struct pci_driver snd_sof_pci_driver = {
|
||||||
.name = "sof-audio-pci",
|
.name = "sof-audio-pci",
|
||||||
|
@ -397,5 +400,6 @@ static struct pci_driver snd_sof_pci_driver = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
module_pci_driver(snd_sof_pci_driver);
|
module_pci_driver(snd_sof_pci_driver);
|
||||||
|
#endif
|
||||||
|
|
||||||
MODULE_LICENSE("Dual BSD/GPL");
|
MODULE_LICENSE("Dual BSD/GPL");
|
||||||
|
|
Loading…
Reference in New Issue