Hi Brendan,

[auto build test ERROR on wsa/i2c/for-next]
[also build test ERROR on v4.8-rc5 next-20160909]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for 
convenience) to record what (public, well-known) commit your patch series was 
built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url:    
https://github.com/0day-ci/linux/commits/Brendan-Higgins/i2c-aspeed-added-driver-for-Aspeed-I2C/20160910-035912
base:   https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git 
i2c/for-next
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

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

   In file included from drivers/i2c/busses/i2c-aspeed.c:14:0:
>> drivers/i2c/busses/i2c-aspeed.c:697:25: error: 'aspeed_i2c_of_table' 
>> undeclared here (not in a function)
    MODULE_DEVICE_TABLE(of, aspeed_i2c_of_table);
                            ^
   include/linux/module.h:213:21: note: in definition of macro 
'MODULE_DEVICE_TABLE'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                        ^~~~
>> include/linux/module.h:130:27: error: redefinition of '__inittest'
     static inline initcall_t __inittest(void)  \
                              ^
   include/linux/device.h:1350:1: note: in expansion of macro 'module_init'
    module_init(__driver##_init); \
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-aspeed.c:812:1: note: in expansion of macro 
>> 'module_platform_driver'
    module_platform_driver(aspeed_i2c_controller_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/module.h:130:27: note: previous definition of '__inittest' was 
here
     static inline initcall_t __inittest(void)  \
                              ^
   include/linux/device.h:1350:1: note: in expansion of macro 'module_init'
    module_init(__driver##_init); \
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
   drivers/i2c/busses/i2c-aspeed.c:707:1: note: in expansion of macro 
'module_platform_driver'
    module_platform_driver(aspeed_i2c_bus_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/module.h:132:6: error: redefinition of 'init_module'
     int init_module(void) __attribute__((alias(#initfn)));
         ^
   include/linux/device.h:1350:1: note: in expansion of macro 'module_init'
    module_init(__driver##_init); \
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-aspeed.c:812:1: note: in expansion of macro 
>> 'module_platform_driver'
    module_platform_driver(aspeed_i2c_controller_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/module.h:132:6: note: previous definition of 'init_module' was 
here
     int init_module(void) __attribute__((alias(#initfn)));
         ^
   include/linux/device.h:1350:1: note: in expansion of macro 'module_init'
    module_init(__driver##_init); \
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
   drivers/i2c/busses/i2c-aspeed.c:707:1: note: in expansion of macro 
'module_platform_driver'
    module_platform_driver(aspeed_i2c_bus_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/module.h:136:27: error: redefinition of '__exittest'
     static inline exitcall_t __exittest(void)  \
                              ^
   include/linux/device.h:1355:1: note: in expansion of macro 'module_exit'
    module_exit(__driver##_exit);
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-aspeed.c:812:1: note: in expansion of macro 
>> 'module_platform_driver'
    module_platform_driver(aspeed_i2c_controller_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/module.h:136:27: note: previous definition of '__exittest' was 
here
     static inline exitcall_t __exittest(void)  \
                              ^
   include/linux/device.h:1355:1: note: in expansion of macro 'module_exit'
    module_exit(__driver##_exit);
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
   drivers/i2c/busses/i2c-aspeed.c:707:1: note: in expansion of macro 
'module_platform_driver'
    module_platform_driver(aspeed_i2c_bus_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/module.h:138:7: error: redefinition of 'cleanup_module'
     void cleanup_module(void) __attribute__((alias(#exitfn)));
          ^
   include/linux/device.h:1355:1: note: in expansion of macro 'module_exit'
    module_exit(__driver##_exit);
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-aspeed.c:812:1: note: in expansion of macro 
>> 'module_platform_driver'
    module_platform_driver(aspeed_i2c_controller_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/module.h:138:7: note: previous definition of 'cleanup_module' 
was here
     void cleanup_module(void) __attribute__((alias(#exitfn)));
          ^
   include/linux/device.h:1355:1: note: in expansion of macro 'module_exit'
    module_exit(__driver##_exit);
    ^~~~~~~~~~~
>> include/linux/platform_device.h:228:2: note: in expansion of macro 
>> 'module_driver'
     module_driver(__platform_driver, platform_driver_register, \
     ^~~~~~~~~~~~~
   drivers/i2c/busses/i2c-aspeed.c:707:1: note: in expansion of macro 
'module_platform_driver'
    module_platform_driver(aspeed_i2c_bus_driver);
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/module.h:213:27: error: 
>> '__mod_of__aspeed_i2c_of_table_device_table' aliased to undefined symbol 
>> 'aspeed_i2c_of_table'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                              ^
>> drivers/i2c/busses/i2c-aspeed.c:801:1: note: in expansion of macro 
>> 'MODULE_DEVICE_TABLE'
    MODULE_DEVICE_TABLE(of, aspeed_i2c_of_table);
    ^~~~~~~~~~~~~~~~~~~
>> include/linux/module.h:213:27: error: 
>> '__mod_of__aspeed_i2c_of_table_device_table' aliased to undefined symbol 
>> 'aspeed_i2c_of_table'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                              ^

vim +/aspeed_i2c_of_table +697 drivers/i2c/busses/i2c-aspeed.c

   691  
   692  static const struct of_device_id aspeed_i2c_bus_of_table[] = {
   693          { .compatible = "aspeed,ast2400-i2c-bus", },
   694          { .compatible = "aspeed,ast2500-i2c-bus", },
   695          { },
   696  };
 > 697  MODULE_DEVICE_TABLE(of, aspeed_i2c_of_table);
   698  
   699  static struct platform_driver aspeed_i2c_bus_driver = {
   700          .probe          = aspeed_i2c_probe_bus,
   701          .remove         = aspeed_i2c_remove_bus,
   702          .driver         = {
   703                  .name   = "ast-i2c-bus",
   704                  .of_match_table = aspeed_i2c_bus_of_table,
   705          },
   706  };
 > 707  module_platform_driver(aspeed_i2c_bus_driver);
   708  
   709  static void aspeed_i2c_controller_irq(struct irq_desc *desc)
   710  {
   711          struct aspeed_i2c_controller *c = 
irq_desc_get_handler_data(desc);
   712          unsigned long p, status;
   713          unsigned int bus_irq;
   714  
   715          status = readl(c->base);
   716          for_each_set_bit(p, &status, ASPEED_I2C_NUM_BUS) {
   717                  bus_irq = irq_find_mapping(c->irq_domain, p);
   718                  generic_handle_irq(bus_irq);
   719          }
   720  }
   721  
   722  static int aspeed_i2c_probe_controller(struct platform_device *pdev)
   723  {
   724          struct aspeed_i2c_controller *controller;
   725          struct device_node *np;
   726          struct resource *res;
   727  
   728          controller = kzalloc(sizeof(*controller), GFP_KERNEL);
   729          if (!controller)
   730                  return -ENOMEM;
   731  
   732          res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   733          controller->base = devm_ioremap_resource(&pdev->dev, res);
   734          if (IS_ERR(controller->base))
   735                  return PTR_ERR(controller->base);
   736  
   737          controller->irq = platform_get_irq(pdev, 0);
   738          if (controller->irq < 0) {
   739                  dev_err(&pdev->dev, "no platform IRQ\n");
   740                  return -ENXIO;
   741          }
   742  
   743          controller->irq_domain = 
irq_domain_add_linear(pdev->dev.of_node,
   744                          ASPEED_I2C_NUM_BUS, &irq_domain_simple_ops, 
NULL);
   745          if (!controller->irq_domain) {
   746                  dev_err(&pdev->dev, "no IRQ domain\n");
   747                  return -ENXIO;
   748          }
   749          controller->irq_domain->name = "ast-i2c-domain";
   750  
   751          irq_set_chained_handler_and_data(controller->irq,
   752                          aspeed_i2c_controller_irq, controller);
   753  
   754          controller->dev = &pdev->dev;
   755  
   756          platform_set_drvdata(pdev, controller);
   757  
   758          dev_info(controller->dev, "i2c controller registered, irq %d\n",
   759                          controller->irq);
   760  
   761          for_each_child_of_node(pdev->dev.of_node, np) {
   762                  int ret;
   763                  u32 bus_num;
   764                  char bus_id[sizeof("i2c-12345")];
   765  
   766                  /*
   767                   * Set a useful name derived from the bus number; the 
device
   768                   * tree should provide us with one that corresponds to 
the
   769                   * hardware numbering.  If the property is missing the
   770                   * probe would fail so just skip it here.
   771                   */
   772  
   773                  ret = of_property_read_u32(np, "bus", &bus_num);
   774                  if (ret)
   775                          continue;
   776  
   777                  ret = snprintf(bus_id, sizeof(bus_id), "i2c-%u", 
bus_num);
   778                  if (ret >= sizeof(bus_id))
   779                          continue;
   780  
   781                  of_platform_device_create(np, bus_id, &pdev->dev);
   782                  of_node_put(np);
   783          }
   784  
   785          return 0;
   786  }
   787  
   788  static int aspeed_i2c_remove_controller(struct platform_device *pdev)
   789  {
   790          struct aspeed_i2c_controller *controller = 
platform_get_drvdata(pdev);
   791  
   792          irq_domain_remove(controller->irq_domain);
   793          return 0;
   794  }
   795  
   796  static const struct of_device_id aspeed_i2c_controller_of_table[] = {
   797          { .compatible = "aspeed,ast2400-i2c-controller", },
   798          { .compatible = "aspeed,ast2500-i2c-controller", },
   799          { },
   800  };
 > 801  MODULE_DEVICE_TABLE(of, aspeed_i2c_of_table);
   802  
   803  static struct platform_driver aspeed_i2c_controller_driver = {
   804          .probe          = aspeed_i2c_probe_controller,
   805          .remove         = aspeed_i2c_remove_controller,
   806          .driver         = {
   807                  .name   = "ast-i2c-controller",
   808                  .of_match_table = aspeed_i2c_controller_of_table,
   809          },
   810  };
   811  
 > 812  module_platform_driver(aspeed_i2c_controller_driver);
   813  
   814  MODULE_AUTHOR("Brendan Higgins <brendanhigg...@google.com>");
   815  MODULE_DESCRIPTION("Aspeed I2C Bus 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