[PATCH v2 2/2] mtd: rawnand: nuvoton: add new driver for the Nuvoton MA35 SoC
kernel test robot
lkp at intel.com
Mon Aug 19 22:47:27 PDT 2024
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-nuvoton-ma35d1-nand-add-new-bindings/20240819-172155
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@intel.com/config)
compiler: hppa-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20240820/202408201329.v0SoF3eS-lkp@intel.com/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 at 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
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-mtd
mailing list