Hi Alim,

I love your patch! Perhaps something to improve:

[auto build test WARNING on robh/for-next]
[also build test WARNING on soc/for-next linus/master v5.8-rc2 next-20200626]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Alim-Akhtar/dt-bindings-phy-Document-Samsung-UFS-PHY-bindings/20200625-081802
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: arm64-randconfig-r014-20200628 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 
8cd117c24f48428e01f88cf18480e5af7eb20c0c)
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 arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/phy/samsung/phy-samsung-ufs.c:47:5: warning: no previous prototype 
>> for function 'samsung_ufs_phy_wait_for_lock_acq' [-Wmissing-prototypes]
   int samsung_ufs_phy_wait_for_lock_acq(struct phy *phy)
       ^
   drivers/phy/samsung/phy-samsung-ufs.c:47:1: note: declare 'static' if the 
function is not intended to be used outside of this translation unit
   int samsung_ufs_phy_wait_for_lock_acq(struct phy *phy)
   ^
   static 
>> drivers/phy/samsung/phy-samsung-ufs.c:77:5: warning: no previous prototype 
>> for function 'samsung_ufs_phy_calibrate' [-Wmissing-prototypes]
   int samsung_ufs_phy_calibrate(struct phy *phy)
       ^
   drivers/phy/samsung/phy-samsung-ufs.c:77:1: note: declare 'static' if the 
function is not intended to be used outside of this translation unit
   int samsung_ufs_phy_calibrate(struct phy *phy)
   ^
   static 
   2 warnings generated.

vim +/samsung_ufs_phy_wait_for_lock_acq +47 
drivers/phy/samsung/phy-samsung-ufs.c

    46  
  > 47  int samsung_ufs_phy_wait_for_lock_acq(struct phy *phy)
    48  {
    49          struct samsung_ufs_phy *ufs_phy = get_samsung_ufs_phy(phy);
    50          const unsigned int timeout_us = 100000;
    51          const unsigned int sleep_us = 10;
    52          u32 val;
    53          int err;
    54  
    55          err = readl_poll_timeout(
    56                          ufs_phy->reg_pma + 
PHY_APB_ADDR(PHY_PLL_LOCK_STATUS),
    57                          val, (val & PHY_PLL_LOCK_BIT), sleep_us, 
timeout_us);
    58          if (err) {
    59                  dev_err(ufs_phy->dev,
    60                          "failed to get phy pll lock acquisition %d\n", 
err);
    61                  goto out;
    62          }
    63  
    64          err = readl_poll_timeout(
    65                          ufs_phy->reg_pma + 
PHY_APB_ADDR(PHY_CDR_LOCK_STATUS),
    66                          val, (val & PHY_CDR_LOCK_BIT), sleep_us, 
timeout_us);
    67          if (err) {
    68                  dev_err(ufs_phy->dev,
    69                          "failed to get phy cdr lock acquisition %d\n", 
err);
    70                  goto out;
    71          }
    72  
    73  out:
    74          return err;
    75  }
    76  
  > 77  int samsung_ufs_phy_calibrate(struct phy *phy)
    78  {
    79          struct samsung_ufs_phy *ufs_phy = get_samsung_ufs_phy(phy);
    80          struct samsung_ufs_phy_cfg **cfgs = ufs_phy->cfg;
    81          const struct samsung_ufs_phy_cfg *cfg;
    82          int i;
    83          int err = 0;
    84  
    85          if (unlikely(ufs_phy->ufs_phy_state < CFG_PRE_INIT ||
    86                       ufs_phy->ufs_phy_state >= CFG_TAG_MAX)) {
    87                  dev_err(ufs_phy->dev, "invalid phy config index %d\n",
    88                                                          
ufs_phy->ufs_phy_state);
    89                  return -EINVAL;
    90          }
    91  
    92          if (ufs_phy->is_pre_init)
    93                  ufs_phy->is_pre_init = false;
    94          if (ufs_phy->is_post_init) {
    95                  ufs_phy->is_post_init = false;
    96                  ufs_phy->ufs_phy_state = CFG_POST_INIT;
    97          }
    98          if (ufs_phy->is_pre_pmc) {
    99                  ufs_phy->is_pre_pmc = false;
   100                  ufs_phy->ufs_phy_state = CFG_PRE_PWR_HS;
   101          }
   102          if (ufs_phy->is_post_pmc) {
   103                  ufs_phy->is_post_pmc = false;
   104                  ufs_phy->ufs_phy_state = CFG_POST_PWR_HS;
   105          }
   106  
   107          switch (ufs_phy->ufs_phy_state) {
   108          case CFG_PRE_INIT:
   109                  ufs_phy->is_post_init = true;
   110                  break;
   111          case CFG_POST_INIT:
   112                  ufs_phy->is_pre_pmc = true;
   113                  break;
   114          case CFG_PRE_PWR_HS:
   115                  ufs_phy->is_post_pmc = true;
   116                  break;
   117          case CFG_POST_PWR_HS:
   118                  break;
   119          default:
   120                  dev_err(ufs_phy->dev, "wrong state for phy 
calibration\n");
   121          }
   122  
   123          cfg = cfgs[ufs_phy->ufs_phy_state];
   124          if (!cfg)
   125                  goto out;
   126  
   127          for_each_phy_cfg(cfg) {
   128                  for_each_phy_lane(ufs_phy, i) {
   129                          samsung_ufs_phy_config(ufs_phy, cfg, i);
   130                  }
   131          }
   132  
   133          if (ufs_phy->ufs_phy_state == CFG_POST_PWR_HS)
   134                  err = samsung_ufs_phy_wait_for_lock_acq(phy);
   135  out:
   136          return err;
   137  }
   138  

---
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