All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Md Sadre Alam <quic_mdalam@quicinc.com>,
	broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, andersson@kernel.org,
	konradybcio@kernel.org, miquel.raynal@bootlin.com,
	richard@nod.at, vigneshr@ti.com,
	manivannan.sadhasivam@linaro.org, esben@geanix.com,
	linux-arm-msm@vger.kernel.org, linux-spi@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mtd@lists.infradead.org
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH v8 2/8] mtd: rawnand: qcom: cleanup qcom_nandc driver
Date: Thu, 22 Aug 2024 10:10:50 +0800	[thread overview]
Message-ID: <202408220948.977WwzTe-lkp@intel.com> (raw)
In-Reply-To: <20240820104239.1774600-3-quic_mdalam@quicinc.com>

Hi Md,

kernel test robot noticed the following build warnings:

[auto build test WARNING on mtd/nand/next]
[also build test WARNING on broonie-spi/for-next robh/for-next linus/master v6.11-rc4 next-20240821]
[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/Md-Sadre-Alam/spi-dt-bindings-Introduce-qcom-spi-qpic-snand/20240820-184732
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
patch link:    https://lore.kernel.org/r/20240820104239.1774600-3-quic_mdalam%40quicinc.com
patch subject: [PATCH v8 2/8] mtd: rawnand: qcom: cleanup qcom_nandc driver
config: s390-randconfig-r111-20240821 (https://download.01.org/0day-ci/archive/20240822/202408220948.977WwzTe-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20240822/202408220948.977WwzTe-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408220948.977WwzTe-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/mtd/nand/raw/qcom_nandc.c:686:55: sparse: sparse: incorrect type in initializer (different base types) @@     expected restricted __le32 [usertype] val @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:686:55: sparse:     expected restricted __le32 [usertype] val
   drivers/mtd/nand/raw/qcom_nandc.c:686:55: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:716:55: sparse: sparse: incorrect type in initializer (different base types) @@     expected restricted __le32 [usertype] val @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:716:55: sparse:     expected restricted __le32 [usertype] val
   drivers/mtd/nand/raw/qcom_nandc.c:716:55: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:759:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] addr0 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:759:28: sparse:     expected restricted __le32 [usertype] addr0
   drivers/mtd/nand/raw/qcom_nandc.c:759:28: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:760:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] addr1 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:760:28: sparse:     expected restricted __le32 [usertype] addr1
   drivers/mtd/nand/raw/qcom_nandc.c:760:28: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:779:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:779:29: sparse:     expected restricted __le32 [usertype] cmd
   drivers/mtd/nand/raw/qcom_nandc.c:779:29: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:781:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:781:29: sparse:     expected restricted __le32 [usertype] cmd
   drivers/mtd/nand/raw/qcom_nandc.c:781:29: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:783:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:783:21: sparse:     expected restricted __le32 [usertype] cmd
   drivers/mtd/nand/raw/qcom_nandc.c:783:21: sparse:     got unsigned long
>> drivers/mtd/nand/raw/qcom_nandc.c:787:29: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:787:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:787:22: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:787:22: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:793:29: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:793:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:793:22: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:793:22: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:797:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [assigned] [usertype] ecc_bch_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:797:29: sparse:     expected restricted __le32 [assigned] [usertype] ecc_bch_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:797:29: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:810:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:810:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:810:27: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:1824:20: sparse: sparse: invalid assignment: &=
   drivers/mtd/nand/raw/qcom_nandc.c:1824:20: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1824:20: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:1825:20: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:1825:20: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1825:20: sparse:    right side has type int
   drivers/mtd/nand/raw/qcom_nandc.c:1828:27: sparse: sparse: invalid assignment: &=
   drivers/mtd/nand/raw/qcom_nandc.c:1828:27: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1828:27: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:1829:27: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:1829:27: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1829:27: sparse:    right side has type int
>> drivers/mtd/nand/raw/qcom_nandc.c:1830:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_buf_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:1830:27: sparse:     expected restricted __le32 [usertype] ecc_buf_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:1830:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2437:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2437:20: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:2437:20: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2446:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg1 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2446:20: sparse:     expected restricted __le32 [usertype] cfg1
   drivers/mtd/nand/raw/qcom_nandc.c:2446:20: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2454:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0_raw @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2454:24: sparse:     expected restricted __le32 [usertype] cfg0_raw
   drivers/mtd/nand/raw/qcom_nandc.c:2454:24: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2459:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg1_raw @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2459:24: sparse:     expected restricted __le32 [usertype] cfg1_raw
   drivers/mtd/nand/raw/qcom_nandc.c:2459:24: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2467:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_bch_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2467:27: sparse:     expected restricted __le32 [usertype] ecc_bch_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:2467:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2475:35: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_buf_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2475:35: sparse:     expected restricted __le32 [usertype] ecc_buf_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:2475:35: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:2477:30: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] clrflashstatus @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:2477:30: sparse:     expected restricted __le32 [usertype] clrflashstatus
   drivers/mtd/nand/raw/qcom_nandc.c:2477:30: sparse:     got unsigned long
>> drivers/mtd/nand/raw/qcom_nandc.c:2478:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] clrreadstatus @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2478:29: sparse:     expected restricted __le32 [usertype] clrreadstatus
   drivers/mtd/nand/raw/qcom_nandc.c:2478:29: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:2561:39: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd_reg @@     got int [assigned] ret @@
   drivers/mtd/nand/raw/qcom_nandc.c:2561:39: sparse:     expected restricted __le32 [usertype] cmd_reg
   drivers/mtd/nand/raw/qcom_nandc.c:2561:39: sparse:     got int [assigned] ret
   drivers/mtd/nand/raw/qcom_nandc.c:2571:49: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2571:49: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2571:49: sparse:    right side has type int
   drivers/mtd/nand/raw/qcom_nandc.c:2574:49: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2574:49: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2574:49: sparse:    right side has type unsigned char
   drivers/mtd/nand/raw/qcom_nandc.c:2659:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2659:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2659:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2718:31: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] chip_sel @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:2718:31: sparse:     expected restricted __le32 [usertype] chip_sel
   drivers/mtd/nand/raw/qcom_nandc.c:2718:31: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2719:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2719:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2719:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2757:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2758:30: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2758:30: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2758:30: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2761:41: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2761:35: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2761:35: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:2761:35: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:2764:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2776:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2776:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2776:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2779:17: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2813:22: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2813:22: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2813:22: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2825:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2825:27: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:2825:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2830:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg1 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2830:27: sparse:     expected restricted __le32 [usertype] cfg1
   drivers/mtd/nand/raw/qcom_nandc.c:2830:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2839:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_buf_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2839:42: sparse:     expected restricted __le32 [usertype] ecc_buf_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:2839:42: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2843:42: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2843:34: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] vld @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:2843:34: sparse:     expected restricted __le32 [usertype] vld
   drivers/mtd/nand/raw/qcom_nandc.c:2843:34: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2844:43: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2844:35: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd1 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2844:35: sparse:     expected restricted __le32 [usertype] cmd1
   drivers/mtd/nand/raw/qcom_nandc.c:2844:35: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:2848:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2848:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2848:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:3127:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd1 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:3127:29: sparse:     expected restricted __le32 [usertype] cmd1
   drivers/mtd/nand/raw/qcom_nandc.c:3127:29: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:3128:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] vld @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:3128:28: sparse:     expected restricted __le32 [usertype] vld
   drivers/mtd/nand/raw/qcom_nandc.c:3128:28: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c: note: in included file (through include/linux/gfp.h, include/linux/xarray.h, include/linux/radix-tree.h, ...):
   include/linux/mmzone.h:2016:40: sparse: sparse: self-comparison always evaluates to false
   include/linux/mmzone.h:2016:40: sparse: sparse: self-comparison always evaluates to false
   include/linux/mmzone.h:2016:40: sparse: sparse: self-comparison always evaluates to false

vim +686 drivers/mtd/nand/raw/qcom_nandc.c

   669	
   670	/**
   671	 * nandc_set_read_loc_first() - to set read location first register
   672	 * @chip:		NAND Private Flash Chip Data
   673	 * @reg_base:		location register base
   674	 * @cw_offset:		code word offset
   675	 * @read_size:		code word read length
   676	 * @is_last_read_loc:	is this the last read location
   677	 *
   678	 * This function will set location register value
   679	 */
   680	static void nandc_set_read_loc_first(struct nand_chip *chip,
   681					     int reg_base, int cw_offset,
   682					     int read_size, int is_last_read_loc)
   683	{
   684		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   685		__le32 val = (((cw_offset) << READ_LOCATION_OFFSET) |
 > 686			  ((read_size) << READ_LOCATION_SIZE) |
   687			  ((is_last_read_loc) << READ_LOCATION_LAST));
   688	
   689		if (reg_base == NAND_READ_LOCATION_0)
   690			nandc->regs->read_location0 = val;
   691		else if (reg_base == NAND_READ_LOCATION_1)
   692			nandc->regs->read_location1 = val;
   693		else if (reg_base == NAND_READ_LOCATION_2)
   694			nandc->regs->read_location2 = val;
   695		else if (reg_base == NAND_READ_LOCATION_3)
   696			nandc->regs->read_location3 = val;
   697	}
   698	
   699	/**
   700	 * nandc_set_read_loc_last - to set read location last register
   701	 * @chip:		NAND Private Flash Chip Data
   702	 * @reg_base:		location register base
   703	 * @cw_offset:		code word offset
   704	 * @read_size:		code word read length
   705	 * @is_last_read_loc:	is this the last read location
   706	 *
   707	 * This function will set location last register value
   708	 */
   709	static void nandc_set_read_loc_last(struct nand_chip *chip,
   710					    int reg_base, int cw_offset,
   711					    int read_size, int is_last_read_loc)
   712	{
   713		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   714	
   715		__le32 val = (((cw_offset) << READ_LOCATION_OFFSET) |
   716			  ((read_size) << READ_LOCATION_SIZE) |
   717			  ((is_last_read_loc) << READ_LOCATION_LAST));
   718	
   719		if (reg_base == NAND_READ_LOCATION_LAST_CW_0)
   720			nandc->regs->read_location_last0 = val;
   721		else if (reg_base == NAND_READ_LOCATION_LAST_CW_1)
   722			nandc->regs->read_location_last1 = val;
   723		else if (reg_base == NAND_READ_LOCATION_LAST_CW_2)
   724			nandc->regs->read_location_last2 = val;
   725		else if (reg_base == NAND_READ_LOCATION_LAST_CW_3)
   726			nandc->regs->read_location_last3 = val;
   727	}
   728	
   729	/* helper to configure location register values */
   730	static void nandc_set_read_loc(struct nand_chip *chip, int cw, int reg,
   731				       int cw_offset, int read_size, int is_last_read_loc)
   732	{
   733		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   734		struct nand_ecc_ctrl *ecc = &chip->ecc;
   735		int reg_base = NAND_READ_LOCATION_0;
   736	
   737		if (nandc->props->qpic_version2 && qcom_nandc_is_last_cw(ecc, cw))
   738			reg_base = NAND_READ_LOCATION_LAST_CW_0;
   739	
   740		reg_base += reg * 4;
   741	
   742		if (nandc->props->qpic_version2 && qcom_nandc_is_last_cw(ecc, cw))
   743			return nandc_set_read_loc_last(chip, reg_base, cw_offset,
   744					read_size, is_last_read_loc);
   745		else
   746			return nandc_set_read_loc_first(chip, reg_base, cw_offset,
   747					read_size, is_last_read_loc);
   748	}
   749	
   750	/* helper to configure address register values */
   751	static void set_address(struct qcom_nand_host *host, u16 column, int page)
   752	{
   753		struct nand_chip *chip = &host->chip;
   754		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   755	
   756		if (chip->options & NAND_BUSWIDTH_16)
   757			column >>= 1;
   758	
   759		nandc->regs->addr0 = page << 16 | column;
   760		nandc->regs->addr1 = page >> 16 & 0xff;
   761	}
   762	
   763	/*
   764	 * update_rw_regs:	set up read/write register values, these will be
   765	 *			written to the NAND controller registers via DMA
   766	 *
   767	 * @num_cw:		number of steps for the read/write operation
   768	 * @read:		read or write operation
   769	 * @cw	:		which code word
   770	 */
   771	static void update_rw_regs(struct qcom_nand_host *host, int num_cw, bool read, int cw)
   772	{
   773		struct nand_chip *chip = &host->chip;
   774		__le32 cmd, cfg0, cfg1, ecc_bch_cfg;
   775		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   776	
   777		if (read) {
   778			if (host->use_ecc)
 > 779				cmd = OP_PAGE_READ_WITH_ECC | PAGE_ACC | LAST_PAGE;
   780			else
   781				cmd = OP_PAGE_READ | PAGE_ACC | LAST_PAGE;
   782		} else {
   783			cmd = OP_PROGRAM_PAGE | PAGE_ACC | LAST_PAGE;
   784		}
   785	
   786		if (host->use_ecc) {
 > 787			cfg0 = (host->cfg0 & ~(7U << CW_PER_PAGE)) |
   788					(num_cw - 1) << CW_PER_PAGE;
   789	
   790			cfg1 = host->cfg1;
   791			ecc_bch_cfg = host->ecc_bch_cfg;
   792		} else {
   793			cfg0 = (host->cfg0_raw & ~(7U << CW_PER_PAGE)) |
   794					(num_cw - 1) << CW_PER_PAGE;
   795	
   796			cfg1 = host->cfg1_raw;
   797			ecc_bch_cfg = 1 << ECC_CFG_ECC_DISABLE;
   798		}
   799	
   800		nandc->regs->cmd = cmd;
   801		nandc->regs->cfg0 = cfg0;
   802		nandc->regs->cfg1 = cfg1;
   803		nandc->regs->ecc_bch_cfg = ecc_bch_cfg;
   804	
   805		if (!nandc->props->qpic_version2)
   806			nandc->regs->ecc_buf_cfg = host->ecc_buf_cfg;
   807	
   808		nandc->regs->clrflashstatus = host->clrflashstatus;
   809		nandc->regs->clrreadstatus = host->clrreadstatus;
   810		nandc->regs->exec = 1;
   811	
   812		if (read)
   813			nandc_set_read_loc(chip, cw, 0, 0, host->use_ecc ?
   814					   host->cw_data : host->cw_size, 1);
   815	}
   816	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Md Sadre Alam <quic_mdalam@quicinc.com>,
	broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, andersson@kernel.org,
	konradybcio@kernel.org, miquel.raynal@bootlin.com,
	richard@nod.at, vigneshr@ti.com,
	manivannan.sadhasivam@linaro.org, esben@geanix.com,
	linux-arm-msm@vger.kernel.org, linux-spi@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mtd@lists.infradead.org
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH v8 2/8] mtd: rawnand: qcom: cleanup qcom_nandc driver
Date: Thu, 22 Aug 2024 10:10:50 +0800	[thread overview]
Message-ID: <202408220948.977WwzTe-lkp@intel.com> (raw)
In-Reply-To: <20240820104239.1774600-3-quic_mdalam@quicinc.com>

Hi Md,

kernel test robot noticed the following build warnings:

[auto build test WARNING on mtd/nand/next]
[also build test WARNING on broonie-spi/for-next robh/for-next linus/master v6.11-rc4 next-20240821]
[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/Md-Sadre-Alam/spi-dt-bindings-Introduce-qcom-spi-qpic-snand/20240820-184732
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
patch link:    https://lore.kernel.org/r/20240820104239.1774600-3-quic_mdalam%40quicinc.com
patch subject: [PATCH v8 2/8] mtd: rawnand: qcom: cleanup qcom_nandc driver
config: s390-randconfig-r111-20240821 (https://download.01.org/0day-ci/archive/20240822/202408220948.977WwzTe-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20240822/202408220948.977WwzTe-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408220948.977WwzTe-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/mtd/nand/raw/qcom_nandc.c:686:55: sparse: sparse: incorrect type in initializer (different base types) @@     expected restricted __le32 [usertype] val @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:686:55: sparse:     expected restricted __le32 [usertype] val
   drivers/mtd/nand/raw/qcom_nandc.c:686:55: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:716:55: sparse: sparse: incorrect type in initializer (different base types) @@     expected restricted __le32 [usertype] val @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:716:55: sparse:     expected restricted __le32 [usertype] val
   drivers/mtd/nand/raw/qcom_nandc.c:716:55: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:759:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] addr0 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:759:28: sparse:     expected restricted __le32 [usertype] addr0
   drivers/mtd/nand/raw/qcom_nandc.c:759:28: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:760:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] addr1 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:760:28: sparse:     expected restricted __le32 [usertype] addr1
   drivers/mtd/nand/raw/qcom_nandc.c:760:28: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:779:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:779:29: sparse:     expected restricted __le32 [usertype] cmd
   drivers/mtd/nand/raw/qcom_nandc.c:779:29: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:781:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:781:29: sparse:     expected restricted __le32 [usertype] cmd
   drivers/mtd/nand/raw/qcom_nandc.c:781:29: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:783:21: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:783:21: sparse:     expected restricted __le32 [usertype] cmd
   drivers/mtd/nand/raw/qcom_nandc.c:783:21: sparse:     got unsigned long
>> drivers/mtd/nand/raw/qcom_nandc.c:787:29: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:787:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:787:22: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:787:22: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:793:29: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:793:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:793:22: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:793:22: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:797:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [assigned] [usertype] ecc_bch_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:797:29: sparse:     expected restricted __le32 [assigned] [usertype] ecc_bch_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:797:29: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:810:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:810:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:810:27: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:1824:20: sparse: sparse: invalid assignment: &=
   drivers/mtd/nand/raw/qcom_nandc.c:1824:20: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1824:20: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:1825:20: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:1825:20: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1825:20: sparse:    right side has type int
   drivers/mtd/nand/raw/qcom_nandc.c:1828:27: sparse: sparse: invalid assignment: &=
   drivers/mtd/nand/raw/qcom_nandc.c:1828:27: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1828:27: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:1829:27: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:1829:27: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:1829:27: sparse:    right side has type int
>> drivers/mtd/nand/raw/qcom_nandc.c:1830:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_buf_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:1830:27: sparse:     expected restricted __le32 [usertype] ecc_buf_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:1830:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2437:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2437:20: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:2437:20: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2446:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg1 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2446:20: sparse:     expected restricted __le32 [usertype] cfg1
   drivers/mtd/nand/raw/qcom_nandc.c:2446:20: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2454:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0_raw @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2454:24: sparse:     expected restricted __le32 [usertype] cfg0_raw
   drivers/mtd/nand/raw/qcom_nandc.c:2454:24: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2459:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg1_raw @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2459:24: sparse:     expected restricted __le32 [usertype] cfg1_raw
   drivers/mtd/nand/raw/qcom_nandc.c:2459:24: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2467:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_bch_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2467:27: sparse:     expected restricted __le32 [usertype] ecc_bch_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:2467:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2475:35: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_buf_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2475:35: sparse:     expected restricted __le32 [usertype] ecc_buf_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:2475:35: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:2477:30: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] clrflashstatus @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:2477:30: sparse:     expected restricted __le32 [usertype] clrflashstatus
   drivers/mtd/nand/raw/qcom_nandc.c:2477:30: sparse:     got unsigned long
>> drivers/mtd/nand/raw/qcom_nandc.c:2478:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] clrreadstatus @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2478:29: sparse:     expected restricted __le32 [usertype] clrreadstatus
   drivers/mtd/nand/raw/qcom_nandc.c:2478:29: sparse:     got int
>> drivers/mtd/nand/raw/qcom_nandc.c:2561:39: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd_reg @@     got int [assigned] ret @@
   drivers/mtd/nand/raw/qcom_nandc.c:2561:39: sparse:     expected restricted __le32 [usertype] cmd_reg
   drivers/mtd/nand/raw/qcom_nandc.c:2561:39: sparse:     got int [assigned] ret
   drivers/mtd/nand/raw/qcom_nandc.c:2571:49: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2571:49: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2571:49: sparse:    right side has type int
   drivers/mtd/nand/raw/qcom_nandc.c:2574:49: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2574:49: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2574:49: sparse:    right side has type unsigned char
   drivers/mtd/nand/raw/qcom_nandc.c:2659:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2659:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2659:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2718:31: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] chip_sel @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:2718:31: sparse:     expected restricted __le32 [usertype] chip_sel
   drivers/mtd/nand/raw/qcom_nandc.c:2718:31: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2719:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2719:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2719:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2757:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2758:30: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2758:30: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2758:30: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2761:41: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2761:35: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2761:35: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:2761:35: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:2764:24: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2776:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2776:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2776:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2779:17: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2813:22: sparse: sparse: invalid assignment: |=
   drivers/mtd/nand/raw/qcom_nandc.c:2813:22: sparse:    left side has type restricted __le32
   drivers/mtd/nand/raw/qcom_nandc.c:2813:22: sparse:    right side has type unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2825:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg0 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2825:27: sparse:     expected restricted __le32 [usertype] cfg0
   drivers/mtd/nand/raw/qcom_nandc.c:2825:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2830:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cfg1 @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2830:27: sparse:     expected restricted __le32 [usertype] cfg1
   drivers/mtd/nand/raw/qcom_nandc.c:2830:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2839:42: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] ecc_buf_cfg @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2839:42: sparse:     expected restricted __le32 [usertype] ecc_buf_cfg
   drivers/mtd/nand/raw/qcom_nandc.c:2839:42: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:2843:42: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2843:34: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] vld @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:2843:34: sparse:     expected restricted __le32 [usertype] vld
   drivers/mtd/nand/raw/qcom_nandc.c:2843:34: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c:2844:43: sparse: sparse: restricted __le32 degrades to integer
   drivers/mtd/nand/raw/qcom_nandc.c:2844:35: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd1 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2844:35: sparse:     expected restricted __le32 [usertype] cmd1
   drivers/mtd/nand/raw/qcom_nandc.c:2844:35: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:2848:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] exec @@     got int @@
   drivers/mtd/nand/raw/qcom_nandc.c:2848:27: sparse:     expected restricted __le32 [usertype] exec
   drivers/mtd/nand/raw/qcom_nandc.c:2848:27: sparse:     got int
   drivers/mtd/nand/raw/qcom_nandc.c:3127:29: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd1 @@     got unsigned int @@
   drivers/mtd/nand/raw/qcom_nandc.c:3127:29: sparse:     expected restricted __le32 [usertype] cmd1
   drivers/mtd/nand/raw/qcom_nandc.c:3127:29: sparse:     got unsigned int
   drivers/mtd/nand/raw/qcom_nandc.c:3128:28: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] vld @@     got unsigned long @@
   drivers/mtd/nand/raw/qcom_nandc.c:3128:28: sparse:     expected restricted __le32 [usertype] vld
   drivers/mtd/nand/raw/qcom_nandc.c:3128:28: sparse:     got unsigned long
   drivers/mtd/nand/raw/qcom_nandc.c: note: in included file (through include/linux/gfp.h, include/linux/xarray.h, include/linux/radix-tree.h, ...):
   include/linux/mmzone.h:2016:40: sparse: sparse: self-comparison always evaluates to false
   include/linux/mmzone.h:2016:40: sparse: sparse: self-comparison always evaluates to false
   include/linux/mmzone.h:2016:40: sparse: sparse: self-comparison always evaluates to false

vim +686 drivers/mtd/nand/raw/qcom_nandc.c

   669	
   670	/**
   671	 * nandc_set_read_loc_first() - to set read location first register
   672	 * @chip:		NAND Private Flash Chip Data
   673	 * @reg_base:		location register base
   674	 * @cw_offset:		code word offset
   675	 * @read_size:		code word read length
   676	 * @is_last_read_loc:	is this the last read location
   677	 *
   678	 * This function will set location register value
   679	 */
   680	static void nandc_set_read_loc_first(struct nand_chip *chip,
   681					     int reg_base, int cw_offset,
   682					     int read_size, int is_last_read_loc)
   683	{
   684		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   685		__le32 val = (((cw_offset) << READ_LOCATION_OFFSET) |
 > 686			  ((read_size) << READ_LOCATION_SIZE) |
   687			  ((is_last_read_loc) << READ_LOCATION_LAST));
   688	
   689		if (reg_base == NAND_READ_LOCATION_0)
   690			nandc->regs->read_location0 = val;
   691		else if (reg_base == NAND_READ_LOCATION_1)
   692			nandc->regs->read_location1 = val;
   693		else if (reg_base == NAND_READ_LOCATION_2)
   694			nandc->regs->read_location2 = val;
   695		else if (reg_base == NAND_READ_LOCATION_3)
   696			nandc->regs->read_location3 = val;
   697	}
   698	
   699	/**
   700	 * nandc_set_read_loc_last - to set read location last register
   701	 * @chip:		NAND Private Flash Chip Data
   702	 * @reg_base:		location register base
   703	 * @cw_offset:		code word offset
   704	 * @read_size:		code word read length
   705	 * @is_last_read_loc:	is this the last read location
   706	 *
   707	 * This function will set location last register value
   708	 */
   709	static void nandc_set_read_loc_last(struct nand_chip *chip,
   710					    int reg_base, int cw_offset,
   711					    int read_size, int is_last_read_loc)
   712	{
   713		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   714	
   715		__le32 val = (((cw_offset) << READ_LOCATION_OFFSET) |
   716			  ((read_size) << READ_LOCATION_SIZE) |
   717			  ((is_last_read_loc) << READ_LOCATION_LAST));
   718	
   719		if (reg_base == NAND_READ_LOCATION_LAST_CW_0)
   720			nandc->regs->read_location_last0 = val;
   721		else if (reg_base == NAND_READ_LOCATION_LAST_CW_1)
   722			nandc->regs->read_location_last1 = val;
   723		else if (reg_base == NAND_READ_LOCATION_LAST_CW_2)
   724			nandc->regs->read_location_last2 = val;
   725		else if (reg_base == NAND_READ_LOCATION_LAST_CW_3)
   726			nandc->regs->read_location_last3 = val;
   727	}
   728	
   729	/* helper to configure location register values */
   730	static void nandc_set_read_loc(struct nand_chip *chip, int cw, int reg,
   731				       int cw_offset, int read_size, int is_last_read_loc)
   732	{
   733		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   734		struct nand_ecc_ctrl *ecc = &chip->ecc;
   735		int reg_base = NAND_READ_LOCATION_0;
   736	
   737		if (nandc->props->qpic_version2 && qcom_nandc_is_last_cw(ecc, cw))
   738			reg_base = NAND_READ_LOCATION_LAST_CW_0;
   739	
   740		reg_base += reg * 4;
   741	
   742		if (nandc->props->qpic_version2 && qcom_nandc_is_last_cw(ecc, cw))
   743			return nandc_set_read_loc_last(chip, reg_base, cw_offset,
   744					read_size, is_last_read_loc);
   745		else
   746			return nandc_set_read_loc_first(chip, reg_base, cw_offset,
   747					read_size, is_last_read_loc);
   748	}
   749	
   750	/* helper to configure address register values */
   751	static void set_address(struct qcom_nand_host *host, u16 column, int page)
   752	{
   753		struct nand_chip *chip = &host->chip;
   754		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   755	
   756		if (chip->options & NAND_BUSWIDTH_16)
   757			column >>= 1;
   758	
   759		nandc->regs->addr0 = page << 16 | column;
   760		nandc->regs->addr1 = page >> 16 & 0xff;
   761	}
   762	
   763	/*
   764	 * update_rw_regs:	set up read/write register values, these will be
   765	 *			written to the NAND controller registers via DMA
   766	 *
   767	 * @num_cw:		number of steps for the read/write operation
   768	 * @read:		read or write operation
   769	 * @cw	:		which code word
   770	 */
   771	static void update_rw_regs(struct qcom_nand_host *host, int num_cw, bool read, int cw)
   772	{
   773		struct nand_chip *chip = &host->chip;
   774		__le32 cmd, cfg0, cfg1, ecc_bch_cfg;
   775		struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
   776	
   777		if (read) {
   778			if (host->use_ecc)
 > 779				cmd = OP_PAGE_READ_WITH_ECC | PAGE_ACC | LAST_PAGE;
   780			else
   781				cmd = OP_PAGE_READ | PAGE_ACC | LAST_PAGE;
   782		} else {
   783			cmd = OP_PROGRAM_PAGE | PAGE_ACC | LAST_PAGE;
   784		}
   785	
   786		if (host->use_ecc) {
 > 787			cfg0 = (host->cfg0 & ~(7U << CW_PER_PAGE)) |
   788					(num_cw - 1) << CW_PER_PAGE;
   789	
   790			cfg1 = host->cfg1;
   791			ecc_bch_cfg = host->ecc_bch_cfg;
   792		} else {
   793			cfg0 = (host->cfg0_raw & ~(7U << CW_PER_PAGE)) |
   794					(num_cw - 1) << CW_PER_PAGE;
   795	
   796			cfg1 = host->cfg1_raw;
   797			ecc_bch_cfg = 1 << ECC_CFG_ECC_DISABLE;
   798		}
   799	
   800		nandc->regs->cmd = cmd;
   801		nandc->regs->cfg0 = cfg0;
   802		nandc->regs->cfg1 = cfg1;
   803		nandc->regs->ecc_bch_cfg = ecc_bch_cfg;
   804	
   805		if (!nandc->props->qpic_version2)
   806			nandc->regs->ecc_buf_cfg = host->ecc_buf_cfg;
   807	
   808		nandc->regs->clrflashstatus = host->clrflashstatus;
   809		nandc->regs->clrreadstatus = host->clrreadstatus;
   810		nandc->regs->exec = 1;
   811	
   812		if (read)
   813			nandc_set_read_loc(chip, cw, 0, 0, host->use_ecc ?
   814					   host->cw_data : host->cw_size, 1);
   815	}
   816	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2024-08-22  2:11 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-20 10:42 [PATCH v8 0/8] Add QPIC SPI NAND driver Md Sadre Alam
2024-08-20 10:42 ` Md Sadre Alam
2024-08-20 10:42 ` [PATCH v8 1/8] spi: dt-bindings: Introduce qcom,spi-qpic-snand Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-08-20 10:42 ` [PATCH v8 2/8] mtd: rawnand: qcom: cleanup qcom_nandc driver Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-08-22  2:10   ` kernel test robot [this message]
2024-08-22  2:10     ` kernel test robot
2024-08-20 10:42 ` [PATCH v8 3/8] mtd: rawnand: qcom: Add qcom prefix to common api Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-08-20 10:42 ` [PATCH v8 4/8] mtd: nand: Add qpic_common API file Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-08-20 10:42 ` [PATCH v8 5/8] mtd: rawnand: qcom: use FIELD_PREP and GENMASK Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-08-22  8:25   ` kernel test robot
2024-08-22  8:25     ` kernel test robot
2024-08-20 10:42 ` [PATCH v8 6/8] spi: spi-qpic: add driver for QCOM SPI NAND flash Interface Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-08-21  0:35   ` kernel test robot
2024-08-21  0:35     ` kernel test robot
2024-08-20 10:42 ` [PATCH v8 7/8] arm64: dts: qcom: ipq9574: Add SPI nand support Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-08-20 10:42 ` [PATCH v8 8/8] arm64: dts: qcom: ipq9574: Disable eMMC node Md Sadre Alam
2024-08-20 10:42   ` Md Sadre Alam
2024-09-03  9:15 ` [PATCH v8 0/8] Add QPIC SPI NAND driver Md Sadre Alam
2024-09-03  9:15   ` Md Sadre Alam
2024-09-03 13:08   ` Miquel Raynal
2024-09-03 13:08     ` Miquel Raynal
2024-09-03 14:20     ` Md Sadre Alam
2024-09-03 14:20       ` Md Sadre Alam
2024-09-10  6:21     ` Md Sadre Alam
2024-09-10  6:21       ` Md Sadre Alam
2024-09-10  7:41       ` Miquel Raynal
2024-09-10  7:41         ` Miquel Raynal
2024-09-12  6:18         ` Md Sadre Alam
2024-09-12  6:18           ` Md Sadre Alam
2024-09-03 13:44   ` Krzysztof Kozlowski
2024-09-03 13:44     ` Krzysztof Kozlowski
2024-09-03 14:22     ` Md Sadre Alam
2024-09-03 14:22       ` Md Sadre Alam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202408220948.977WwzTe-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=andersson@kernel.org \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=esben@geanix.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=quic_mdalam@quicinc.com \
    --cc=richard@nod.at \
    --cc=robh@kernel.org \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.