Hi Stefan,

[auto build test ERROR on input/next]
[also build test ERROR on v4.5-rc1 next-20160125]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improving the system]

url:    
https://github.com/0day-ci/linux/commits/Stefan-Agner/input-touchscreen-ad7879-move-header-to-input-subdirectory/20160126-110813
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next
config: x86_64-randconfig-s4-01261112 (attached as .config)
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/input/touchscreen/ad7879-i2c.c:11:0:
>> drivers/input/touchscreen/ad7879-i2c.c:151:25: error: 'st1232_ts_dt_ids' 
>> undeclared here (not in a function)
    MODULE_DEVICE_TABLE(of, st1232_ts_dt_ids);
                            ^
   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__st1232_ts_dt_ids_device_table' aliased to undefined symbol 
>> 'st1232_ts_dt_ids'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                              ^
>> drivers/input/touchscreen/ad7879-i2c.c:151:1: note: in expansion of macro 
>> 'MODULE_DEVICE_TABLE'
    MODULE_DEVICE_TABLE(of, st1232_ts_dt_ids);
    ^

vim +/st1232_ts_dt_ids +151 drivers/input/touchscreen/ad7879-i2c.c

     5   *
     6   * Licensed under the GPL-2 or later.
     7   */
     8  
     9  #include <linux/input.h>        /* BUS_I2C */
    10  #include <linux/i2c.h>
  > 11  #include <linux/module.h>
    12  #include <linux/types.h>
    13  #include <linux/pm.h>
    14  #include <linux/input/ad7879.h>
    15  
    16  #include "ad7879.h"
    17  
    18  #define AD7879_DEVID            0x79    /* AD7879-1/AD7889-1 */
    19  
    20  /* All registers are word-sized.
    21   * AD7879 uses a high-byte first convention.
    22   */
    23  static int ad7879_i2c_read(struct device *dev, u8 reg)
    24  {
    25          struct i2c_client *client = to_i2c_client(dev);
    26  
    27          return i2c_smbus_read_word_swapped(client, reg);
    28  }
    29  
    30  static int ad7879_i2c_multi_read(struct device *dev,
    31                                   u8 first_reg, u8 count, u16 *buf)
    32  {
    33          struct i2c_client *client = to_i2c_client(dev);
    34          u8 idx;
    35  
    36          i2c_smbus_read_i2c_block_data(client, first_reg, count * 2, (u8 
*)buf);
    37  
    38          for (idx = 0; idx < count; ++idx)
    39                  buf[idx] = swab16(buf[idx]);
    40  
    41          return 0;
    42  }
    43  
    44  static int ad7879_i2c_write(struct device *dev, u8 reg, u16 val)
    45  {
    46          struct i2c_client *client = to_i2c_client(dev);
    47  
    48          return i2c_smbus_write_word_swapped(client, reg, val);
    49  }
    50  
    51  static const struct ad7879_bus_ops ad7879_i2c_bus_ops = {
    52          .bustype        = BUS_I2C,
    53          .read           = ad7879_i2c_read,
    54          .multi_read     = ad7879_i2c_multi_read,
    55          .write          = ad7879_i2c_write,
    56  };
    57  
    58  static struct ad7879_platform_data *ad7879_parse_dt(struct device *dev)
    59  {
    60          struct ad7879_platform_data *pdata;
    61          struct device_node *np = dev->of_node;
    62          int err;
    63          u32 tmp;
    64  
    65          if (!np)
    66                  return NULL;
    67  
    68          pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
    69  
    70          if (!pdata)
    71                  return ERR_PTR(-ENOMEM);
    72  
    73          err = of_property_read_u32(np, "resistance-plate-x", &tmp);
    74          if (err) {
    75                  dev_err(dev, "failed to get resistance-plate-x 
property\n");
    76                  return ERR_PTR(err);
    77          }
    78          pdata->x_plate_ohms = (u16)tmp;
    79  
    80          err = of_property_read_u32(np, "touchscreen-max-pressure", 
&tmp);
    81          if (err) {
    82                  dev_err(dev, "failed to get touchscreen-max-pressure 
property\n");
    83                  return ERR_PTR(err);
    84          }
    85          pdata->pressure_min = (u16)tmp;
    86  
    87          of_property_read_u8(np, "first-conversion-delay", 
&pdata->first_conversion_delay);
    88          of_property_read_u8(np, "acquisition-time", 
&pdata->acquisition_time);
    89          of_property_read_u8(np, "median-filter-size", &pdata->median);
    90          of_property_read_u8(np, "averaging", &pdata->averaging);
    91          of_property_read_u8(np, "conversion-interval", 
&pdata->pen_down_acc_interval);
    92  
    93          pdata->swap_xy = of_property_read_bool(np, 
"touchscreen-swapped-x-y");
    94  
    95          return pdata;
    96  }
    97  
    98  static int ad7879_i2c_probe(struct i2c_client *client,
    99                                        const struct i2c_device_id *id)
   100  {
   101          struct ad7879_platform_data *pdata;
   102          struct ad7879 *ts;
   103  
   104          if (!i2c_check_functionality(client->adapter,
   105                                       I2C_FUNC_SMBUS_WORD_DATA)) {
   106                  dev_err(&client->dev, "SMBUS Word Data not 
Supported\n");
   107                  return -EIO;
   108          }
   109  
   110          pdata = dev_get_platdata(&client->dev);
   111  
   112          if (!pdata && IS_ENABLED(CONFIG_OF))
   113                  pdata = ad7879_parse_dt(&client->dev);
   114  
   115          if (IS_ERR_OR_NULL(pdata)) {
   116                  dev_err(&client->dev, "Need platform data\n");
   117                  return PTR_ERR(pdata);
   118          }
   119  
   120          ts = ad7879_probe(&client->dev, AD7879_DEVID, client->irq, 
pdata,
   121                            &ad7879_i2c_bus_ops);
   122          if (IS_ERR(ts))
   123                  return PTR_ERR(ts);
   124  
   125          i2c_set_clientdata(client, ts);
   126  
   127          return 0;
   128  }
   129  
   130  static int ad7879_i2c_remove(struct i2c_client *client)
   131  {
   132          struct ad7879 *ts = i2c_get_clientdata(client);
   133  
   134          ad7879_remove(ts);
   135  
   136          return 0;
   137  }
   138  
   139  static const struct i2c_device_id ad7879_id[] = {
   140          { "ad7879", 0 },
   141          { "ad7889", 0 },
   142          { }
   143  };
   144  MODULE_DEVICE_TABLE(i2c, ad7879_id);
   145  
   146  #ifdef CONFIG_OF
   147  static const struct of_device_id ad7879_dt_ids[] = {
   148          { .compatible = "adi,ad7879-1", },
   149          { }
   150  };
 > 151  MODULE_DEVICE_TABLE(of, st1232_ts_dt_ids);
   152  #endif
   153  
   154  static struct i2c_driver ad7879_i2c_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