Hi Dang,

kernel test robot noticed the following build errors:

[auto build test ERROR on 590b221ed4256fd6c34d3dea77aa5bd6e741bbc1]

url:    
https://github.com/intel-lab-lkp/linux/commits/Dang-Huynh-via-B4-Relay/ARM-dts-unisoc-rda8810pl-Add-label-to-GPIO-nodes/20250917-043025
base:   590b221ed4256fd6c34d3dea77aa5bd6e741bbc1
patch link:    
https://lore.kernel.org/r/20250917-rda8810pl-drivers-v1-6-9ca9184ca977%40mainlining.org
patch subject: [PATCH 06/25] rtc: Add driver for RDA Micro SoC
config: m68k-allmodconfig 
(https://download.01.org/0day-ci/archive/20250919/[email protected]/config)
compiler: m68k-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250919/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   drivers/rtc/rtc-rda.c: In function 'rda_rtc_settime':
>> drivers/rtc/rtc-rda.c:67:15: error: implicit declaration of function 
>> 'FIELD_PREP' [-Wimplicit-function-declaration]
      67 |         low = FIELD_PREP(RDA_SEC_MASK, tm->tm_sec) |
         |               ^~~~~~~~~~
   drivers/rtc/rtc-rda.c: In function 'rda_rtc_readtime':
>> drivers/rtc/rtc-rda.c:128:22: error: implicit declaration of function 
>> 'FIELD_GET' [-Wimplicit-function-declaration]
     128 |         tm->tm_sec = FIELD_GET(RDA_SEC_MASK, low);
         |                      ^~~~~~~~~


vim +/FIELD_PREP +67 drivers/rtc/rtc-rda.c

    50  
    51  static int rda_rtc_settime(struct device *dev, struct rtc_time *tm)
    52  {
    53          struct rda_rtc *rtc = dev_get_drvdata(dev);
    54          u32 high, low;
    55          int ret;
    56  
    57          ret = rtc_valid_tm(tm);
    58          if (ret < 0)
    59                  return ret;
    60  
    61          /*
    62           * The number of years since 1900 in kernel,
    63           * but it is defined since 2000 by HW.
    64           * The number of mons' range is from 0 to 11 in kernel,
    65           * but it is defined from 1 to 12 by HW.
    66           */
  > 67          low = FIELD_PREP(RDA_SEC_MASK, tm->tm_sec) |
    68                  FIELD_PREP(RDA_MIN_MASK, tm->tm_min) |
    69                  FIELD_PREP(RDA_HRS_MASK, tm->tm_hour);
    70  
    71          high = FIELD_PREP(RDA_MDAY_MASK, tm->tm_mday) |
    72                  FIELD_PREP(RDA_MON_MASK, tm->tm_mon + 1) |
    73                  FIELD_PREP(RDA_YEAR_MASK, tm->tm_year - 100) |
    74                  FIELD_PREP(RDA_WDAY_MASK, tm->tm_wday);
    75  
    76          ret = regmap_write(rtc->regmap, RDA_RTC_CAL_LOAD_LOW_REG, low);
    77          if (ret < 0) {
    78                  dev_err(dev, "Failed to update RTC low register: %d\n", 
ret);
    79                  return ret;
    80          }
    81  
    82          ret = regmap_write(rtc->regmap, RDA_RTC_CAL_LOAD_HIGH_REG, 
high);
    83          if (ret < 0) {
    84                  dev_err(dev, "Failed to update RTC low register: %d\n", 
ret);
    85                  return ret;
    86          }
    87  
    88          ret = regmap_update_bits(rtc->regmap, RDA_RTC_CMD_REG, 
RDA_RTC_CMD_CAL_LOAD, 1);
    89          if (ret < 0) {
    90                  dev_err(dev, "Failed to update RTC cal load register: 
%d\n", ret);
    91                  return ret;
    92          }
    93  
    94          return 0;
    95  }
    96  
    97  static int rda_rtc_readtime(struct device *dev, struct rtc_time *tm)
    98  {
    99          struct rda_rtc *rtc = dev_get_drvdata(dev);
   100          unsigned int high, low;
   101          int ret;
   102  
   103          /*
   104           * Check if RTC data is valid.
   105           *
   106           * When this bit is set, it means the data in the RTC is invalid
   107           * or not configured.
   108           */
   109          ret = regmap_test_bits(rtc->regmap, RDA_RTC_STA_REG, 
RDA_RTC_STA_NOT_PROG);
   110          if (ret < 0) {
   111                  dev_err(dev, "Failed to read RTC status: %d\n", ret);
   112                  return ret;
   113          } else if (ret > 0)
   114                  return -EINVAL;
   115  
   116          ret = regmap_read(rtc->regmap, RDA_RTC_CUR_LOAD_HIGH_REG, 
&high);
   117          if (ret) {
   118                  dev_err(dev, "Failed to read RTC high reg: %d\n", ret);
   119                  return ret;
   120          }
   121  
   122          ret = regmap_read(rtc->regmap, RDA_RTC_CUR_LOAD_LOW_REG, &low);
   123          if (ret) {
   124                  dev_err(dev, "Failed to read RTC low reg: %d\n", ret);
   125                  return ret;
   126          }
   127  
 > 128          tm->tm_sec = FIELD_GET(RDA_SEC_MASK, low);
   129          tm->tm_min = FIELD_GET(RDA_MIN_MASK, low);
   130          tm->tm_hour = FIELD_GET(RDA_HRS_MASK, low);
   131          tm->tm_mday = FIELD_GET(RDA_MDAY_MASK, high);
   132          tm->tm_mon = FIELD_GET(RDA_MON_MASK, high);
   133          tm->tm_year = FIELD_GET(RDA_YEAR_MASK, high);
   134          tm->tm_wday = FIELD_GET(RDA_WDAY_MASK, high);
   135  
   136          /*
   137           * The number of years since 1900 in kernel,
   138           * but it is defined since 2000 by HW.
   139           */
   140          tm->tm_year += 100;
   141          /*
   142           * The number of mons' range is from 0 to 11 in kernel,
   143           * but it is defined from 1 to 12 by HW.
   144           */
   145          tm->tm_mon -= 1;
   146  
   147          return 0;
   148  }
   149  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to