CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Miquel Raynal <miquel.ray...@bootlin.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   d717180e7f9775d468f415c10a4a474640146001
commit: d8701fe890ecbab239086e7053d62d0f08587d7c mtd: rawnand: renesas: Add new 
NAND controller driver
date:   6 months ago
:::::: branch date: 7 hours ago
:::::: commit date: 6 months ago
config: microblaze-randconfig-m031-20220605 
(https://download.01.org/0day-ci/archive/20220606/202206060933.pohn51vu-...@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

smatch warnings:
drivers/mtd/nand/raw/renesas-nand-controller.c:900 rnandc_setup_interface() 
warn: passing a valid pointer to 'PTR_ERR'

vim +/PTR_ERR +900 drivers/mtd/nand/raw/renesas-nand-controller.c

d8701fe890ecba Miquel Raynal 2021-12-17  888  
d8701fe890ecba Miquel Raynal 2021-12-17  889  static int 
rnandc_setup_interface(struct nand_chip *chip, int chipnr,
d8701fe890ecba Miquel Raynal 2021-12-17  890                              const 
struct nand_interface_config *conf)
d8701fe890ecba Miquel Raynal 2021-12-17  891  {
d8701fe890ecba Miquel Raynal 2021-12-17  892    struct rnand_chip *rnand = 
to_rnand(chip);
d8701fe890ecba Miquel Raynal 2021-12-17  893    struct rnandc *rnandc = 
to_rnandc(chip->controller);
d8701fe890ecba Miquel Raynal 2021-12-17  894    unsigned int period_ns = 
1000000000 / clk_get_rate(rnandc->eclk);
d8701fe890ecba Miquel Raynal 2021-12-17  895    const struct nand_sdr_timings 
*sdr;
d8701fe890ecba Miquel Raynal 2021-12-17  896    unsigned int cyc, cle, ale, 
bef_dly, ca_to_data;
d8701fe890ecba Miquel Raynal 2021-12-17  897  
d8701fe890ecba Miquel Raynal 2021-12-17  898    sdr = 
nand_get_sdr_timings(conf);
d8701fe890ecba Miquel Raynal 2021-12-17  899    if (IS_ERR(sdr))
d8701fe890ecba Miquel Raynal 2021-12-17 @900            return PTR_ERR(sdr);
d8701fe890ecba Miquel Raynal 2021-12-17  901  
d8701fe890ecba Miquel Raynal 2021-12-17  902    if (sdr->tRP_min != 
sdr->tWP_min || sdr->tREH_min != sdr->tWH_min) {
d8701fe890ecba Miquel Raynal 2021-12-17  903            dev_err(rnandc->dev, 
"Read and write hold times must be identical\n");
d8701fe890ecba Miquel Raynal 2021-12-17  904            return -EINVAL;
d8701fe890ecba Miquel Raynal 2021-12-17  905    }
d8701fe890ecba Miquel Raynal 2021-12-17  906  
d8701fe890ecba Miquel Raynal 2021-12-17  907    if (chipnr < 0)
d8701fe890ecba Miquel Raynal 2021-12-17  908            return 0;
d8701fe890ecba Miquel Raynal 2021-12-17  909  
d8701fe890ecba Miquel Raynal 2021-12-17  910    rnand->timings_asyn =
d8701fe890ecba Miquel Raynal 2021-12-17  911            
TIMINGS_ASYN_TRWP(TO_CYCLES64(sdr->tRP_min, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  912            
TIMINGS_ASYN_TRWH(TO_CYCLES64(sdr->tREH_min, period_ns));
d8701fe890ecba Miquel Raynal 2021-12-17  913    rnand->tim_seq0 =
d8701fe890ecba Miquel Raynal 2021-12-17  914            
TIM_SEQ0_TCCS(TO_CYCLES64(sdr->tCCS_min, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  915            
TIM_SEQ0_TADL(TO_CYCLES64(sdr->tADL_min, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  916            
TIM_SEQ0_TRHW(TO_CYCLES64(sdr->tRHW_min, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  917            
TIM_SEQ0_TWHR(TO_CYCLES64(sdr->tWHR_min, period_ns));
d8701fe890ecba Miquel Raynal 2021-12-17  918    rnand->tim_seq1 =
d8701fe890ecba Miquel Raynal 2021-12-17  919            
TIM_SEQ1_TWB(TO_CYCLES64(sdr->tWB_max, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  920            
TIM_SEQ1_TRR(TO_CYCLES64(sdr->tRR_min, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  921            
TIM_SEQ1_TWW(TO_CYCLES64(sdr->tWW_min, period_ns));
d8701fe890ecba Miquel Raynal 2021-12-17  922  
d8701fe890ecba Miquel Raynal 2021-12-17  923    cyc = sdr->tDS_min + 
sdr->tDH_min;
d8701fe890ecba Miquel Raynal 2021-12-17  924    cle = sdr->tCLH_min + 
sdr->tCLS_min;
d8701fe890ecba Miquel Raynal 2021-12-17  925    ale = sdr->tALH_min + 
sdr->tALS_min;
d8701fe890ecba Miquel Raynal 2021-12-17  926    bef_dly = sdr->tWB_max - 
sdr->tDH_min;
d8701fe890ecba Miquel Raynal 2021-12-17  927    ca_to_data = sdr->tWHR_min + 
sdr->tREA_max - sdr->tDH_min;
d8701fe890ecba Miquel Raynal 2021-12-17  928  
d8701fe890ecba Miquel Raynal 2021-12-17  929    /*
d8701fe890ecba Miquel Raynal 2021-12-17  930     * D0 = CMD -> ADDR = tCLH + 
tCLS - 1 cycle
d8701fe890ecba Miquel Raynal 2021-12-17  931     * D1 = CMD -> CMD = tCLH + 
tCLS - 1 cycle
d8701fe890ecba Miquel Raynal 2021-12-17  932     * D2 = CMD -> DLY = tWB - tDH
d8701fe890ecba Miquel Raynal 2021-12-17  933     * D3 = CMD -> DATA = tWHR + 
tREA - tDH
d8701fe890ecba Miquel Raynal 2021-12-17  934     */
d8701fe890ecba Miquel Raynal 2021-12-17  935    rnand->tim_gen_seq0 =
d8701fe890ecba Miquel Raynal 2021-12-17  936            
TIM_GEN_SEQ0_D0(TO_CYCLES64(cle - cyc, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  937            
TIM_GEN_SEQ0_D1(TO_CYCLES64(cle - cyc, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  938            
TIM_GEN_SEQ0_D2(TO_CYCLES64(bef_dly, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  939            
TIM_GEN_SEQ0_D3(TO_CYCLES64(ca_to_data, period_ns));
d8701fe890ecba Miquel Raynal 2021-12-17  940  
d8701fe890ecba Miquel Raynal 2021-12-17  941    /*
d8701fe890ecba Miquel Raynal 2021-12-17  942     * D4 = ADDR -> CMD = tALH + 
tALS - 1 cyle
d8701fe890ecba Miquel Raynal 2021-12-17  943     * D5 = ADDR -> ADDR = tALH + 
tALS - 1 cyle
d8701fe890ecba Miquel Raynal 2021-12-17  944     * D6 = ADDR -> DLY = tWB - tDH
d8701fe890ecba Miquel Raynal 2021-12-17  945     * D7 = ADDR -> DATA = tWHR + 
tREA - tDH
d8701fe890ecba Miquel Raynal 2021-12-17  946     */
d8701fe890ecba Miquel Raynal 2021-12-17  947    rnand->tim_gen_seq1 =
d8701fe890ecba Miquel Raynal 2021-12-17  948            
TIM_GEN_SEQ1_D4(TO_CYCLES64(ale - cyc, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  949            
TIM_GEN_SEQ1_D5(TO_CYCLES64(ale - cyc, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  950            
TIM_GEN_SEQ1_D6(TO_CYCLES64(bef_dly, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  951            
TIM_GEN_SEQ1_D7(TO_CYCLES64(ca_to_data, period_ns));
d8701fe890ecba Miquel Raynal 2021-12-17  952  
d8701fe890ecba Miquel Raynal 2021-12-17  953    /*
d8701fe890ecba Miquel Raynal 2021-12-17  954     * D8 = DLY -> DATA = tRR + tREA
d8701fe890ecba Miquel Raynal 2021-12-17  955     * D9 = DLY -> CMD = tRR
d8701fe890ecba Miquel Raynal 2021-12-17  956     * D10 = DATA -> CMD = tCLH + 
tCLS - 1 cycle
d8701fe890ecba Miquel Raynal 2021-12-17  957     * D11 = DATA -> DLY = tWB - tDH
d8701fe890ecba Miquel Raynal 2021-12-17  958     */
d8701fe890ecba Miquel Raynal 2021-12-17  959    rnand->tim_gen_seq2 =
d8701fe890ecba Miquel Raynal 2021-12-17  960            
TIM_GEN_SEQ2_D8(TO_CYCLES64(sdr->tRR_min + sdr->tREA_max, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  961            
TIM_GEN_SEQ2_D9(TO_CYCLES64(sdr->tRR_min, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  962            
TIM_GEN_SEQ2_D10(TO_CYCLES64(cle - cyc, period_ns)) |
d8701fe890ecba Miquel Raynal 2021-12-17  963            
TIM_GEN_SEQ2_D11(TO_CYCLES64(bef_dly, period_ns));
d8701fe890ecba Miquel Raynal 2021-12-17  964  
d8701fe890ecba Miquel Raynal 2021-12-17  965    /* D12 = DATA -> END = tCLH - 
tDH */
d8701fe890ecba Miquel Raynal 2021-12-17  966    rnand->tim_gen_seq3 =
d8701fe890ecba Miquel Raynal 2021-12-17  967            
TIM_GEN_SEQ3_D12(TO_CYCLES64(sdr->tCLH_min - sdr->tDH_min, period_ns));
d8701fe890ecba Miquel Raynal 2021-12-17  968  
d8701fe890ecba Miquel Raynal 2021-12-17  969    return 0;
d8701fe890ecba Miquel Raynal 2021-12-17  970  }
d8701fe890ecba Miquel Raynal 2021-12-17  971  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to