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;

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

Attachment: .config.gz
Description: application/gzip

Reply via email to