> + > + ctrl->tx.base = dmam_alloc_coherent(&pdev->dev, > + (ctrl->tx.sl_sz * ctrl->tx.n), > + &ctrl->tx.phy, GFP_KERNEL); > + if (!ctrl->tx.base) { > + ret = -ENOMEM; > + goto err; > + } > + > + ctrl->rx.base = dmam_alloc_coherent(&pdev->dev, > + (ctrl->rx.sl_sz * ctrl->rx.n), > + &ctrl->rx.phy, GFP_KERNEL); I got another one of /git/arm-soc/drivers/slimbus/qcom-ctrl.c: In function 'qcom_slim_probe': /git/arm-soc/drivers/slimbus/qcom-ctrl.c:584:9: error: passing argument 3 of 'dmam_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] &ctrl->tx.phy, GFP_KERNEL); ^ In file included from /git/arm-soc/drivers/slimbus/qcom-ctrl.c:16:0: /git/arm-soc/include/linux/dma-mapping.h:760:14: note: expected 'dma_addr_t * {aka unsigned int *}' but argument is of type 'phys_addr_t * {aka long long unsigned int *}' extern void *dmam_alloc_coherent(struct device *dev, size_t size, ^~~~~~~~~~~~~~~~~~~ /git/arm-soc/drivers/slimbus/qcom-ctrl.c:592:9: error: passing argument 3 of 'dmam_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] &ctrl->rx.phy, GFP_KERNEL); ^ In file included from /git/arm-soc/drivers/slimbus/qcom-ctrl.c:16:0: /git/arm-soc/include/linux/dma-mapping.h:760:14: note: expected 'dma_addr_t * {aka unsigned int *}' but argument is of type 'phys_addr_t * {aka long long unsigned int *}' extern void *dmam_alloc_coherent(struct device *dev, size_t size, I don't have time to analyze this further, but I guess this is the same confusion that happened in a few other qualcomm drivers, which all used dma_alloc_* to get a buffer that gets passed into firmware.This is always wrong. Arnd -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html