Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f37441c authored by Holger Schurig's avatar Holger Schurig Committed by John W. Linville
Browse files

ssb: allow compilation on systems without PCI



Makes ssb work on system without a PCI bus.

Signed-off-by: default avatarHolger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e10e0dfe
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1165,15 +1165,19 @@ EXPORT_SYMBOL(ssb_dma_translation);

int ssb_dma_set_mask(struct ssb_device *dev, u64 mask)
{
#ifdef CONFIG_SSB_PCIHOST
	int err;
#endif

	switch (dev->bus->bustype) {
	case SSB_BUSTYPE_PCI:
#ifdef CONFIG_SSB_PCIHOST
		err = pci_set_dma_mask(dev->bus->host_pci, mask);
		if (err)
			return err;
		err = pci_set_consistent_dma_mask(dev->bus->host_pci, mask);
		return err;
#endif
	case SSB_BUSTYPE_SSB:
		return dma_set_mask(dev->dev, mask);
	default:
@@ -1188,6 +1192,7 @@ void * ssb_dma_alloc_consistent(struct ssb_device *dev, size_t size,
{
	switch (dev->bus->bustype) {
	case SSB_BUSTYPE_PCI:
#ifdef CONFIG_SSB_PCIHOST
		if (gfp_flags & GFP_DMA) {
			/* Workaround: The PCI API does not support passing
			 * a GFP flag. */
@@ -1195,6 +1200,7 @@ void * ssb_dma_alloc_consistent(struct ssb_device *dev, size_t size,
						  size, dma_handle, gfp_flags);
		}
		return pci_alloc_consistent(dev->bus->host_pci, size, dma_handle);
#endif
	case SSB_BUSTYPE_SSB:
		return dma_alloc_coherent(dev->dev, size, dma_handle, gfp_flags);
	default:
@@ -1210,6 +1216,7 @@ void ssb_dma_free_consistent(struct ssb_device *dev, size_t size,
{
	switch (dev->bus->bustype) {
	case SSB_BUSTYPE_PCI:
#ifdef CONFIG_SSB_PCIHOST
		if (gfp_flags & GFP_DMA) {
			/* Workaround: The PCI API does not support passing
			 * a GFP flag. */
@@ -1220,6 +1227,7 @@ void ssb_dma_free_consistent(struct ssb_device *dev, size_t size,
		pci_free_consistent(dev->bus->host_pci, size,
				    vaddr, dma_handle);
		return;
#endif
	case SSB_BUSTYPE_SSB:
		dma_free_coherent(dev->dev, size, vaddr, dma_handle);
		return;