CC: [email protected]
CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Sascha Hauer <[email protected]>
CC: Abel Vesa <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   3e732ebf7316ac83e8562db7e64cc68aec390a18
commit: b09c68dc57c9d44071d83bb935b733f53ea2b2b4 clk: imx: pll14xx: Support 
dynamic rates
date:   5 weeks ago
:::::: branch date: 9 hours ago
:::::: commit date: 5 weeks ago
config: arm-randconfig-c002-20220404 
(https://download.01.org/0day-ci/archive/20220406/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
c4a1b07d0979e7ff20d7d541af666d822d66b566)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b09c68dc57c9d44071d83bb935b733f53ea2b2b4
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout b09c68dc57c9d44071d83bb935b733f53ea2b2b4
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 
clang-analyzer 

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


clang-analyzer warnings: (new ones prefixed by >>)
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:250:2: note: Taking false 
branch
           if (kstrtoul(buf, 0, &val))
           ^
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:255:6: note: Assuming 
'pcached_val' is null
           if (pcached_val)
               ^~~~~~~~~~~
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:255:6: note: Assuming 
pointer value is null
           if (pcached_val)
               ^~~~~~~~~~~
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:255:2: note: Taking false 
branch
           if (pcached_val)
           ^
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:259:7: note: 'reg_offset' 
is >= 0
           if ((reg_offset >= 0) && cti_active(config))
                ^~~~~~~~~~
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:259:6: note: Left side of 
'&&' is true
           if ((reg_offset >= 0) && cti_active(config))
               ^
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:259:38: note: Passing 
value via 1st parameter 'cfg'
           if ((reg_offset >= 0) && cti_active(config))
                                               ^~~~~~
   drivers/hwtracing/coresight/coresight-cti-sysfs.c:259:27: note: Calling 
'cti_active'
           if ((reg_offset >= 0) && cti_active(config))
                                    ^~~~~~~~~~~~~~~~~~
   drivers/hwtracing/coresight/coresight-cti.h:238:9: note: Access to field 
'hw_powered' results in a dereference of a null pointer (loaded from variable 
'cfg')
           return cfg->hw_powered && cfg->hw_enabled;
                  ^~~
   1 warning generated.
   Suppressed 1 warnings (1 with check filters).
   2 warnings generated.
   drivers/clocksource/timer-of.c:191:3: warning: Value stored to 'flags' is 
never read [clang-analyzer-deadcode.DeadStores]
                   flags |= TIMER_OF_IRQ;
                   ^
   drivers/clocksource/timer-of.c:191:3: note: Value stored to 'flags' is never 
read
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   drivers/clocksource/timer-imx-gpt.c:263:2: warning: Value stored to 'tstat' 
is never read [clang-analyzer-deadcode.DeadStores]
           tstat = readl_relaxed(imxtm->base + imxtm->gpt->reg_tstat);
           ^
   drivers/clocksource/timer-imx-gpt.c:263:2: note: Value stored to 'tstat' is 
never read
   Suppressed 2 warnings (1 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   sound/soc/codecs/cs42l42.c:605:8: warning: Excessive padding in 'struct 
cs42l42_pll_params' (5 padding bytes, where 1 is optimal). 
   Optimal fields order: 
   sclk, 
   pll_div_frac, 
   mclk_int, 
   mclk_src_sel, 
   sclk_prediv, 
   pll_div_int, 
   pll_mode, 
   pll_divout, 
   pll_cal_ratio, 
   n, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct cs42l42_pll_params {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/cs42l42.c:605:8: note: Excessive padding in 'struct 
cs42l42_pll_params' (5 padding bytes, where 1 is optimal). Optimal fields 
order: sclk, pll_div_frac, mclk_int, mclk_src_sel, sclk_prediv, pll_div_int, 
pll_mode, pll_divout, pll_cal_ratio, n, consider reordering the fields or 
adding explicit padding members
   struct cs42l42_pll_params {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   drivers/hwtracing/coresight/coresight-cti-core.c:447:2: warning: Value 
stored to 'reg_value' is never read [clang-analyzer-deadcode.DeadStores]
           reg_value = config->ctiappset;
           ^           ~~~~~~~~~~~~~~~~~
   drivers/hwtracing/coresight/coresight-cti-core.c:447:2: note: Value stored 
to 'reg_value' is never read
           reg_value = config->ctiappset;
           ^           ~~~~~~~~~~~~~~~~~
   7 warnings generated.
   fs/ext4/super.c:5543:3: warning: Value stored to 'ret' is never read 
[clang-analyzer-deadcode.DeadStores]
                   ret = -ENOMEM;
                   ^     ~~~~~~~
   fs/ext4/super.c:5543:3: note: Value stored to 'ret' is never read
                   ret = -ENOMEM;
                   ^     ~~~~~~~
   Suppressed 6 warnings (2 in non-user code, 4 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
>> drivers/clk/imx/clk-pll14xx.c:166:2: warning: Value stored to 'pll_div_ctl1' 
>> is never read [clang-analyzer-deadcode.DeadStores]
           pll_div_ctl1 = readl_relaxed(pll->base + DIV_CTL1);
           ^
   drivers/clk/imx/clk-pll14xx.c:166:2: note: Value stored to 'pll_div_ctl1' is 
never read
   1 warning generated.
   drivers/mmc/core/sdio_cis.c:63:3: warning: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                   strcpy(string, buf);
                   ^~~~~~
   drivers/mmc/core/sdio_cis.c:63:3: note: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119
                   strcpy(string, buf);
                   ^~~~~~
   1 warning generated.
   drivers/mmc/core/regulator.c:181:17: warning: Value stored to 'dev' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = mmc_dev(mmc);
                          ^~~
   drivers/mmc/core/regulator.c:181:17: note: Value stored to 'dev' during its 
initialization is never read
           struct device *dev = mmc_dev(mmc);
                          ^~~
   1 warning generated.
   drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c:366:3: warning: Value 
stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
                   err = PTR_ERR(kingdisplay->enable_gpio);
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c:366:3: note: Value stored 
to 'err' is never read
                   err = PTR_ERR(kingdisplay->enable_gpio);
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c:59:17: warning: Value 
stored to 'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c:59:17: note: Value stored 
to 'dev' during its initialization is never read
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   1 warning generated.
   sound/soc/codecs/rt700.c:127:3: warning: Value stored to 'ret' is never read 
[clang-analyzer-deadcode.DeadStores]
                   ret = regmap_read(rt700->regmap, reg, &jack_status);
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/rt700.c:127:3: note: Value stored to 'ret' is never read
                   ret = regmap_read(rt700->regmap, reg, &jack_status);
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   sound/soc/codecs/rt711.c:95:2: warning: Value stored to 'dev' is never read 
[clang-analyzer-deadcode.DeadStores]
           dev = regmap_get_device(regmap);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/rt711.c:95:2: note: Value stored to 'dev' is never read
           dev = regmap_get_device(regmap);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~
   3 warnings generated.
   drivers/fpga/dfl-afu-dma-region.c:38:17: warning: Value stored to 'dev' 
during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &pdata->dev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/fpga/dfl-afu-dma-region.c:38:17: note: Value stored to 'dev' during 
its initialization is never read
           struct device *dev = &pdata->dev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/fpga/dfl-afu-dma-region.c:86:17: warning: Value stored to 'dev' 
during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &pdata->dev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/fpga/dfl-afu-dma-region.c:86:17: note: Value stored to 'dev' during 
its initialization is never read
           struct device *dev = &pdata->dev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/fpga/dfl-afu-dma-region.c:249:17: warning: Value stored to 'dev' 
during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &pdata->dev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/fpga/dfl-afu-dma-region.c:249:17: note: Value stored to 'dev' during 
its initialization is never read
           struct device *dev = &pdata->dev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   2 warnings generated.
   drivers/video/fbdev/core/fbcvt.c:261:4: warning: Value stored to 'cnt' is 
never read [clang-analyzer-deadcode.DeadStores]
                           cnt -= read;
                           ^      ~~~~
   drivers/video/fbdev/core/fbcvt.c:261:4: note: Value stored to 'cnt' is never 
read
                           cnt -= read;
                           ^      ~~~~
   drivers/video/fbdev/core/fbcvt.c:262:4: warning: Value stored to 'offset' is 
never read [clang-analyzer-deadcode.DeadStores]
                           offset += read;
                           ^         ~~~~
   drivers/video/fbdev/core/fbcvt.c:262:4: note: Value stored to 'offset' is 
never read
                           offset += read;
                           ^         ~~~~
   1 warning generated.
   sound/soc/codecs/ak4642.c:410:2: warning: Value stored to 'data' is never 
read [clang-analyzer-deadcode.DeadStores]
           data = 0;
           ^      ~
   sound/soc/codecs/ak4642.c:410:2: note: Value stored to 'data' is never read
           data = 0;
           ^      ~
   1 warning generated.
   sound/soc/codecs/alc5623.c:700:23: warning: Value stored to 'alc5623' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct alc5623_priv *alc5623 = 
snd_soc_component_get_drvdata(component);
                                ^~~~~~~   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/alc5623.c:700:23: note: Value stored to 'alc5623' during 
its initialization is never read
           struct alc5623_priv *alc5623 = 
snd_soc_component_get_drvdata(component);
                                ^~~~~~~   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   sound/soc/codecs/cs35l33.c:1161:3: warning: Value stored to 'pdata' is never 
read [clang-analyzer-deadcode.DeadStores]
                   pdata = &cs35l33->pdata;
                   ^       ~~~~~~~~~~~~~~~
   sound/soc/codecs/cs35l33.c:1161:3: note: Value stored to 'pdata' is never 
read
                   pdata = &cs35l33->pdata;
                   ^       ~~~~~~~~~~~~~~~
   1 warning generated.
   sound/soc/codecs/cs35l34.c:260:3: warning: Value stored to 'ret' is never 
read [clang-analyzer-deadcode.DeadStores]

vim +/pll_div_ctl1 +166 drivers/clk/imx/clk-pll14xx.c

b09c68dc57c9d4 Sascha Hauer 2022-03-04  128  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  129  static void 
imx_pll14xx_calc_settings(struct clk_pll14xx *pll, unsigned long rate,
b09c68dc57c9d4 Sascha Hauer 2022-03-04  130                                   
unsigned long prate, struct imx_pll14xx_rate_table *t)
b09c68dc57c9d4 Sascha Hauer 2022-03-04  131  {
b09c68dc57c9d4 Sascha Hauer 2022-03-04  132     u32 pll_div_ctl0, pll_div_ctl1;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  133     int mdiv, pdiv, sdiv, kdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  134     long fvco, rate_min, rate_max, 
dist, best = LONG_MAX;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  135     const struct 
imx_pll14xx_rate_table *tt;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  136  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  137     /*
b09c68dc57c9d4 Sascha Hauer 2022-03-04  138      * Fractional PLL constrains:
b09c68dc57c9d4 Sascha Hauer 2022-03-04  139      *
b09c68dc57c9d4 Sascha Hauer 2022-03-04  140      * a) 6MHz <= prate <= 25MHz
b09c68dc57c9d4 Sascha Hauer 2022-03-04  141      * b) 1 <= p <= 63 (1 <= p <= 4 
prate = 24MHz)
b09c68dc57c9d4 Sascha Hauer 2022-03-04  142      * c) 64 <= m <= 1023
b09c68dc57c9d4 Sascha Hauer 2022-03-04  143      * d) 0 <= s <= 6
b09c68dc57c9d4 Sascha Hauer 2022-03-04  144      * e) -32768 <= k <= 32767
b09c68dc57c9d4 Sascha Hauer 2022-03-04  145      *
b09c68dc57c9d4 Sascha Hauer 2022-03-04  146      * fvco = (m * 65536 + k) * 
prate / (p * 65536)
b09c68dc57c9d4 Sascha Hauer 2022-03-04  147      */
b09c68dc57c9d4 Sascha Hauer 2022-03-04  148  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  149     /* First try if we can get the 
desired rate from one of the static entries */
b09c68dc57c9d4 Sascha Hauer 2022-03-04  150     tt = imx_get_pll_settings(pll, 
rate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  151     if (tt) {
b09c68dc57c9d4 Sascha Hauer 2022-03-04  152             pr_debug("%s: in=%ld, 
want=%ld, Using PLL setting from table\n",
b09c68dc57c9d4 Sascha Hauer 2022-03-04  153                      
clk_hw_get_name(&pll->hw), prate, rate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  154             t->rate = tt->rate;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  155             t->mdiv = tt->mdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  156             t->pdiv = tt->pdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  157             t->sdiv = tt->sdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  158             t->kdiv = tt->kdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  159             return;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  160     }
b09c68dc57c9d4 Sascha Hauer 2022-03-04  161  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  162     pll_div_ctl0 = 
readl_relaxed(pll->base + DIV_CTL0);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  163     mdiv = FIELD_GET(MDIV_MASK, 
pll_div_ctl0);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  164     pdiv = FIELD_GET(PDIV_MASK, 
pll_div_ctl0);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  165     sdiv = FIELD_GET(SDIV_MASK, 
pll_div_ctl0);
b09c68dc57c9d4 Sascha Hauer 2022-03-04 @166     pll_div_ctl1 = 
readl_relaxed(pll->base + DIV_CTL1);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  167  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  168     /* Then see if we can get the 
desired rate by only adjusting kdiv (glitch free) */
b09c68dc57c9d4 Sascha Hauer 2022-03-04  169     rate_min = 
pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, KDIV_MIN, prate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  170     rate_max = 
pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, KDIV_MAX, prate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  171  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  172     if (rate >= rate_min && rate <= 
rate_max) {
b09c68dc57c9d4 Sascha Hauer 2022-03-04  173             kdiv = 
pll1443x_calc_kdiv(mdiv, pdiv, sdiv, rate, prate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  174             pr_debug("%s: in=%ld, 
want=%ld Only adjust kdiv %ld -> %d\n",
b09c68dc57c9d4 Sascha Hauer 2022-03-04  175                      
clk_hw_get_name(&pll->hw), prate, rate,
b09c68dc57c9d4 Sascha Hauer 2022-03-04  176                      
FIELD_GET(KDIV_MASK, pll_div_ctl1), kdiv);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  177             fvco = 
pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, kdiv, prate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  178             t->rate = (unsigned 
int)fvco;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  179             t->mdiv = mdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  180             t->pdiv = pdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  181             t->sdiv = sdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  182             t->kdiv = kdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  183             return;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  184     }
b09c68dc57c9d4 Sascha Hauer 2022-03-04  185  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  186     /* Finally calculate best 
values */
b09c68dc57c9d4 Sascha Hauer 2022-03-04  187     for (pdiv = 1; pdiv <= 7; 
pdiv++) {
b09c68dc57c9d4 Sascha Hauer 2022-03-04  188             for (sdiv = 0; sdiv <= 
6; sdiv++) {
b09c68dc57c9d4 Sascha Hauer 2022-03-04  189                     /* calc mdiv = 
round(rate * pdiv * 2^sdiv) / prate) */
b09c68dc57c9d4 Sascha Hauer 2022-03-04  190                     mdiv = 
DIV_ROUND_CLOSEST(rate * (pdiv << sdiv), prate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  191                     mdiv = 
clamp(mdiv, 64, 1023);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  192  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  193                     kdiv = 
pll1443x_calc_kdiv(mdiv, pdiv, sdiv, rate, prate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  194                     fvco = 
pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, kdiv, prate);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  195  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  196                     /* best match */
b09c68dc57c9d4 Sascha Hauer 2022-03-04  197                     dist = 
abs((long)rate - (long)fvco);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  198                     if (dist < 
best) {
b09c68dc57c9d4 Sascha Hauer 2022-03-04  199                             best = 
dist;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  200                             t->rate 
= (unsigned int)fvco;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  201                             t->mdiv 
= mdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  202                             t->pdiv 
= pdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  203                             t->sdiv 
= sdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  204                             t->kdiv 
= kdiv;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  205  
b09c68dc57c9d4 Sascha Hauer 2022-03-04  206                             if 
(!dist)
b09c68dc57c9d4 Sascha Hauer 2022-03-04  207                                     
goto found;
b09c68dc57c9d4 Sascha Hauer 2022-03-04  208                     }
b09c68dc57c9d4 Sascha Hauer 2022-03-04  209             }
b09c68dc57c9d4 Sascha Hauer 2022-03-04  210     }
b09c68dc57c9d4 Sascha Hauer 2022-03-04  211  found:
b09c68dc57c9d4 Sascha Hauer 2022-03-04  212     pr_debug("%s: in=%ld, want=%ld 
got=%d (pdiv=%d sdiv=%d mdiv=%d kdiv=%d)\n",
b09c68dc57c9d4 Sascha Hauer 2022-03-04  213              
clk_hw_get_name(&pll->hw), prate, rate, t->rate, t->pdiv, t->sdiv,
b09c68dc57c9d4 Sascha Hauer 2022-03-04  214              t->mdiv, t->kdiv);
b09c68dc57c9d4 Sascha Hauer 2022-03-04  215  }
b09c68dc57c9d4 Sascha Hauer 2022-03-04  216  

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

Reply via email to