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

Commit e6340361 authored by Michael Buesch's avatar Michael Buesch Committed by John W. Linville
Browse files

ssb: Fix coherent DMA mask for PCI devices



This fixes setting the coherent DMA mask for PCI devices.

Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 6847aa5c
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -1168,15 +1168,21 @@ EXPORT_SYMBOL(ssb_dma_translation);
int ssb_dma_set_mask(struct ssb_device *ssb_dev, u64 mask)
{
	struct device *dma_dev = ssb_dev->dma_dev;
	int err = 0;

#ifdef CONFIG_SSB_PCIHOST
	if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI)
		return dma_set_mask(dma_dev, mask);
	if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI) {
		err = pci_set_dma_mask(ssb_dev->bus->host_pci, mask);
		if (err)
			return err;
		err = pci_set_consistent_dma_mask(ssb_dev->bus->host_pci, mask);
		return err;
	}
#endif
	dma_dev->coherent_dma_mask = mask;
	dma_dev->dma_mask = &dma_dev->coherent_dma_mask;

	return 0;
	return err;
}
EXPORT_SYMBOL(ssb_dma_set_mask);