tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   1ce42845f987e92eabfc6e026d44d826c25c74a5
commit: 2174344765f472895c076d703c9cdc58215e1393 PM / OPP: Introduce 
dev_pm_opp_get_max_transition_latency()
date:   1 year ago
config: x86_64-randconfig-x008-201707 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout 2174344765f472895c076d703c9cdc58215e1393
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/base/power/opp/core.c:124:15: error: redefinition of 
'dev_pm_opp_get_voltage'
    unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp)
                  ^~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:68:29: note: previous definition of 
'dev_pm_opp_get_voltage' was here
    static inline unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp)
                                ^~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:156:15: error: redefinition of 
'dev_pm_opp_get_freq'
    unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp)
                  ^~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:73:29: note: previous definition of 
'dev_pm_opp_get_freq' was here
    static inline unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp)
                                ^~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:191:6: error: redefinition of 
'dev_pm_opp_is_turbo'
    bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp)
         ^~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:78:20: note: previous definition of 
'dev_pm_opp_is_turbo' was here
    static inline bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp)
                       ^~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:215:15: error: redefinition of 
'dev_pm_opp_get_max_clock_latency'
    unsigned long dev_pm_opp_get_max_clock_latency(struct device *dev)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:88:29: note: previous definition of 
'dev_pm_opp_get_max_clock_latency' was here
    static inline unsigned long dev_pm_opp_get_max_clock_latency(struct device 
*dev)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:241:15: error: redefinition of 
'dev_pm_opp_get_max_volt_latency'
    unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:93:29: note: previous definition of 
'dev_pm_opp_get_max_volt_latency' was here
    static inline unsigned long dev_pm_opp_get_max_volt_latency(struct device 
*dev)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/base/power/opp/core.c:302:15: error: redefinition of 
>> 'dev_pm_opp_get_max_transition_latency'
    unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:98:29: note: previous definition of 
'dev_pm_opp_get_max_transition_latency' was here
    static inline unsigned long dev_pm_opp_get_max_transition_latency(struct 
device *dev)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:322:20: error: redefinition of 
'dev_pm_opp_get_suspend_opp'
    struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device *dev)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:103:34: note: previous definition of 
'dev_pm_opp_get_suspend_opp' was here
    static inline struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device 
*dev)
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:346:5: error: redefinition of 
'dev_pm_opp_get_opp_count'
    int dev_pm_opp_get_opp_count(struct device *dev)
        ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:83:19: note: previous definition of 
'dev_pm_opp_get_opp_count' was here
    static inline int dev_pm_opp_get_opp_count(struct device *dev)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:399:20: error: redefinition of 
'dev_pm_opp_find_freq_exact'
    struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:108:34: note: previous definition of 
'dev_pm_opp_find_freq_exact' was here
    static inline struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device 
*dev,
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:448:20: error: redefinition of 
'dev_pm_opp_find_freq_ceil'
    struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:120:34: note: previous definition of 
'dev_pm_opp_find_freq_ceil' was here
    static inline struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device 
*dev,
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:498:20: error: redefinition of 
'dev_pm_opp_find_freq_floor'
    struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:114:34: note: previous definition of 
'dev_pm_opp_find_freq_floor' was here
    static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device 
*dev,
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:713:6: error: redefinition of 
'dev_pm_opp_remove'
    void dev_pm_opp_remove(struct device *dev, unsigned long freq)
         ^~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:132:20: note: previous definition of 
'dev_pm_opp_remove' was here
    static inline void dev_pm_opp_remove(struct device *dev, unsigned long freq)
                       ^~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:989:5: error: redefinition of 
'dev_pm_opp_set_supported_hw'
    int dev_pm_opp_set_supported_hw(struct device *dev, const u32 *versions,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:152:19: note: previous definition of 
'dev_pm_opp_set_supported_hw' was here
    static inline int dev_pm_opp_set_supported_hw(struct device *dev,
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1049:6: error: redefinition of 
'dev_pm_opp_put_supported_hw'
    void dev_pm_opp_put_supported_hw(struct device *dev)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:159:20: note: previous definition of 
'dev_pm_opp_put_supported_hw' was here
    static inline void dev_pm_opp_put_supported_hw(struct device *dev) {}
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1100:5: error: redefinition of 
'dev_pm_opp_set_prop_name'
    int dev_pm_opp_set_prop_name(struct device *dev, const char *name)
        ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:161:19: note: previous definition of 
'dev_pm_opp_set_prop_name' was here
    static inline int dev_pm_opp_set_prop_name(struct device *dev, const char 
*name)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1157:6: error: redefinition of 
'dev_pm_opp_put_prop_name'
    void dev_pm_opp_put_prop_name(struct device *dev)
         ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:166:20: note: previous definition of 
'dev_pm_opp_put_prop_name' was here
    static inline void dev_pm_opp_put_prop_name(struct device *dev) {}
                       ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1206:5: error: redefinition of 
'dev_pm_opp_set_regulator'
    int dev_pm_opp_set_regulator(struct device *dev, const char *name)
        ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:168:19: note: previous definition of 
'dev_pm_opp_set_regulator' was here
    static inline int dev_pm_opp_set_regulator(struct device *dev, const char 
*name)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1265:6: error: redefinition of 
'dev_pm_opp_put_regulator'
    void dev_pm_opp_put_regulator(struct device *dev)
         ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:

vim +/dev_pm_opp_get_max_transition_latency +302 drivers/base/power/opp/core.c

   235   * @dev: device for which we do this operation
   236   *
   237   * Return: This function returns the max voltage latency in nanoseconds.
   238   *
   239   * Locking: This function takes rcu_read_lock().
   240   */
 > 241  unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
   242  {
   243          struct device_opp *dev_opp;
   244          struct dev_pm_opp *opp;
   245          struct regulator *reg;
   246          unsigned long latency_ns = 0;
   247          unsigned long min_uV = ~0, max_uV = 0;
   248          int ret;
   249  
   250          rcu_read_lock();
   251  
   252          dev_opp = _find_device_opp(dev);
   253          if (IS_ERR(dev_opp)) {
   254                  rcu_read_unlock();
   255                  return 0;
   256          }
   257  
   258          reg = dev_opp->regulator;
   259          if (IS_ERR_OR_NULL(reg)) {
   260                  /* Regulator may not be required for device */
   261                  if (reg)
   262                          dev_err(dev, "%s: Invalid regulator (%ld)\n", 
__func__,
   263                                  PTR_ERR(reg));
   264                  rcu_read_unlock();
   265                  return 0;
   266          }
   267  
   268          list_for_each_entry_rcu(opp, &dev_opp->opp_list, node) {
   269                  if (!opp->available)
   270                          continue;
   271  
   272                  if (opp->u_volt_min < min_uV)
   273                          min_uV = opp->u_volt_min;
   274                  if (opp->u_volt_max > max_uV)
   275                          max_uV = opp->u_volt_max;
   276          }
   277  
   278          rcu_read_unlock();
   279  
   280          /*
   281           * The caller needs to ensure that dev_opp (and hence the 
regulator)
   282           * isn't freed, while we are executing this routine.
   283           */
   284          ret = regulator_set_voltage_time(reg, min_uV, max_uV);
   285          if (ret > 0)
   286                  latency_ns = ret * 1000;
   287  
   288          return latency_ns;
   289  }
   290  EXPORT_SYMBOL_GPL(dev_pm_opp_get_max_volt_latency);
   291  
   292  /**
   293   * dev_pm_opp_get_max_transition_latency() - Get max transition latency 
in
   294   *                                           nanoseconds
   295   * @dev: device for which we do this operation
   296   *
   297   * Return: This function returns the max transition latency, in 
nanoseconds, to
   298   * switch from one OPP to other.
   299   *
   300   * Locking: This function takes rcu_read_lock().
   301   */
 > 302  unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev)
   303  {
   304          return dev_pm_opp_get_max_volt_latency(dev) +
   305                  dev_pm_opp_get_max_clock_latency(dev);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to