Hi,

[auto build test ERROR on ljones-mfd/for-mfd-next]
[also build test ERROR on v4.7-rc2 next-20160609]
[cannot apply to input/next]
[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/John-Stultz/Hi655x-powerkey-support-for-HiKey-v3/20160610-133804
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

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

   In file included from drivers/input/misc/hisi_powerkey.c:21:0:
>> drivers/input/misc/hisi_powerkey.c:135:25: error: 'hi65xx_powerkey_of_match' 
>> undeclared here (not in a function)
    MODULE_DEVICE_TABLE(of, hi65xx_powerkey_of_match);
                            ^
   include/linux/module.h:223:21: note: in definition of macro 
'MODULE_DEVICE_TABLE'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                        ^~~~
>> include/linux/module.h:223:27: error: 
>> '__mod_of__hi65xx_powerkey_of_match_device_table' aliased to undefined 
>> symbol 'hi65xx_powerkey_of_match'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                              ^
>> drivers/input/misc/hisi_powerkey.c:135:1: note: in expansion of macro 
>> 'MODULE_DEVICE_TABLE'
    MODULE_DEVICE_TABLE(of, hi65xx_powerkey_of_match);
    ^~~~~~~~~~~~~~~~~~~

vim +/hi65xx_powerkey_of_match +135 drivers/input/misc/hisi_powerkey.c

    15   */
    16  
    17  #include <linux/platform_device.h>
    18  #include <linux/interrupt.h>
    19  #include <linux/reboot.h>
    20  #include <linux/kernel.h>
  > 21  #include <linux/module.h>
    22  #include <linux/of_irq.h>
    23  #include <linux/input.h>
    24  #include <linux/slab.h>
    25  
    26  /* the held interrupt will trigger after 4 seconds */
    27  #define MAX_HELD_TIME   (4 * MSEC_PER_SEC)
    28  
    29  
    30  enum id_action { ID_PRESSED, ID_RELEASED, ID_HELD, ID_LAST };
    31  const char *const irq_names[ID_LAST] = {"down", "up", "hold 4s"};
    32  
    33  struct hi65xx_priv {
    34          struct input_dev *input;
    35  };
    36  
    37  static irqreturn_t hi65xx_power_press_isr(int irq, void *q)
    38  {
    39          struct hi65xx_priv *p = q;
    40  
    41          pm_wakeup_event(p->input->dev.parent, MAX_HELD_TIME);
    42          input_report_key(p->input, KEY_POWER, 1);
    43          input_sync(p->input);
    44  
    45          return IRQ_HANDLED;
    46  }
    47  
    48  static irqreturn_t hi65xx_power_release_isr(int irq, void *q)
    49  {
    50          struct hi65xx_priv *p = q;
    51  
    52          pm_wakeup_event(p->input->dev.parent, MAX_HELD_TIME);
    53          input_report_key(p->input, KEY_POWER, 0);
    54          input_sync(p->input);
    55  
    56          return IRQ_HANDLED;
    57  }
    58  
    59  static irqreturn_t hi65xx_restart_toggle_isr(int irq, void *q)
    60  {
    61          struct hi65xx_priv *p = q;
    62          int value = test_bit(KEY_RESTART, p->input->key);
    63  
    64          pm_wakeup_event(p->input->dev.parent, MAX_HELD_TIME);
    65          input_report_key(p->input, KEY_RESTART, !value);
    66          input_sync(p->input);
    67  
    68          return IRQ_HANDLED;
    69  }
    70  
    71  irqreturn_t (*irq_handlers[ID_LAST])(int irq, void *q) = {
    72          hi65xx_power_press_isr,
    73          hi65xx_power_release_isr,
    74          hi65xx_restart_toggle_isr,
    75  };
    76  
    77  static int hi65xx_powerkey_probe(struct platform_device *pdev)
    78  {
    79          struct device *dev = &pdev->dev;
    80          struct hi65xx_priv *priv;
    81          int irq, i, ret;
    82  
    83          priv = devm_kzalloc(dev, sizeof(struct hi65xx_priv), 
GFP_KERNEL);
    84          if (!priv)
    85                  return -ENOMEM;
    86  
    87          priv->input = devm_input_allocate_device(&pdev->dev);
    88          if (!priv->input) {
    89                  dev_err(&pdev->dev, "failed to allocate input 
device\n");
    90                  return -ENOMEM;
    91          }
    92  
    93          priv->input->phys = "hisi_on/input0";
    94          priv->input->name = "HISI 65xx PowerOn Key";
    95  
    96          input_set_capability(priv->input, EV_KEY, KEY_POWER);
    97          input_set_capability(priv->input, EV_KEY, KEY_RESTART);
    98  
    99          for (i = 0; i < ID_LAST; i++) {
   100  
   101                  irq = platform_get_irq_byname(pdev, irq_names[i]);
   102                  if (irq < 0) {
   103                          dev_err(dev, "couldn't get irq %s\n", 
irq_names[i]);
   104                          return irq;
   105                  }
   106  
   107                  ret = devm_request_any_context_irq(dev, irq,
   108                                          irq_handlers[i], IRQF_ONESHOT,
   109                                          irq_names[i], priv);
   110                  if (ret < 0) {
   111                          dev_err(dev, "couldn't get irq %s\n", 
irq_names[i]);
   112                          return ret;
   113                  }
   114          }
   115  
   116          ret = input_register_device(priv->input);
   117          if (ret) {
   118                  dev_err(&pdev->dev, "failed to register input device: 
%d\n",
   119                          ret);
   120                  return ret;
   121          }
   122  
   123          platform_set_drvdata(pdev, priv);
   124          device_init_wakeup(&pdev->dev, 1);
   125  
   126          return 0;
   127  }
   128  
   129  static int hi65xx_powerkey_remove(struct platform_device *pdev)
   130  {
   131          device_init_wakeup(&pdev->dev, 0);
   132          return 0;
   133  }
   134  
 > 135  MODULE_DEVICE_TABLE(of, hi65xx_powerkey_of_match);
   136  
   137  static struct platform_driver hi65xx_powerkey_driver = {
   138          .driver = {

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

Attachment: .config.gz
Description: Binary data

Reply via email to