dmaengine: qcom-adm: stop abusing slave_id config
authorArnd Bergmann <arnd@arndb.de>
Mon, 22 Nov 2021 22:22:00 +0000 (23:22 +0100)
committerVinod Koul <vkoul@kernel.org>
Fri, 17 Dec 2021 05:53:56 +0000 (11:23 +0530)
commit03de6b273805b3c552ff158f8688555937375926
tree21ff357eeca75b587137622c2618d9a23f9ba139
parent722d6d2bdcc2dcff5527c704fb8f2bbcb018a232
dmaengine: qcom-adm: stop abusing slave_id config

The slave_id was previously used to pick one DMA slave instead of another,
but this is now done through the DMA descriptors in device tree.

For the qcom_adm driver, the configuration is documented in the DT
binding to contain a tuple of device identifier and a "crci" field,
but the implementation ends up using only a single cell for identifying
the slave, with the crci getting passed in nonstandard properties of
the device, and passed through the dma driver using the old slave_id
field. Part of the problem apparently is that the nand driver ends up
using only a single DMA request ID, but requires distinct values for
"crci" depending on the type of transfer.

Change both the dmaengine driver and the two slave drivers to allow
the documented binding to work in addition to the ad-hoc passing
of crci values. In order to no longer abuse the slave_id field, pass
the data using the "peripheral_config" mechanism instead.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20211122222203.4103644-9-arnd@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/qcom/qcom_adm.c
drivers/mtd/nand/raw/qcom_nandc.c
drivers/tty/serial/msm_serial.c
include/linux/dma/qcom_adm.h [new file with mode: 0644]