CC: [email protected]
TO: Lubomir Rintel <[email protected]>

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/lkundrak/linux-mmp.git 
lr/mmp3-thermal-v1
head:   5954b46ee7b1de0c8e187643c8e4907da8f41f35
commit: 5954b46ee7b1de0c8e187643c8e4907da8f41f35 [2/2] thermal driver
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: i386-randconfig-m021-20201022 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
drivers/thermal/mmp3_thermal.c:80 read_temperature_sensor() warn: this loop 
depends on readl() succeeding

Old smatch warnings:
drivers/thermal/mmp3_thermal.c:78 read_temperature_sensor() warn: this loop 
depends on readl() succeeding

vim +80 drivers/thermal/mmp3_thermal.c

5954b46ee7b1de0 Lubomir Rintel 2019-08-12   52  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   53  static unsigned long 
read_temperature_sensor(struct mmp3_thermal *priv, int range, int index)
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   54  {
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   55          int i, j, gray;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   56          unsigned long temp;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   57          u32 val;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   58  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   59          
mutex_lock(&mmp3_thermal_sensor_mutex);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   60  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   61          val = readl(priv->regs 
+ index);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   62  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   63          if (val & TEMP_EN_WDOG) 
{
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   64                  if ((range == 
HIRANGE) == ((val & TEMP_LOWRANGE) == 0))
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   65                          return 
0;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   66          }
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   67  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   68          if (range == HIRANGE) {
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   69                  val &= 
~TEMP_LOWRANGE;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   70          } else {
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   71                  val |= 
TEMP_LOWRANGE;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   72          }
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   73  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   74          val &= ~TEMP_START;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   75          writel(val, priv->regs 
+ index);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   76          usleep_range(300, 1000);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   77  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   78          for (i = 0; i < 10; 
i++) {
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   79                  writel(val | 
TEMP_START, priv->regs + index);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12  @80                  for (j = 0; j < 
10; j++) {
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   81                          
usleep_range(300, 1000);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   82                          if 
(readl(priv->regs + index) & TEMP_STATUS)
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   83                                  
goto done;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   84                  }
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   85                  
usleep_range(300, 1000);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   86                  writel(val, 
priv->regs + index);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   87          }
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   88      done:
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   89  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   90          if (i == 10) {
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   91                  printk(KERN_ERR 
"mmp3_thermal: timeout reading sensor %d, range %d\n",
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   92                          index, 
range);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   93                  writel(val, 
priv->regs + index);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   94                  temp = 0;  // 
filtering may fix this
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   95          } else {
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   96                  gray = 
readl(priv->regs + index) & TEMP_TEMP_VALUE_MASK;
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   97                  temp = 
gray_to_temp[range][gray];
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   98          }
5954b46ee7b1de0 Lubomir Rintel 2019-08-12   99  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12  100          
mutex_unlock(&mmp3_thermal_sensor_mutex);
5954b46ee7b1de0 Lubomir Rintel 2019-08-12  101  
5954b46ee7b1de0 Lubomir Rintel 2019-08-12  102          return temp;    // 
return value is tenths, C
5954b46ee7b1de0 Lubomir Rintel 2019-08-12  103  }
5954b46ee7b1de0 Lubomir Rintel 2019-08-12  104  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to