
On s390 systems (aka mainframes), it has classic channel devices for networking and permanent storage that are currently even more common than PCI devices. Hence it could have a fully functional s390 kernel with CONFIG_PCI=n, then the relevant iomem mapping functions [including ioremap(), devm_ioremap(), etc.] are not available. Here let QCOM_HIDMA depend on HAS_IOMEM so that it won't be built to cause below compiling error if PCI is unset. -------------------------------------------------------- ld: drivers/dma/qcom/hidma.o: in function `hidma_probe': hidma.c:(.text+0x4b46): undefined reference to `devm_ioremap_resource' ld: hidma.c:(.text+0x4b9e): undefined reference to `devm_ioremap_resource' make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Error 1 make: *** [Makefile:1264: vmlinux] Error 2 Signed-off-by: Baoquan He <bhe@redhat.com> Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com> Cc: Andy Gross <agross@kernel.org> Cc: Bjorn Andersson <andersson@kernel.org> Cc: Konrad Dybcio <konrad.dybcio@linaro.org> Cc: Vinod Koul <vkoul@kernel.org> Cc: linux-arm-msm@vger.kernel.org Cc: dmaengine@vger.kernel.org Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@gmail.com> Link: https://lore.kernel.org/r/20230506111628.712316-3-bhe@redhat.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
2.1 KiB
SPDX-License-Identifier: GPL-2.0-only
config QCOM_ADM tristate "Qualcomm ADM support" depends on (ARCH_QCOM || COMPILE_TEST) && !PHYS_ADDR_T_64BIT select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help Enable support for the Qualcomm Application Data Mover (ADM) DMA controller, as present on MSM8x60, APQ8064, and IPQ8064 devices. This controller provides DMA capabilities for both general purpose and on-chip peripheral devices.
config QCOM_BAM_DMA tristate "QCOM BAM DMA support" depends on ARCH_QCOM || (COMPILE_TEST && OF && ARM) select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help Enable support for the QCOM BAM DMA controller. This controller provides DMA capabilities for a variety of on-chip devices.
config QCOM_GPI_DMA tristate "Qualcomm Technologies GPI DMA support" depends on ARCH_QCOM select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help Enable support for the QCOM GPI DMA controller. This controller provides DMA capabilities for a variety of peripheral buses such as I2C, UART, and SPI. By using GPI dmaengine driver, bus drivers can use a standardize interface that is protocol independent to transfer data between DDR and peripheral.
config QCOM_HIDMA_MGMT tristate "Qualcomm Technologies HIDMA Management support" depends on HAS_IOMEM select DMA_ENGINE help Enable support for the Qualcomm Technologies HIDMA Management. Each DMA device requires one management interface driver for basic initialization before QCOM_HIDMA channel driver can start managing the channels. In a virtualized environment, the guest OS would run QCOM_HIDMA channel driver and the host would run the QCOM_HIDMA_MGMT management driver.
config QCOM_HIDMA tristate "Qualcomm Technologies HIDMA Channel support" depends on HAS_IOMEM select DMA_ENGINE help Enable support for the Qualcomm Technologies HIDMA controller. The HIDMA controller supports optimized buffer copies (user to kernel, kernel to kernel, etc.). It only supports memcpy interface. The core is not intended for general purpose slave DMA.