Hi Hui-Ping,
kernel test robot noticed the following build warnings:
[auto build test WARNING on mtd/nand/next] [also build test WARNING on linus/master v6.11-rc4 next-20240820] [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/Hui-Ping-Chen/dt-bindings-mtd... base: https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next patch link: https://lore.kernel.org/r/20240819092037.110260-3-hpchen0nvt%40gmail.com patch subject: [PATCH v2 2/2] mtd: rawnand: nuvoton: add new driver for the Nuvoton MA35 SoC config: parisc-randconfig-r123-20240820 (https://download.01.org/0day-ci/archive/20240820/202408201329.v0SoF3eS-lkp@i...) compiler: hppa-linux-gcc (GCC) 14.1.0 reproduce: (https://download.01.org/0day-ci/archive/20240820/202408201329.v0SoF3eS-lkp@i...)
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@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202408201329.v0SoF3eS-lkp@intel.com/
sparse warnings: (new ones prefixed by >>) drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:231:20: sparse: sparse: cast removes address space '__iomem' of expression
drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:736:20: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char [usertype] *ptr @@ got unsigned char [noderef] [usertype] __iomem * @@
drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:736:20: sparse: expected unsigned char [usertype] *ptr drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:736:20: sparse: got unsigned char [noderef] [usertype] __iomem *
drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:764:22: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char *ptr @@ got char [noderef] __iomem * @@
drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:764:22: sparse: expected char *ptr drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:764:22: sparse: got char [noderef] __iomem * drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:803:22: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char *ptr @@ got char [noderef] __iomem * @@ drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:803:22: sparse: expected char *ptr drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:803:22: sparse: got char [noderef] __iomem * drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char [usertype] *ptr @@ got unsigned char [noderef] [usertype] __iomem * @@ drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: expected unsigned char [usertype] *ptr drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: got unsigned char [noderef] [usertype] __iomem * drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char [usertype] *ptr @@ got unsigned char [noderef] [usertype] __iomem * @@ drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: expected unsigned char [usertype] *ptr drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: got unsigned char [noderef] [usertype] __iomem * drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char [usertype] *ptr @@ got unsigned char [noderef] [usertype] __iomem * @@ drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: expected unsigned char [usertype] *ptr drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: got unsigned char [noderef] [usertype] __iomem * drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char [usertype] *ptr @@ got unsigned char [noderef] [usertype] __iomem * @@ drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: expected unsigned char [usertype] *ptr drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c:506:28: sparse: got unsigned char [noderef] [usertype] __iomem *
vim +736 drivers/mtd/nand/raw/nuvoton_ma35d1_nand.c
731 732 static int ma35_nand_write_page_hwecc(struct nand_chip *chip, const u8 *buf, 733 int oob_required, int page) 734 { 735 struct ma35_nand_info *nand = nand_get_controller_data(chip);
736 u8 *ptr = (u8 __iomem *)(nand->regs + MA35_NFI_REG_NANDRA0);
737 struct mtd_info *mtd = nand_to_mtd(chip); 738 u8 *ecc_calc = chip->ecc.calc_buf; 739 740 memset((void *)ptr, 0xFF, mtd->oobsize); 741 memcpy((void *)ptr, (void *)chip->oob_poi, mtd->oobsize - chip->ecc.total); 742 743 ma35_nand_command(chip, NAND_CMD_SEQIN, 0, page); 744 ma35_nand_dma_transfer(chip, buf, mtd->writesize, 0x1); 745 ma35_nand_command(chip, NAND_CMD_PAGEPROG, -1, -1); 746 ma35_waitfunc(chip); 747 748 /* Copy parity code in NANDRA to calc */ 749 memcpy((void *)ecc_calc, 750 (void *)(ptr + (mtd->oobsize - chip->ecc.total)), 751 chip->ecc.total); 752 753 /* Copy parity code in calc to oob_poi */ 754 memcpy((void *)(chip->oob_poi + (mtd->oobsize - chip->ecc.total)), 755 (void *)ecc_calc, chip->ecc.total); 756 757 return 0; 758 } 759 760 static int ma35_nand_read_page_hwecc_oob_first(struct nand_chip *chip, u8 *buf, 761 int oob_required, int page) 762 { 763 struct ma35_nand_info *nand = nand_get_controller_data(chip);
764 char *ptr = (char __iomem *)(nand->regs + MA35_NFI_REG_NANDRA0);
765 struct mtd_info *mtd = nand_to_mtd(chip); 766 767 /* 1. read the OOB area */ 768 ma35_nand_command(chip, NAND_CMD_READOOB, 0, page); 769 ma35_nand_read_buf(chip, chip->oob_poi, mtd->oobsize); 770 771 /* 2. copy OOB data to NANDRA for page read */ 772 memcpy((void *)ptr, (void *)chip->oob_poi, mtd->oobsize); 773 774 if ((*(ptr+2) != 0) && (*(ptr+3) != 0)) 775 memset((void *)buf, 0xff, mtd->writesize); 776 else { 777 /* 3. read data from nand */ 778 ma35_nand_command(chip, NAND_CMD_READ0, 0, page); 779 ma35_nand_dma_transfer(chip, buf, mtd->writesize, 0x0); 780 781 /* 4. restore OOB data from SMRA */ 782 memcpy((void *)chip->oob_poi, (void *)ptr, mtd->oobsize); 783 } 784 785 return 0; 786 } 787