mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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
					
				
					 3 changed files with 16 additions and 3 deletions
				
			
		| 
						 | 
					@ -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 a new issue