Re: [PATCH] SSB: make it depend on PCI

From: Geert Uytterhoeven
Date: Sun Nov 09 2008 - 05:51:56 EST


On Thu, 6 Nov 2008, Mike Frysinger wrote:
> On Thu, Nov 6, 2008 at 06:07, Johannes Berg wrote:
> > On Thu, 2008-11-06 at 04:51 -0500, Mike Frysinger wrote:
> >> Since the SSB code requires PCI, set the Kconfig dependencies accordingly.
> >> Also tweak the menu display so that the menu does not show up at all if
> >> SSB is not possible.
> >>
> >> Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx>
> >> ---
> >> drivers/ssb/Kconfig | 7 ++++---
> >> 1 files changed, 4 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
> >> index 307b1f6..f0a176a 100644
> >> --- a/drivers/ssb/Kconfig
> >> +++ b/drivers/ssb/Kconfig
> >> @@ -1,10 +1,11 @@
> >> -menu "Sonics Silicon Backplane"
> >> -
> >> config SSB_POSSIBLE
> >> bool
> >> - depends on HAS_IOMEM && HAS_DMA
> >> + depends on HAS_IOMEM && HAS_DMA && PCI
> >
> > This is incorrect. SSB is also used on embedded systems that do not use
> > PCI at all.
>
> while that may be the intent, it doesnt work today.
>
> drivers/ssb/main.c always includes linux/ssb/ssb.h
>
> linux/ssb/ssb.h always calls pci_dma_* functions
>
> arches that do not support PCI fail to build:
> CC drivers/ssb/main.o
> In file included from drivers/ssb/ssb_private.h:5,
> from drivers/ssb/main.c:12:
> include/linux/ssb/ssb.h: In function 'ssb_dma_mapping_error':
> include/linux/ssb/ssb.h:430: error: implicit declaration of function
> 'pci_dma_mapping_error'
> include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_for_cpu':
> include/linux/ssb/ssb.h:475: error: implicit declaration of function
> 'pci_dma_sync_single_for_cpu'
> include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_for_device':
> include/linux/ssb/ssb.h:493: error: implicit declaration of function
> 'pci_dma_sync_single_for_device'
> include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_range_for_cpu':
> include/linux/ssb/ssb.h:517: error: implicit declaration of function
> 'dma_sync_single_range_for_cpu'
> include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_range_for_device':
> include/linux/ssb/ssb.h:538: error: implicit declaration of function
> 'dma_sync_single_range_for_device'
> drivers/ssb/main.c: In function 'ssb_dma_set_mask':
> drivers/ssb/main.c:1183: error: implicit declaration of function 'dma_set_mask'
> make[1]: *** [drivers/ssb/main.o] Error 1
> make: *** [drivers/ssb/main.o] Error 2

I had the same issue on m68k, not only with SSB but also with other legacy
drivers (hp100 Ethernet, AIC7xxx SCSI). It was fixed in commit
998aaf01c6f6f3dffc1ea9e7b20b131e38fdbc78 ("m68k: <asm/pci.h> needs
<asm-generic/pci-dma-compat.h>").

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/