Hi Frank, kernel test robot noticed the following build warnings: [auto build test WARNING on vkoul-dmaengine/next] [also build test WARNING on linus/master v6.7-rc1 next-20231117] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-edma-involve-help-macro-fsl_edma_set-get-_tcd/20231117-062946 base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next patch link: https://lore.kernel.org/r/20231116222743.2984776-6-Frank.Li%40nxp.com patch subject: [PATCH v2 5/5] dmaengine: fsl-edma: integrate TCD64 support for i.MX95 config: x86_64-randconfig-r113-20231117 (https://download.01.org/0day-ci/archive/20231118/202311180609.osug47KZ-lkp@xxxxxxxxx/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231118/202311180609.osug47KZ-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202311180609.osug47KZ-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) drivers/dma/fsl-edma-main.c:59:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:63:9: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-main.c:554:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:554:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:554:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-main.c:676:17: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le16 * @@ drivers/dma/fsl-edma-main.c:676:17: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-main.c:676:17: sparse: got restricted __le16 * -- drivers/dma/fsl-edma-common.c:76:15: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:93:9: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:104:15: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:106:9: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:131:19: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:140:9: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:361:26: sparse: sparse: cast to restricted __le16 drivers/dma/fsl-edma-common.c:361:26: sparse: sparse: cast from restricted __le32 >> drivers/dma/fsl-edma-common.c:361:26: sparse: sparse: cast to restricted __le64 drivers/dma/fsl-edma-common.c:361:26: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:364:33: sparse: sparse: cast to restricted __le32 drivers/dma/fsl-edma-common.c:364:33: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:364:33: sparse: sparse: cast to restricted __le64 drivers/dma/fsl-edma-common.c:364:33: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:373:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:373:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:373:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:373:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:373:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:373:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:373:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:373:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:373:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:373:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/dma/fsl-edma-common.c:373:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:373:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:373:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:374:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:374:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:374:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:374:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:374:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:374:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:374:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:374:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:374:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:374:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:374:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:374:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:374:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:376:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:376:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:376:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:376:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:376:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:376:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:376:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:376:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:376:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:376:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:376:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:376:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:376:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:377:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:377:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:377:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:377:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le32 * @@ drivers/dma/fsl-edma-common.c:377:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:377:36: sparse: got restricted __le32 * drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:377:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:377:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:377:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:377:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/dma/fsl-edma-common.c:377:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got restricted __le64 * @@ drivers/dma/fsl-edma-common.c:377:36: sparse: expected void [noderef] __iomem *addr drivers/dma/fsl-edma-common.c:377:36: sparse: got restricted __le64 * drivers/dma/fsl-edma-common.c:383:26: sparse: sparse: cast to restricted __le16 drivers/dma/fsl-edma-common.c:383:26: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:383:26: sparse: sparse: cast to restricted __le64 drivers/dma/fsl-edma-common.c:383:26: sparse: sparse: cast from restricted __le32 drivers/dma/fsl-edma-common.c:387:33: sparse: sparse: cast to restricted __le32 drivers/dma/fsl-edma-common.c:387:33: sparse: sparse: cast from restricted __le16 drivers/dma/fsl-edma-common.c:387:33: sparse: sparse: cast to restricted __le64 drivers/dma/fsl-edma-common.c:387:33: sparse: sparse: cast from restricted __le16 >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le64 degrades to integer >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le32 degrades to integer >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le64 degrades to integer >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le32 degrades to integer >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le64 degrades to integer >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le32 degrades to integer drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: cast to restricted __le16 >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le64 degrades to integer >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le32 degrades to integer drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: cast to restricted __le32 >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le64 degrades to integer >> drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: restricted __le32 degrades to integer drivers/dma/fsl-edma-common.c:390:36: sparse: sparse: cast to restricted __le64 drivers/dma/fsl-edma-common.c:392:36: sparse: sparse: too many warnings vim +554 drivers/dma/fsl-edma-main.c 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 427 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 428 static int fsl_edma_probe(struct platform_device *pdev) d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 429 { d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 430 struct device_node *np = pdev->dev.of_node; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 431 struct fsl_edma_engine *fsl_edma; af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 432 const struct fsl_edma_drvdata *drvdata = NULL; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 433 u32 chan_mask[2] = {0, 0}; 377eaf3b3c4ad7 drivers/dma/fsl-edma.c Angelo Dureghello 2018-08-19 434 struct edma_regs *regs; 33a0b734543ed5 drivers/dma/fsl-edma.c Yu Liao 2023-08-21 435 int chans; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 436 int ret, i; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 437 a67ba97dfb3048 drivers/dma/fsl-edma-main.c Rob Herring 2023-10-06 438 drvdata = device_get_match_data(&pdev->dev); af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 439 if (!drvdata) { af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 440 dev_err(&pdev->dev, "unable to find driver data\n"); af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 441 return -EINVAL; af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 442 } af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 443 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 444 ret = of_property_read_u32(np, "dma-channels", &chans); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 445 if (ret) { d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 446 dev_err(&pdev->dev, "Can't get dma-channels.\n"); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 447 return ret; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 448 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 449 33a0b734543ed5 drivers/dma/fsl-edma.c Yu Liao 2023-08-21 450 fsl_edma = devm_kzalloc(&pdev->dev, struct_size(fsl_edma, chans, chans), 33a0b734543ed5 drivers/dma/fsl-edma.c Yu Liao 2023-08-21 451 GFP_KERNEL); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 452 if (!fsl_edma) d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 453 return -ENOMEM; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 454 af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 455 fsl_edma->drvdata = drvdata; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 456 fsl_edma->n_chans = chans; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 457 mutex_init(&fsl_edma->fsl_edma_mutex); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 458 4b23603a251d24 drivers/dma/fsl-edma.c Tudor Ambarus 2022-11-10 459 fsl_edma->membase = devm_platform_ioremap_resource(pdev, 0); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 460 if (IS_ERR(fsl_edma->membase)) d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 461 return PTR_ERR(fsl_edma->membase); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 462 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 463 if (!(drvdata->flags & FSL_EDMA_DRV_SPLIT_REG)) { 377eaf3b3c4ad7 drivers/dma/fsl-edma.c Angelo Dureghello 2018-08-19 464 fsl_edma_setup_regs(fsl_edma); 377eaf3b3c4ad7 drivers/dma/fsl-edma.c Angelo Dureghello 2018-08-19 465 regs = &fsl_edma->regs; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 466 } 377eaf3b3c4ad7 drivers/dma/fsl-edma.c Angelo Dureghello 2018-08-19 467 9e006b243962a4 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 468 if (drvdata->flags & FSL_EDMA_DRV_HAS_DMACLK) { a9903de3aa1673 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 469 fsl_edma->dmaclk = devm_clk_get_enabled(&pdev->dev, "dma"); 232a7f18cf8ecb drivers/dma/fsl-edma.c Robin Gong 2019-07-24 470 if (IS_ERR(fsl_edma->dmaclk)) { 232a7f18cf8ecb drivers/dma/fsl-edma.c Robin Gong 2019-07-24 471 dev_err(&pdev->dev, "Missing DMA block clock.\n"); 232a7f18cf8ecb drivers/dma/fsl-edma.c Robin Gong 2019-07-24 472 return PTR_ERR(fsl_edma->dmaclk); 232a7f18cf8ecb drivers/dma/fsl-edma.c Robin Gong 2019-07-24 473 } 232a7f18cf8ecb drivers/dma/fsl-edma.c Robin Gong 2019-07-24 474 } 232a7f18cf8ecb drivers/dma/fsl-edma.c Robin Gong 2019-07-24 475 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 476 if (drvdata->flags & FSL_EDMA_DRV_HAS_CHCLK) { 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 477 fsl_edma->chclk = devm_clk_get_enabled(&pdev->dev, "mp"); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 478 if (IS_ERR(fsl_edma->chclk)) { 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 479 dev_err(&pdev->dev, "Missing MP block clock.\n"); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 480 return PTR_ERR(fsl_edma->chclk); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 481 } 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 482 } 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 483 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 484 ret = of_property_read_variable_u32_array(np, "dma-channel-mask", chan_mask, 1, 2); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 485 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 486 if (ret > 0) { 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 487 fsl_edma->chan_masked = chan_mask[1]; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 488 fsl_edma->chan_masked <<= 32; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 489 fsl_edma->chan_masked |= chan_mask[0]; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 490 } 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 491 af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 492 for (i = 0; i < fsl_edma->drvdata->dmamuxs; i++) { d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 493 char clkname[32]; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 494 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 495 /* eDMAv3 mux register move to TCD area if ch_mux exist */ 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 496 if (drvdata->flags & FSL_EDMA_DRV_SPLIT_REG) 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 497 break; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 498 4b23603a251d24 drivers/dma/fsl-edma.c Tudor Ambarus 2022-11-10 499 fsl_edma->muxbase[i] = devm_platform_ioremap_resource(pdev, 4b23603a251d24 drivers/dma/fsl-edma.c Tudor Ambarus 2022-11-10 500 1 + i); 2610acf46b9ed5 drivers/dma/fsl-edma.c Andreas Platschek 2017-12-14 501 if (IS_ERR(fsl_edma->muxbase[i])) { 2610acf46b9ed5 drivers/dma/fsl-edma.c Andreas Platschek 2017-12-14 502 /* on error: disable all previously enabled clks */ 2610acf46b9ed5 drivers/dma/fsl-edma.c Andreas Platschek 2017-12-14 503 fsl_disable_clocks(fsl_edma, i); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 504 return PTR_ERR(fsl_edma->muxbase[i]); 2610acf46b9ed5 drivers/dma/fsl-edma.c Andreas Platschek 2017-12-14 505 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 506 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 507 sprintf(clkname, "dmamux%d", i); a9903de3aa1673 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 508 fsl_edma->muxclk[i] = devm_clk_get_enabled(&pdev->dev, clkname); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 509 if (IS_ERR(fsl_edma->muxclk[i])) { d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 510 dev_err(&pdev->dev, "Missing DMAMUX block clock.\n"); 2610acf46b9ed5 drivers/dma/fsl-edma.c Andreas Platschek 2017-12-14 511 /* on error: disable all previously enabled clks */ d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 512 return PTR_ERR(fsl_edma->muxclk[i]); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 513 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 514 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 515 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 516 fsl_edma->big_endian = of_property_read_bool(np, "big-endian"); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 517 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 518 if (drvdata->flags & FSL_EDMA_DRV_HAS_PD) { 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 519 ret = fsl_edma3_attach_pd(pdev, fsl_edma); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 520 if (ret) 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 521 return ret; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 522 } 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 523 718250845ce432 drivers/dma/fsl-edma-main.c Frank Li 2023-11-16 524 if (drvdata->flags & FSL_EDMA_DRV_TCD64) 718250845ce432 drivers/dma/fsl-edma-main.c Frank Li 2023-11-16 525 dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)); 718250845ce432 drivers/dma/fsl-edma-main.c Frank Li 2023-11-16 526 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 527 INIT_LIST_HEAD(&fsl_edma->dma_dev.channels); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 528 for (i = 0; i < fsl_edma->n_chans; i++) { d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 529 struct fsl_edma_chan *fsl_chan = &fsl_edma->chans[i]; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 530 int len; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 531 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 532 if (fsl_edma->chan_masked & BIT(i)) 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 533 continue; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 534 9b05554c5ca682 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 535 snprintf(fsl_chan->chan_name, sizeof(fsl_chan->chan_name), "%s-CH%02d", 9b05554c5ca682 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 536 dev_name(&pdev->dev), i); 9b05554c5ca682 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 537 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 538 fsl_chan->edma = fsl_edma; 82d149b86d31e1 drivers/dma/fsl-edma.c Yuan Yao 2015-10-30 539 fsl_chan->pm_state = RUNNING; 82d149b86d31e1 drivers/dma/fsl-edma.c Yuan Yao 2015-10-30 540 fsl_chan->slave_id = 0; 82d149b86d31e1 drivers/dma/fsl-edma.c Yuan Yao 2015-10-30 541 fsl_chan->idle = true; 0fa89f972da607 drivers/dma/fsl-edma.c Laurentiu Tudor 2019-01-18 542 fsl_chan->dma_dir = DMA_NONE; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 543 fsl_chan->vchan.desc_free = fsl_edma_free_desc; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 544 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 545 len = (drvdata->flags & FSL_EDMA_DRV_SPLIT_REG) ? 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 546 offsetof(struct fsl_edma3_ch_reg, tcd) : 0; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 547 fsl_chan->tcd = fsl_edma->membase 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 548 + i * drvdata->chreg_space_sz + drvdata->chreg_off + len; 9dc1dc9f63c698 drivers/dma/fsl-edma-main.c Frank Li 2023-11-16 549 fsl_chan->mux_addr = fsl_edma->membase + drvdata->mux_off + i * drvdata->mux_skip; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 550 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 551 fsl_chan->pdev = pdev; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 552 vchan_init(&fsl_chan->vchan, &fsl_edma->dma_dev); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 553 7536f8b371adcc drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 @554 edma_write_tcdreg(fsl_chan, 0, csr); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 555 fsl_edma_chan_mux(fsl_chan, 0, false); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 556 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 557 af802728e4ab07 drivers/dma/fsl-edma.c Robin Gong 2019-06-25 558 ret = fsl_edma->drvdata->setup_irq(pdev, fsl_edma); 0fe25d61102d44 drivers/dma/fsl-edma.c Stefan Agner 2015-06-07 559 if (ret) 0fe25d61102d44 drivers/dma/fsl-edma.c Stefan Agner 2015-06-07 560 return ret; 0fe25d61102d44 drivers/dma/fsl-edma.c Stefan Agner 2015-06-07 561 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 562 dma_cap_set(DMA_PRIVATE, fsl_edma->dma_dev.cap_mask); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 563 dma_cap_set(DMA_SLAVE, fsl_edma->dma_dev.cap_mask); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 564 dma_cap_set(DMA_CYCLIC, fsl_edma->dma_dev.cap_mask); e0674853943287 drivers/dma/fsl-edma.c Joy Zou 2021-10-26 565 dma_cap_set(DMA_MEMCPY, fsl_edma->dma_dev.cap_mask); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 566 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 567 fsl_edma->dma_dev.dev = &pdev->dev; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 568 fsl_edma->dma_dev.device_alloc_chan_resources d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 569 = fsl_edma_alloc_chan_resources; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 570 fsl_edma->dma_dev.device_free_chan_resources d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 571 = fsl_edma_free_chan_resources; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 572 fsl_edma->dma_dev.device_tx_status = fsl_edma_tx_status; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 573 fsl_edma->dma_dev.device_prep_slave_sg = fsl_edma_prep_slave_sg; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 574 fsl_edma->dma_dev.device_prep_dma_cyclic = fsl_edma_prep_dma_cyclic; e0674853943287 drivers/dma/fsl-edma.c Joy Zou 2021-10-26 575 fsl_edma->dma_dev.device_prep_dma_memcpy = fsl_edma_prep_memcpy; d80f381f321ab7 drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 576 fsl_edma->dma_dev.device_config = fsl_edma_slave_config; d80f381f321ab7 drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 577 fsl_edma->dma_dev.device_pause = fsl_edma_pause; d80f381f321ab7 drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 578 fsl_edma->dma_dev.device_resume = fsl_edma_resume; d80f381f321ab7 drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 579 fsl_edma->dma_dev.device_terminate_all = fsl_edma_terminate_all; ba1cab79cfc629 drivers/dma/fsl-edma.c Andrey Smirnov 2019-07-31 580 fsl_edma->dma_dev.device_synchronize = fsl_edma_synchronize; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 581 fsl_edma->dma_dev.device_issue_pending = fsl_edma_issue_pending; f45c431148e1ba drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 582 f45c431148e1ba drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 583 fsl_edma->dma_dev.src_addr_widths = FSL_EDMA_BUSWIDTHS; f45c431148e1ba drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 584 fsl_edma->dma_dev.dst_addr_widths = FSL_EDMA_BUSWIDTHS; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 585 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 586 if (drvdata->flags & FSL_EDMA_DRV_BUS_8BYTE) { 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 587 fsl_edma->dma_dev.src_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 588 fsl_edma->dma_dev.dst_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 589 } 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 590 f45c431148e1ba drivers/dma/fsl-edma.c Maxime Ripard 2014-11-17 591 fsl_edma->dma_dev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 592 if (drvdata->flags & FSL_EDMA_DRV_DEV_TO_DEV) 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 593 fsl_edma->dma_dev.directions |= BIT(DMA_DEV_TO_DEV); 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 594 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 595 fsl_edma->dma_dev.copy_align = drvdata->flags & FSL_EDMA_DRV_ALIGN_64BYTE ? 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 596 DMAENGINE_ALIGN_64_BYTES : 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 597 DMAENGINE_ALIGN_32_BYTES; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 598 e0674853943287 drivers/dma/fsl-edma.c Joy Zou 2021-10-26 599 /* Per worst case 'nbytes = 1' take CITER as the max_seg_size */ e0674853943287 drivers/dma/fsl-edma.c Joy Zou 2021-10-26 600 dma_set_max_seg_size(fsl_edma->dma_dev.dev, 0x3fff); e0674853943287 drivers/dma/fsl-edma.c Joy Zou 2021-10-26 601 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 602 fsl_edma->dma_dev.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT; 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 603 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 604 platform_set_drvdata(pdev, fsl_edma); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 605 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 606 ret = dma_async_device_register(&fsl_edma->dma_dev); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 607 if (ret) { a86144da9d1a43 drivers/dma/fsl-edma.c Peter Griffin 2016-06-07 608 dev_err(&pdev->dev, a86144da9d1a43 drivers/dma/fsl-edma.c Peter Griffin 2016-06-07 609 "Can't register Freescale eDMA engine. (%d)\n", ret); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 610 return ret; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 611 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 612 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 613 ret = of_dma_controller_register(np, 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 614 drvdata->flags & FSL_EDMA_DRV_SPLIT_REG ? fsl_edma3_xlate : fsl_edma_xlate, 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 615 fsl_edma); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 616 if (ret) { a86144da9d1a43 drivers/dma/fsl-edma.c Peter Griffin 2016-06-07 617 dev_err(&pdev->dev, a86144da9d1a43 drivers/dma/fsl-edma.c Peter Griffin 2016-06-07 618 "Can't register Freescale eDMA of_dma. (%d)\n", ret); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 619 dma_async_device_unregister(&fsl_edma->dma_dev); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 620 return ret; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 621 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 622 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 623 /* enable round robin arbitration */ 72f5801a4e2b71 drivers/dma/fsl-edma-main.c Frank Li 2023-08-21 624 if (!(drvdata->flags & FSL_EDMA_DRV_SPLIT_REG)) 377eaf3b3c4ad7 drivers/dma/fsl-edma.c Angelo Dureghello 2018-08-19 625 edma_writel(fsl_edma, EDMA_CR_ERGA | EDMA_CR_ERCA, regs->cr); d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 626 d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 627 return 0; d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 628 } d6be34fbd39b7d drivers/dma/fsl-edma.c Jingchang Lu 2014-02-18 629 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki