Hi Charles,

[auto build test ERROR on gpio/for-next]
[also build test ERROR on v4.11-rc5 next-20170407]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Charles-Keepax/mfd-arizona-Add-GPIO-maintain-state-flag/20170408-111119
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git 
for-next
config: x86_64-randconfig-x003-201714 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   drivers//gpio/gpio-arizona.c: In function 'arizona_gpio_direction_in':
   drivers//gpio/gpio-arizona.c:44:3: error: implicit declaration of function 
'pm_runtime_mark_last_busy' [-Werror=implicit-function-declaration]
      pm_runtime_mark_last_busy(chip->parent);
      ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers//gpio/gpio-arizona.c:45:3: error: implicit declaration of function 
'pm_runtime_put_autosuspend' [-Werror=implicit-function-declaration]
      pm_runtime_put_autosuspend(chip->parent);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers//gpio/gpio-arizona.c: In function 'arizona_gpio_set':
   drivers//gpio/gpio-arizona.c:93:9: error: implicit declaration of function 
'pm_runtime_get_sync' [-Werror=implicit-function-declaration]
      ret = pm_runtime_get_sync(chip->parent);
            ^~~~~~~~~~~~~~~~~~~
   drivers//gpio/gpio-arizona.c:96:11: warning: 'return' with a value, in 
function returning void
       return ret;
              ^~~
   drivers//gpio/gpio-arizona.c:82:13: note: declared here
    static void arizona_gpio_set(struct gpio_chip *chip, unsigned offset, int 
value)
                ^~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:4:0,
                    from include/linux/kernel.h:6,
                    from drivers//gpio/gpio-arizona.c:15:
   drivers//gpio/gpio-arizona.c: In function 'arizona_gpio_of_xlate':
>> drivers//gpio/gpio-arizona.c:115:33: error: 'struct gpio_chip' has no member 
>> named 'of_gpio_n_cells'
     if (gpiospec->args_count < chip->of_gpio_n_cells)
                                    ^
   include/linux/compiler.h:160:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> drivers//gpio/gpio-arizona.c:115:2: note: in expansion of macro 'if'
     if (gpiospec->args_count < chip->of_gpio_n_cells)
     ^~
>> drivers//gpio/gpio-arizona.c:115:33: error: 'struct gpio_chip' has no member 
>> named 'of_gpio_n_cells'
     if (gpiospec->args_count < chip->of_gpio_n_cells)
                                    ^
   include/linux/compiler.h:160:42: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                             ^~~~
>> drivers//gpio/gpio-arizona.c:115:2: note: in expansion of macro 'if'
     if (gpiospec->args_count < chip->of_gpio_n_cells)
     ^~
>> drivers//gpio/gpio-arizona.c:115:33: error: 'struct gpio_chip' has no member 
>> named 'of_gpio_n_cells'
     if (gpiospec->args_count < chip->of_gpio_n_cells)
                                    ^
   include/linux/compiler.h:171:16: note: in definition of macro '__trace_if'
      ______r = !!(cond);     \
                   ^~~~
>> drivers//gpio/gpio-arizona.c:115:2: note: in expansion of macro 'if'
     if (gpiospec->args_count < chip->of_gpio_n_cells)
     ^~
   drivers//gpio/gpio-arizona.c: At top level:
>> drivers//gpio/gpio-arizona.c:138:2: error: unknown field 'of_xlate' 
>> specified in initializer
     .of_xlate  = arizona_gpio_of_xlate,
     ^
>> drivers//gpio/gpio-arizona.c:138:15: error: initialization from incompatible 
>> pointer type [-Werror=incompatible-pointer-types]
     .of_xlate  = arizona_gpio_of_xlate,
                  ^~~~~~~~~~~~~~~~~~~~~
   drivers//gpio/gpio-arizona.c:138:15: note: (near initialization for 
'template_chip.read_reg')
>> drivers//gpio/gpio-arizona.c:139:2: error: unknown field 'of_gpio_n_cells' 
>> specified in initializer
     .of_gpio_n_cells = 2,
     ^
>> drivers//gpio/gpio-arizona.c:139:21: warning: initialization makes pointer 
>> from integer without a cast [-Wint-conversion]
     .of_gpio_n_cells = 2,
                        ^
   drivers//gpio/gpio-arizona.c:139:21: note: (near initialization for 
'template_chip.write_reg')
   drivers//gpio/gpio-arizona.c: In function 'arizona_gpio_probe':
   drivers//gpio/gpio-arizona.c:185:2: error: implicit declaration of function 
'pm_runtime_enable' [-Werror=implicit-function-declaration]
     pm_runtime_enable(&pdev->dev);
     ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +115 drivers//gpio/gpio-arizona.c

     9   *  under  the terms of  the GNU General  Public License as published 
by the
    10   *  Free Software Foundation;  either version 2 of the  License, or (at 
your
    11   *  option) any later version.
    12   *
    13   */
    14  
  > 15  #include <linux/kernel.h>
    16  #include <linux/slab.h>
    17  #include <linux/module.h>
    18  #include <linux/gpio.h>
    19  #include <linux/platform_device.h>
    20  #include <linux/seq_file.h>
    21  
    22  #include <linux/mfd/arizona/core.h>
    23  #include <linux/mfd/arizona/pdata.h>
    24  #include <linux/mfd/arizona/registers.h>
    25  
    26  #define ARIZONA_GP_STATE_OUTPUT   0x00000001
    27  
    28  struct arizona_gpio {
    29          struct arizona *arizona;
    30          struct gpio_chip gpio_chip;
    31          int status[ARIZONA_MAX_GPIO];
    32  };
    33  
    34  static int arizona_gpio_direction_in(struct gpio_chip *chip, unsigned 
offset)
    35  {
    36          struct arizona_gpio *arizona_gpio = gpiochip_get_data(chip);
    37          struct arizona *arizona = arizona_gpio->arizona;
    38          int status = arizona_gpio->status[offset];
    39  
    40          status &= (ARIZONA_GP_MAINTAIN | ARIZONA_GP_STATE_OUTPUT);
    41          if (status == (ARIZONA_GP_MAINTAIN | ARIZONA_GP_STATE_OUTPUT)) {
    42                  arizona_gpio->status[offset] &= 
~ARIZONA_GP_STATE_OUTPUT;
    43  
    44                  pm_runtime_mark_last_busy(chip->parent);
    45                  pm_runtime_put_autosuspend(chip->parent);
    46          }
    47  
    48          return regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + 
offset,
    49                                    ARIZONA_GPN_DIR, ARIZONA_GPN_DIR);
    50  }
    51  
    52  static int arizona_gpio_get(struct gpio_chip *chip, unsigned offset)
    53  {
    54          struct arizona_gpio *arizona_gpio = gpiochip_get_data(chip);
    55          struct arizona *arizona = arizona_gpio->arizona;
    56          unsigned int val;
    57          int ret;
    58  
    59          ret = regmap_read(arizona->regmap, ARIZONA_GPIO1_CTRL + offset, 
&val);
    60          if (ret < 0)
    61                  return ret;
    62  
    63          if (val & ARIZONA_GPN_LVL)
    64                  return 1;
    65          else
    66                  return 0;
    67  }
    68  
    69  static int arizona_gpio_direction_out(struct gpio_chip *chip,
    70                                       unsigned offset, int value)
    71  {
    72          struct arizona_gpio *arizona_gpio = gpiochip_get_data(chip);
    73          struct arizona *arizona = arizona_gpio->arizona;
    74  
    75          if (value)
    76                  value = ARIZONA_GPN_LVL;
    77  
    78          return regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + 
offset,
    79                                    ARIZONA_GPN_DIR | ARIZONA_GPN_LVL, 
value);
    80  }
    81  
  > 82  static void arizona_gpio_set(struct gpio_chip *chip, unsigned offset, 
int value)
    83  {
    84          struct arizona_gpio *arizona_gpio = gpiochip_get_data(chip);
    85          struct arizona *arizona = arizona_gpio->arizona;
    86          int status = arizona_gpio->status[offset];
    87          int ret;
    88  
    89          status &= (ARIZONA_GP_MAINTAIN | ARIZONA_GP_STATE_OUTPUT);
    90          if (status == ARIZONA_GP_MAINTAIN) {
    91                  arizona_gpio->status[offset] |= ARIZONA_GP_STATE_OUTPUT;
    92  
    93                  ret = pm_runtime_get_sync(chip->parent);
    94                  if (ret < 0) {
    95                          dev_err(chip->parent, "Failed to resume: %d\n", 
ret);
    96                          return ret;
    97                  }
    98          }
    99  
   100          if (value)
   101                  value = ARIZONA_GPN_LVL;
   102  
   103          regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + offset,
   104                             ARIZONA_GPN_LVL, value);
   105  }
   106  
   107  static int arizona_gpio_of_xlate(struct gpio_chip *chip,
   108                                   const struct of_phandle_args *gpiospec,
   109                                   u32 *flags)
   110  {
   111          struct arizona_gpio *arizona_gpio = gpiochip_get_data(chip);
   112          u32 offset = gpiospec->args[0];
   113          u32 bits = gpiospec->args[1];
   114  
 > 115          if (gpiospec->args_count < chip->of_gpio_n_cells)
   116                  return -EINVAL;
   117  
   118          if (offset >= chip->ngpio)
   119                  return -EINVAL;
   120  
   121          if (flags)
   122                  *flags = bits & ~ARIZONA_GP_MAINTAIN;
   123  
   124          if (bits & ARIZONA_GP_MAINTAIN)
   125                  arizona_gpio->status[offset] |= ARIZONA_GP_MAINTAIN;
   126  
   127          return offset;
   128  }
   129  
   130  static const struct gpio_chip template_chip = {
   131          .label                  = "arizona",
   132          .owner                  = THIS_MODULE,
   133          .direction_input        = arizona_gpio_direction_in,
   134          .get                    = arizona_gpio_get,
   135          .direction_output       = arizona_gpio_direction_out,
   136          .set                    = arizona_gpio_set,
   137          .can_sleep              = true,
 > 138          .of_xlate               = arizona_gpio_of_xlate,
 > 139          .of_gpio_n_cells        = 2,
   140  };
   141  
   142  static int arizona_gpio_probe(struct platform_device *pdev)

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