2437d5ea21
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>
56 lines
2.1 KiB
Plaintext
56 lines
2.1 KiB
Plaintext
# 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.
|