• Geert Uytterhoeven's avatar
    spi/drivers: Restrict COMPILE_TEST by HAS_DMA where needed · f59838a0
    Geert Uytterhoeven authored
    commit dd1053a9 ("spi/drivers: Enable build of drivers with
    COMPILE_TEST") allows compile-testing drivers on platforms they're not
    meant for.
    
    However, adding "|| COMPILE_TEST" bypasses all other implicit dependencies
    assumed by the platform dependencies before, like HAS_DMA.
    
    If NO_DMA=y:
    
    drivers/built-in.o: In function `atmel_spi_dma_unmap_xfer':
    drivers/spi/spi-atmel.c:915: undefined reference to `dma_unmap_single'
    drivers/spi/spi-atmel.c:918: undefined reference to `dma_unmap_single'
    drivers/built-in.o: In function `atmel_spi_next_xfer_data':
    drivers/spi/spi-atmel.c:690: undefined reference to `dma_sync_single_for_cpu'
    drivers/built-in.o: In function `atmel_spi_dma_map_xfer':
    drivers/spi/spi-atmel.c:890: undefined reference to `dma_map_single'
    drivers/spi/spi-atmel.c:893: undefined reference to `dma_mapping_error'
    drivers/spi/spi-atmel.c:897: undefined reference to `dma_map_single'
    drivers/spi/spi-atmel.c:900: undefined reference to `dma_mapping_error'
    drivers/spi/spi-atmel.c:902: undefined reference to `dma_unmap_single'
    drivers/built-in.o: In function `atmel_spi_probe':
    drivers/spi/spi-atmel.c:1540: undefined reference to `dma_alloc_coherent'
    drivers/spi/spi-atmel.c:1623: undefined reference to `dma_free_coherent'
    drivers/built-in.o: In function `atmel_spi_remove':
    drivers/spi/spi-atmel.c:1665: undefined reference to `dma_free_coherent'
    drivers/built-in.o: In function `ep93xx_spi_dma_finish':
    drivers/spi/spi-ep93xx.c:550: undefined reference to `dma_unmap_sg'
    drivers/built-in.o: In function `ep93xx_spi_dma_prepare':
    drivers/spi/spi-ep93xx.c:516: undefined reference to `dma_map_sg'
    drivers/spi/spi-ep93xx.c:522: undefined reference to `dma_unmap_sg'
    drivers/built-in.o: In function `omap2_mcspi_rx_dma':
    drivers/spi/spi-omap2-mcspi.c:475: undefined reference to `dma_unmap_single'
    drivers/built-in.o: In function `omap2_mcspi_txrx_dma':
    drivers/spi/spi-omap2-mcspi.c:589: undefined reference to `dma_unmap_single'
    drivers/built-in.o: In function `omap2_mcspi_transfer_one_message':
    drivers/spi/spi-omap2-mcspi.c:1202: undefined reference to `dma_map_single'
    drivers/spi/spi-omap2-mcspi.c:1204: undefined reference to `dma_mapping_error'
    drivers/spi/spi-omap2-mcspi.c:1211: undefined reference to `dma_map_single'
    drivers/spi/spi-omap2-mcspi.c:1213: undefined reference to `dma_mapping_error'
    drivers/spi/spi-omap2-mcspi.c:1217: undefined reference to `dma_unmap_single'
    drivers/built-in.o: In function `tegra_spi_deinit_dma_param':
    drivers/spi/spi-tegra114.c:675: undefined reference to `dma_free_coherent'
    drivers/built-in.o: In function `tegra_spi_copy_spi_rxbuf_to_client_rxbuf':
    drivers/spi/spi-tegra114.c:415: undefined reference to `dma_sync_single_for_cpu'
    drivers/spi/spi-tegra114.c:440: undefined reference to `dma_sync_single_for_cpu'
    drivers/built-in.o: In function `tegra_spi_copy_client_txbuf_to_spi_txbuf':
    drivers/spi/spi-tegra114.c:381: undefined reference to `dma_sync_single_for_cpu'
    drivers/spi/spi-tegra114.c:405: undefined reference to `dma_sync_single_for_cpu'
    drivers/built-in.o: In function `tegra_spi_start_dma_based_transfer':
    drivers/spi/spi-tegra114.c:543: undefined reference to `dma_sync_single_for_cpu'
    drivers/built-in.o: In function `tegra_slink_deinit_dma_param':
    drivers/spi/spi-tegra20-slink.c:705: undefined reference to `dma_free_coherent'
    drivers/built-in.o: In function `tegra_slink_copy_spi_rxbuf_to_client_rxbuf':
    drivers/spi/spi-tegra20-slink.c:427: undefined reference to `dma_sync_single_for_cpu'
    drivers/spi/spi-tegra20-slink.c:452: undefined reference to `dma_sync_single_for_cpu'
    drivers/built-in.o: In function `tegra_slink_copy_client_txbuf_to_spi_txbuf':
    drivers/spi/spi-tegra20-slink.c:393: undefined reference to `dma_sync_single_for_cpu'
    drivers/spi/spi-tegra20-slink.c:417: undefined reference to `dma_sync_single_for_cpu'
    drivers/built-in.o: In function `tegra_slink_start_dma_based_transfer':
    drivers/spi/spi-tegra20-slink.c:561: undefined reference to `dma_sync_single_for_cpu'
    
    Add dependencies on HAS_DMA to fix this.
    Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    f59838a0
Kconfig 18.9 KB