* Dan Carpenter (dan.carpen...@oracle.com) wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   5925fa68fe8244651b3f78a88c4af99190a88f0d
> commit: 266cd5835947d08b7c963b6d9d9f15d9e481bd0a hwmon: (w83627ehf) convert 
> to with_info interface
> config: i386-randconfig-m021-20200916 (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 <l...@intel.com>
> Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
> 
> smatch warnings:
> drivers/hwmon/w83627ehf.c:2417 w83627ehf_probe() warn: 'res->start' not 
> released on lines: 2412.
> 
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=266cd5835947d08b7c963b6d9d9f15d9e481bd0a
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 266cd5835947d08b7c963b6d9d9f15d9e481bd0a
> vim +2417 drivers/hwmon/w83627ehf.c
> 
> 6c931ae1c09a96 drivers/hwmon/w83627ehf.c     Bill Pemberton         
> 2012-11-19  2015  static int w83627ehf_probe(struct platform_device *pdev)
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2016  {
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2017          struct device *dev = &pdev->dev;
> a8b3a3a53f9a81 drivers/hwmon/w83627ehf.c     Jingoo Han             
> 2013-07-30  2018          struct w83627ehf_sio_data *sio_data = 
> dev_get_platdata(dev);
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2019          struct w83627ehf_data *data;
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2020          struct resource *res;
> 03f5de2bb7125e drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-10-13  2021          u8 en_vrm10;
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2022          int i, err = 0;
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2023          struct device *hwmon_dev;
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2024  
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2025          res = platform_get_resource(pdev, IORESOURCE_IO, 0);
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2026          if (!request_region(res->start, IOREGION_LENGTH, 
> DRVNAME)) {
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2027                  err = -EBUSY;
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2028                  dev_err(dev, "Failed to request region 
> 0x%lx-0x%lx\n",
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2029                          (unsigned long)res->start,
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2030                          (unsigned long)res->start + 
> IOREGION_LENGTH - 1);
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2031                  goto exit;
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2032          }
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2033  
> 32260d94408c55 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-03-12  2034          data = devm_kzalloc(&pdev->dev, sizeof(struct 
> w83627ehf_data),
> 32260d94408c55 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-03-12  2035                              GFP_KERNEL);
> e7e1ca6ef4f331 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-04  2036          if (!data) {
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2037                  err = -ENOMEM;
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2038                  goto exit_release;
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2039          }
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2040  
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2041          data->addr = res->start;
> 9a61bf6300533d drivers/hwmon/w83627ehf.c     Ingo Molnar            
> 2006-01-18  2042          mutex_init(&data->lock);
> 9a61bf6300533d drivers/hwmon/w83627ehf.c     Ingo Molnar            
> 2006-01-18  2043          mutex_init(&data->update_lock);
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2044          data->name = w83627ehf_device_names[sio_data->kind];
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2045          data->kind = sio_data->kind;
> 3300fb4f886880 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2012-11-05  2046          data->bank = 0xff;              /* Force initial 
> bank selection */
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2047          platform_set_drvdata(pdev, data);
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2048  
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2049          /* 627EHG and 627EHF have 10 voltage inputs; 627DHG 
> and 667HG have 9 */
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2050          data->in_num = (sio_data->kind == w83627ehf) ? 10 : 
> 9;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2051          /* 667HG, NCT6775F, and NCT6776F have 3 pwms, and 
> 627UHG has only 2 */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2052          switch (sio_data->kind) {
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2053          default:
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2054                  data->pwm_num = 4;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2055                  break;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2056          case w83667hg:
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2057          case w83667hg_b:
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2058          case nct6775:
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2059          case nct6776:
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2060                  data->pwm_num = 3;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2061                  break;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2062          case w83627uhg:
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2063                  data->pwm_num = 2;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2064                  break;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2065          }
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2066  
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2067          /* Default to 3 temperature inputs, code below will 
> adjust as needed */
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2068          data->have_temp = 0x07;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2069  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2070          /* Deal with temperature register setup first. */
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2071          if (sio_data->kind == nct6775 || sio_data->kind == 
> nct6776) {
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2072                  int mask = 0;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2073  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2074                  /*
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2075                   * Display temperature sensor output only 
> if it monitors
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2076                   * a source other than one already 
> reported. Always display
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2077                   * first three temperature registers, 
> though.
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2078                   */
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2079                  for (i = 0; i < NUM_REG_TEMP; i++) {
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2080                          u8 src;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2081  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2082                          data->reg_temp[i] = 
> NCT6775_REG_TEMP[i];
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2083                          data->reg_temp_over[i] = 
> NCT6775_REG_TEMP_OVER[i];
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2084                          data->reg_temp_hyst[i] = 
> NCT6775_REG_TEMP_HYST[i];
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2085                          data->reg_temp_config[i] = 
> NCT6775_REG_TEMP_CONFIG[i];
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2086  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2087                          src = w83627ehf_read_value(data,
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2088                                                     
> NCT6775_REG_TEMP_SOURCE[i]);
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2089                          src &= 0x1f;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2090                          if (src && !(mask & (1 << src))) {
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2091                                  data->have_temp |= 1 << i;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2092                                  mask |= 1 << src;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2093                          }
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2094  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2095                          data->temp_src[i] = src;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2096  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2097                          /*
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2098                           * Now do some register swapping if 
> index 0..2 don't
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2099                           * point to SYSTIN(1), CPUIN(2), 
> and AUXIN(3).
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2100                           * Idea is to have the first three 
> attributes
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2101                           * report SYSTIN, CPUIN, and AUXIN 
> if possible
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2102                           * without overriding the basic 
> system configuration.
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2103                           */
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2104                          if (i > 0 && data->temp_src[0] != 1
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2105                              && data->temp_src[i] == 1)
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2106                                  
> w82627ehf_swap_tempreg(data, 0, i);
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2107                          if (i > 1 && data->temp_src[1] != 2
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2108                              && data->temp_src[i] == 2)
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2109                                  
> w82627ehf_swap_tempreg(data, 1, i);
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2110                          if (i > 2 && data->temp_src[2] != 3
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2111                              && data->temp_src[i] == 3)
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2112                                  
> w82627ehf_swap_tempreg(data, 2, i);
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2113                  }
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2114                  if (sio_data->kind == nct6776) {
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2115                          /*
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2116                           * On NCT6776, AUXTIN and VIN3 pins 
> are shared.
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2117                           * Only way to detect it is to 
> check if AUXTIN is used
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2118                           * as a temperature source, and if 
> that source is
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2119                           * enabled.
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2120                           *
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2121                           * If that is the case, disable 
> in6, which reports VIN3.
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2122                           * Otherwise disable temp3.
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2123                           */
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2124                          if (data->temp_src[2] == 3) {
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2125                                  u8 reg;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2126  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2127                                  if 
> (data->reg_temp_config[2])
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2128                                          reg = 
> w83627ehf_read_value(data,
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2129                                                  
> data->reg_temp_config[2]);
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2130                                  else
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2131                                          reg = 0; /* Assume 
> AUXTIN is used */
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2132  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2133                                  if (reg & 0x01)
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2134                                          data->have_temp &= 
> ~(1 << 2);
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2135                                  else
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2136                                          data->in6_skip = 1;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2137                          }
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2138                          data->temp_label = 
> nct6776_temp_label;
> 02309ad2b8cbcf drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-03-10  2139                  } else {
> 02309ad2b8cbcf drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-03-10  2140                          data->temp_label = 
> nct6775_temp_label;
> 02309ad2b8cbcf drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-03-10  2141                  }
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2142                  data->have_temp_offset = data->have_temp & 
> 0x07;
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2143                  for (i = 0; i < 3; i++) {
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2144                          if (data->temp_src[i] > 3)
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2145                                  data->have_temp_offset &= 
> ~(1 << i);
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2146                  }
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2147          } else if (sio_data->kind == w83667hg_b) {
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2148                  u8 reg;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2149  
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2150                  w83627ehf_set_temp_reg_ehf(data, 4);
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2151  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2152                  /*
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2153                   * Temperature sources are selected with 
> bank 0, registers 0x49
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2154                   * and 0x4a.
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2155                   */
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2156                  reg = w83627ehf_read_value(data, 0x4a);
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2157                  data->temp_src[0] = reg >> 5;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2158                  reg = w83627ehf_read_value(data, 0x49);
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2159                  data->temp_src[1] = reg & 0x07;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2160                  data->temp_src[2] = (reg >> 4) & 0x07;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2161  
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2162                  /*
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2163                   * W83667HG-B has another temperature 
> register at 0x7e.
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2164                   * The temperature source is selected with 
> register 0x7d.
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2165                   * Support it if the source differs from 
> already reported
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2166                   * sources.
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2167                   */
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2168                  reg = w83627ehf_read_value(data, 0x7d);
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2169                  reg &= 0x07;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2170                  if (reg != data->temp_src[0] && reg != 
> data->temp_src[1]
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2171                      && reg != data->temp_src[2]) {
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2172                          data->temp_src[3] = reg;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2173                          data->have_temp |= 1 << 3;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2174                  }
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2175  
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2176                  /*
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2177                   * Chip supports either AUXTIN or VIN3. Try 
> to find out which
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2178                   * one.
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2179                   */
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2180                  reg = w83627ehf_read_value(data, 
> W83627EHF_REG_TEMP_CONFIG[2]);
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2181                  if (data->temp_src[2] == 2 && (reg & 0x01))
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2182                          data->have_temp &= ~(1 << 2);
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2183  
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2184                  if ((data->temp_src[2] == 2 && 
> (data->have_temp & (1 << 2)))
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2185                      || (data->temp_src[3] == 2 && 
> (data->have_temp & (1 << 3))))
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2186                          data->in6_skip = 1;
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2187  
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2188                  data->temp_label = w83667hg_b_temp_label;
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2189                  data->have_temp_offset = data->have_temp & 
> 0x07;
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2190                  for (i = 0; i < 3; i++) {
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2191                          if (data->temp_src[i] > 2)
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2192                                  data->have_temp_offset &= 
> ~(1 << i);
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2193                  }
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2194          } else if (sio_data->kind == w83627uhg) {
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2195                  u8 reg;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2196  
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2197                  w83627ehf_set_temp_reg_ehf(data, 3);
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2198  
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2199                  /*
> aacb6b0052692c drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2012-03-13  2200                   * Temperature sources for temp2 and temp3 
> are selected with
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2201                   * bank 0, registers 0x49 and 0x4a.
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2202                   */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2203                  data->temp_src[0] = 0;  /* SYSTIN */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2204                  reg = w83627ehf_read_value(data, 0x49) & 
> 0x07;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2205                  /* Adjust to have the same mapping as other 
> source registers */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2206                  if (reg == 0)
> aacb6b0052692c drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2012-03-13  2207                          data->temp_src[1] = 1;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2208                  else if (reg >= 2 && reg <= 5)
> aacb6b0052692c drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2012-03-13  2209                          data->temp_src[1] = reg + 2;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2210                  else    /* should never happen */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2211                          data->have_temp &= ~(1 << 1);
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2212                  reg = w83627ehf_read_value(data, 0x4a);
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2213                  data->temp_src[2] = reg >> 5;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2214  
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2215                  /*
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2216                   * Skip temp3 if source is invalid or the 
> same as temp1
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2217                   * or temp2.
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2218                   */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2219                  if (data->temp_src[2] == 2 || 
> data->temp_src[2] == 3 ||
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2220                      data->temp_src[2] == data->temp_src[0] 
> ||
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2221                      ((data->have_temp & (1 << 1)) &&
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2222                       data->temp_src[2] == 
> data->temp_src[1]))
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2223                          data->have_temp &= ~(1 << 2);
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2224                  else
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2225                          data->temp3_val_only = 1;       /* 
> No limit regs */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2226  
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2227                  data->in6_skip = 1;                     /* 
> No VIN3 */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2228  
> d36cf32c9a6c4f drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-07  2229                  data->temp_label = w83667hg_b_temp_label;
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2230                  data->have_temp_offset = data->have_temp & 
> 0x03;
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2231                  for (i = 0; i < 3; i++) {
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2232                          if (data->temp_src[i] > 1)
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2233                                  data->have_temp_offset &= 
> ~(1 << i);
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2234                  }
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2235          } else {
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2236                  w83627ehf_set_temp_reg_ehf(data, 3);
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2237  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2238                  /* Temperature sources are fixed */
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2239  
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2240                  if (sio_data->kind == w83667hg) {
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2241                          u8 reg;
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2242  
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2243                          /*
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2244                           * Chip supports either AUXTIN or 
> VIN3. Try to find
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2245                           * out which one.
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2246                           */
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2247                          reg = w83627ehf_read_value(data,
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2248                                                  
> W83627EHF_REG_TEMP_CONFIG[2]);
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2249                          if (reg & 0x01)
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2250                                  data->have_temp &= ~(1 << 
> 2);
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2251                          else
> 6ba71de5f81bbf drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2252                                  data->in6_skip = 1;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2253                  }
> 840e191dba36f5 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-02-08  2254                  data->have_temp_offset = data->have_temp & 
> 0x07;
> a157d06d4d7031 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2255          }
> a157d06d4d7031 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2256  
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2257          if (sio_data->kind == nct6775) {
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2258                  data->has_fan_div = true;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2259                  data->fan_from_reg = fan_from_reg16;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2260                  data->fan_from_reg_min = fan_from_reg8;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2261                  data->REG_PWM = NCT6775_REG_PWM;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2262                  data->REG_TARGET = NCT6775_REG_TARGET;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2263                  data->REG_FAN = NCT6775_REG_FAN;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2264                  data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2265                  data->REG_FAN_START_OUTPUT = 
> NCT6775_REG_FAN_START_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2266                  data->REG_FAN_STOP_OUTPUT = 
> NCT6775_REG_FAN_STOP_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2267                  data->REG_FAN_STOP_TIME = 
> NCT6775_REG_FAN_STOP_TIME;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2268                  data->REG_FAN_MAX_OUTPUT = 
> NCT6775_REG_FAN_MAX_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2269                  data->REG_FAN_STEP_OUTPUT = 
> NCT6775_REG_FAN_STEP_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2270          } else if (sio_data->kind == nct6776) {
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2271                  data->has_fan_div = false;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2272                  data->fan_from_reg = fan_from_reg13;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2273                  data->fan_from_reg_min = fan_from_reg13;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2274                  data->REG_PWM = NCT6775_REG_PWM;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2275                  data->REG_TARGET = NCT6775_REG_TARGET;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2276                  data->REG_FAN = NCT6775_REG_FAN;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2277                  data->REG_FAN_MIN = NCT6776_REG_FAN_MIN;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2278                  data->REG_FAN_START_OUTPUT = 
> NCT6775_REG_FAN_START_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2279                  data->REG_FAN_STOP_OUTPUT = 
> NCT6775_REG_FAN_STOP_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2280                  data->REG_FAN_STOP_TIME = 
> NCT6775_REG_FAN_STOP_TIME;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2281          } else if (sio_data->kind == w83667hg_b) {
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2282                  data->has_fan_div = true;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2283                  data->fan_from_reg = fan_from_reg8;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2284                  data->fan_from_reg_min = fan_from_reg8;
> 279af1a91a0410 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2285                  data->REG_PWM = W83627EHF_REG_PWM;
> 279af1a91a0410 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2286                  data->REG_TARGET = W83627EHF_REG_TARGET;
> 279af1a91a0410 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2287                  data->REG_FAN = W83627EHF_REG_FAN;
> 279af1a91a0410 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2288                  data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN;
> da2e025590cf70 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2289                  data->REG_FAN_START_OUTPUT = 
> W83627EHF_REG_FAN_START_OUTPUT;
> da2e025590cf70 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2290                  data->REG_FAN_STOP_OUTPUT = 
> W83627EHF_REG_FAN_STOP_OUTPUT;
> 279af1a91a0410 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2291                  data->REG_FAN_STOP_TIME = 
> W83627EHF_REG_FAN_STOP_TIME;
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2292                  data->REG_FAN_MAX_OUTPUT =
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2293                    W83627EHF_REG_FAN_MAX_OUTPUT_W83667_B;
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2294                  data->REG_FAN_STEP_OUTPUT =
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2295                    W83627EHF_REG_FAN_STEP_OUTPUT_W83667_B;
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2296          } else {
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2297                  data->has_fan_div = true;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2298                  data->fan_from_reg = fan_from_reg8;
> 26bc440e3f14df drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-11  2299                  data->fan_from_reg_min = fan_from_reg8;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2300                  data->REG_PWM = W83627EHF_REG_PWM;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2301                  data->REG_TARGET = W83627EHF_REG_TARGET;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2302                  data->REG_FAN = W83627EHF_REG_FAN;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2303                  data->REG_FAN_MIN = W83627EHF_REG_FAN_MIN;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2304                  data->REG_FAN_START_OUTPUT = 
> W83627EHF_REG_FAN_START_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2305                  data->REG_FAN_STOP_OUTPUT = 
> W83627EHF_REG_FAN_STOP_OUTPUT;
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2306                  data->REG_FAN_STOP_TIME = 
> W83627EHF_REG_FAN_STOP_TIME;
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2307                  data->REG_FAN_MAX_OUTPUT =
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2308                    W83627EHF_REG_FAN_MAX_OUTPUT_COMMON;
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2309                  data->REG_FAN_STEP_OUTPUT =
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2310                    W83627EHF_REG_FAN_STEP_OUTPUT_COMMON;
> c39aedafb24260 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2311          }
> da2e025590cf70 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2010-08-14  2312  
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2313          /* Setup input voltage scaling factors */
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2314          if (sio_data->kind == w83627uhg)
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2315                  data->scale_in = scale_in_w83627uhg;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2316          else
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2317                  data->scale_in = scale_in_common;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2318  
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2319          /* Initialize the chip */
> bf164c58e58328 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-10-13  2320          w83627ehf_init_device(data, sio_data->kind);
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2321  
> fc18d6c0479d5b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2007-06-24  2322          data->vrm = vid_which_vrm();
> 0d0235301b3a53 drivers/hwmon/w83627ehf.c     Katsumi Sato           
> 2017-02-22  2323  
> 0d0235301b3a53 drivers/hwmon/w83627ehf.c     Katsumi Sato           
> 2017-02-22  2324          err = superio_enter(sio_data->sioreg);
> 0d0235301b3a53 drivers/hwmon/w83627ehf.c     Katsumi Sato           
> 2017-02-22  2325          if (err)
> 0d0235301b3a53 drivers/hwmon/w83627ehf.c     Katsumi Sato           
> 2017-02-22  2326                  goto exit_release;
> 0d0235301b3a53 drivers/hwmon/w83627ehf.c     Katsumi Sato           
> 2017-02-22  2327  
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2328          /* Read VID value */
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2329          if (sio_data->kind == w83667hg || sio_data->kind == 
> w83667hg_b ||
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2330              sio_data->kind == nct6775 || sio_data->kind == 
> nct6776) {
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2331                  /*
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2332                   * W83667HG has different pins for VID 
> input and output, so
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2333                   * we can get the VID input values directly 
> at logical device D
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2334                   * 0xe3.
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2335                   */
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2336                  superio_select(sio_data->sioreg, 
> W83667HG_LD_VID);
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2337                  data->vid = superio_inb(sio_data->sioreg, 
> 0xe3);
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2338                  data->have_vid = true;
> eff7687d473c31 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-11-04  2339          } else if (sio_data->kind != w83627uhg) {
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2340                  superio_select(sio_data->sioreg, 
> W83627EHF_LD_HWM);
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2341                  if (superio_inb(sio_data->sioreg, 
> SIO_REG_VID_CTRL) & 0x80) {
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2342                          /*
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2343                           * Set VID input sensibility if 
> needed. In theory the
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2344                           * BIOS should have set it, but in 
> practice it's not
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2345                           * always the case. We only do it 
> for the W83627EHF/EHG
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2346                           * because the W83627DHG is more 
> complex in this
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2347                           * respect.
> 8969e84d954af3 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2012-01-19  2348                           */
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2349                          if (sio_data->kind == w83627ehf) {
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2350                                  en_vrm10 = 
> superio_inb(sio_data->sioreg,
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2351                                                         
> SIO_REG_EN_VRM10);
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2352                                  if ((en_vrm10 & 0x08) && 
> data->vrm == 90) {
> b55f375725ff85 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2013-01-10  2353                                          dev_warn(dev,
> b55f375725ff85 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2013-01-10  2354                                                   "Setting 
> VID input voltage to TTL\n");
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2355                                          
> superio_outb(sio_data->sioreg,
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2356                                                       
> SIO_REG_EN_VRM10,
> fc18d6c0479d5b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2007-06-24  2357                                                       
> en_vrm10 & ~0x08);
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2358                                  } else if (!(en_vrm10 & 
> 0x08)
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2359                                             && data->vrm == 
> 100) {
> b55f375725ff85 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2013-01-10  2360                                          dev_warn(dev,
> b55f375725ff85 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2013-01-10  2361                                                   "Setting 
> VID input voltage to VRM10\n");
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2362                                          
> superio_outb(sio_data->sioreg,
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2363                                                       
> SIO_REG_EN_VRM10,
> fc18d6c0479d5b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2007-06-24  2364                                                       
> en_vrm10 | 0x08);
> fc18d6c0479d5b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2007-06-24  2365                                  }
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2366                          }
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2367  
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2368                          data->vid = 
> superio_inb(sio_data->sioreg,
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2369                                                  
> SIO_REG_VID_DATA);
> cbe311f2a40b84 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2370                          if (sio_data->kind == w83627ehf) /* 
> 6 VID pins only */
> cbe311f2a40b84 drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2371                                  data->vid &= 0x3f;
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2372                          data->have_vid = true;
> 58e6e78119da2b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2008-01-03  2373                  } else {
> b55f375725ff85 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2013-01-10  2374                          dev_info(dev,
> b55f375725ff85 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2013-01-10  2375                                   "VID pins in output mode, 
> CPU VID not available\n");
> fc18d6c0479d5b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2007-06-24  2376                  }
> 237c8d2f54ff12 drivers/hwmon/w83627ehf.c     Gong Jun               
> 2009-03-30  2377          }
> fc18d6c0479d5b drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2007-06-24  2378  
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2379          if (fan_debounce &&
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2380              (sio_data->kind == nct6775 || sio_data->kind == 
> nct6776)) {
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2381                  u8 tmp;
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2382  
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2383                  superio_select(sio_data->sioreg, 
> W83627EHF_LD_HWM);
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2384                  tmp = superio_inb(sio_data->sioreg, 
> NCT6775_REG_FAN_DEBOUNCE);
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2385                  if (sio_data->kind == nct6776)
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2386                          superio_outb(sio_data->sioreg, 
> NCT6775_REG_FAN_DEBOUNCE,
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2387                                       0x3e | tmp);
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2388                  else
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2389                          superio_outb(sio_data->sioreg, 
> NCT6775_REG_FAN_DEBOUNCE,
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2390                                       0x1e | tmp);
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2391                  pr_info("Enabled fan debounce for chip 
> %s\n", data->name);
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2392          }
> d42e869acf0da4 drivers/hwmon/w83627ehf.c     Ian Dobson             
> 2011-03-07  2393  
> 03f5de2bb7125e drivers/hwmon/w83627ehf.c     Jean Delvare           
> 2011-10-13  2394          w83627ehf_check_fan_inputs(sio_data, data);
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2395  
> 0d0235301b3a53 drivers/hwmon/w83627ehf.c     Katsumi Sato           
> 2017-02-22  2396          superio_exit(sio_data->sioreg);
> 0d0235301b3a53 drivers/hwmon/w83627ehf.c     Katsumi Sato           
> 2017-02-22  2397  
> ea7be66c44e56b drivers/hwmon/w83627ehf.c     Mark M. Hoffman        
> 2007-08-05  2398          /* Read fan clock dividers immediately */
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2399          w83627ehf_update_fan_div_common(dev, data);
> ec3e5a16446fef drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-02  2400  
> b84bb5186297d1 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2401          /* Read pwm data to save original values */
> b84bb5186297d1 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2402          w83627ehf_update_pwm_common(dev, data);
> b84bb5186297d1 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2403          for (i = 0; i < data->pwm_num; i++)
> b84bb5186297d1 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2404                  data->pwm_enable_orig[i] = 
> data->pwm_enable[i];
> b84bb5186297d1 drivers/hwmon/w83627ehf.c     Guenter Roeck          
> 2011-02-13  2405  
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2406          hwmon_dev = 
> devm_hwmon_device_register_with_info(&pdev->dev,
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2407                                                           
> data->name,
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2408                                                           
> data,
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2409                                                           
> &w83627ehf_chip_info,
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2410                                                           
> w83627ehf_groups);
> 08c79950a047db drivers/hwmon/w83627ehf.c     Rudolf Marek           
> 2006-07-05  2411  
> 266cd5835947d0 drivers/hwmon/w83627ehf.c     Dr. David Alan Gilbert 
> 2019-11-24  2412          return PTR_ERR_OR_ZERO(hwmon_dev);
>                                                                               
>           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This should be:
> 
>       if (IS_ERR(hwmon_dev)) {
>               err = PTR_ERR(hwmon_dev);
>               goto exit_release;
>       }
> 
>       return 0;

That looks about right to me; why don't you just submit that as a patch ?

Dave

> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2413  
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2414  exit_release:
> 1ea6dd3840e5a2 drivers/hwmon/w83627ehf.c     David Hubbard          
> 2007-06-24  2415          release_region(res->start, IOREGION_LENGTH);
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2416  exit:
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25 @2417          return err;
> 08e7e2789e0da4 drivers/i2c/chips/w83627ehf.c Jean Delvare           
> 2005-04-25  2418  }
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org


-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/

Reply via email to