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
.config.gz
Description: Binary data