ssb: Fix DMA-API compilation for non-PCI systems
This fixes compilation of the SSB DMA-API code on non-PCI platforms. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
9581483444
commit
fd0fcf5c29
@@ -427,12 +427,16 @@ static inline int ssb_dma_mapping_error(struct ssb_device *dev, dma_addr_t addr)
|
|||||||
{
|
{
|
||||||
switch (dev->bus->bustype) {
|
switch (dev->bus->bustype) {
|
||||||
case SSB_BUSTYPE_PCI:
|
case SSB_BUSTYPE_PCI:
|
||||||
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
return pci_dma_mapping_error(dev->bus->host_pci, addr);
|
return pci_dma_mapping_error(dev->bus->host_pci, addr);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case SSB_BUSTYPE_SSB:
|
case SSB_BUSTYPE_SSB:
|
||||||
return dma_mapping_error(dev->dev, addr);
|
return dma_mapping_error(dev->dev, addr);
|
||||||
default:
|
default:
|
||||||
__ssb_dma_not_implemented(dev);
|
break;
|
||||||
}
|
}
|
||||||
|
__ssb_dma_not_implemented(dev);
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,12 +445,16 @@ static inline dma_addr_t ssb_dma_map_single(struct ssb_device *dev, void *p,
|
|||||||
{
|
{
|
||||||
switch (dev->bus->bustype) {
|
switch (dev->bus->bustype) {
|
||||||
case SSB_BUSTYPE_PCI:
|
case SSB_BUSTYPE_PCI:
|
||||||
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
return pci_map_single(dev->bus->host_pci, p, size, dir);
|
return pci_map_single(dev->bus->host_pci, p, size, dir);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case SSB_BUSTYPE_SSB:
|
case SSB_BUSTYPE_SSB:
|
||||||
return dma_map_single(dev->dev, p, size, dir);
|
return dma_map_single(dev->dev, p, size, dir);
|
||||||
default:
|
default:
|
||||||
__ssb_dma_not_implemented(dev);
|
break;
|
||||||
}
|
}
|
||||||
|
__ssb_dma_not_implemented(dev);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -455,14 +463,18 @@ static inline void ssb_dma_unmap_single(struct ssb_device *dev, dma_addr_t dma_a
|
|||||||
{
|
{
|
||||||
switch (dev->bus->bustype) {
|
switch (dev->bus->bustype) {
|
||||||
case SSB_BUSTYPE_PCI:
|
case SSB_BUSTYPE_PCI:
|
||||||
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
pci_unmap_single(dev->bus->host_pci, dma_addr, size, dir);
|
pci_unmap_single(dev->bus->host_pci, dma_addr, size, dir);
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case SSB_BUSTYPE_SSB:
|
case SSB_BUSTYPE_SSB:
|
||||||
dma_unmap_single(dev->dev, dma_addr, size, dir);
|
dma_unmap_single(dev->dev, dma_addr, size, dir);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
__ssb_dma_not_implemented(dev);
|
break;
|
||||||
}
|
}
|
||||||
|
__ssb_dma_not_implemented(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev,
|
static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev,
|
||||||
@@ -472,15 +484,19 @@ static inline void ssb_dma_sync_single_for_cpu(struct ssb_device *dev,
|
|||||||
{
|
{
|
||||||
switch (dev->bus->bustype) {
|
switch (dev->bus->bustype) {
|
||||||
case SSB_BUSTYPE_PCI:
|
case SSB_BUSTYPE_PCI:
|
||||||
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
|
pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
|
||||||
size, dir);
|
size, dir);
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case SSB_BUSTYPE_SSB:
|
case SSB_BUSTYPE_SSB:
|
||||||
dma_sync_single_for_cpu(dev->dev, dma_addr, size, dir);
|
dma_sync_single_for_cpu(dev->dev, dma_addr, size, dir);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
__ssb_dma_not_implemented(dev);
|
break;
|
||||||
}
|
}
|
||||||
|
__ssb_dma_not_implemented(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev,
|
static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev,
|
||||||
@@ -490,15 +506,19 @@ static inline void ssb_dma_sync_single_for_device(struct ssb_device *dev,
|
|||||||
{
|
{
|
||||||
switch (dev->bus->bustype) {
|
switch (dev->bus->bustype) {
|
||||||
case SSB_BUSTYPE_PCI:
|
case SSB_BUSTYPE_PCI:
|
||||||
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
|
pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
|
||||||
size, dir);
|
size, dir);
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case SSB_BUSTYPE_SSB:
|
case SSB_BUSTYPE_SSB:
|
||||||
dma_sync_single_for_device(dev->dev, dma_addr, size, dir);
|
dma_sync_single_for_device(dev->dev, dma_addr, size, dir);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
__ssb_dma_not_implemented(dev);
|
break;
|
||||||
}
|
}
|
||||||
|
__ssb_dma_not_implemented(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev,
|
static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev,
|
||||||
@@ -509,17 +529,21 @@ static inline void ssb_dma_sync_single_range_for_cpu(struct ssb_device *dev,
|
|||||||
{
|
{
|
||||||
switch (dev->bus->bustype) {
|
switch (dev->bus->bustype) {
|
||||||
case SSB_BUSTYPE_PCI:
|
case SSB_BUSTYPE_PCI:
|
||||||
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
/* Just sync everything. That's all the PCI API can do. */
|
/* Just sync everything. That's all the PCI API can do. */
|
||||||
pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
|
pci_dma_sync_single_for_cpu(dev->bus->host_pci, dma_addr,
|
||||||
offset + size, dir);
|
offset + size, dir);
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case SSB_BUSTYPE_SSB:
|
case SSB_BUSTYPE_SSB:
|
||||||
dma_sync_single_range_for_cpu(dev->dev, dma_addr, offset,
|
dma_sync_single_range_for_cpu(dev->dev, dma_addr, offset,
|
||||||
size, dir);
|
size, dir);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
__ssb_dma_not_implemented(dev);
|
break;
|
||||||
}
|
}
|
||||||
|
__ssb_dma_not_implemented(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev,
|
static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev,
|
||||||
@@ -530,17 +554,21 @@ static inline void ssb_dma_sync_single_range_for_device(struct ssb_device *dev,
|
|||||||
{
|
{
|
||||||
switch (dev->bus->bustype) {
|
switch (dev->bus->bustype) {
|
||||||
case SSB_BUSTYPE_PCI:
|
case SSB_BUSTYPE_PCI:
|
||||||
|
#ifdef CONFIG_SSB_PCIHOST
|
||||||
/* Just sync everything. That's all the PCI API can do. */
|
/* Just sync everything. That's all the PCI API can do. */
|
||||||
pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
|
pci_dma_sync_single_for_device(dev->bus->host_pci, dma_addr,
|
||||||
offset + size, dir);
|
offset + size, dir);
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
case SSB_BUSTYPE_SSB:
|
case SSB_BUSTYPE_SSB:
|
||||||
dma_sync_single_range_for_device(dev->dev, dma_addr, offset,
|
dma_sync_single_range_for_device(dev->dev, dma_addr, offset,
|
||||||
size, dir);
|
size, dir);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
__ssb_dma_not_implemented(dev);
|
break;
|
||||||
}
|
}
|
||||||
|
__ssb_dma_not_implemented(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user