Re: [PATCH V6 1/1] usb:serial: Add Fintek F81532/534 driver

From: kbuild test robot
Date: Tue Nov 03 2015 - 01:28:47 EST


Hi Peter,

[auto build test ERROR on usb/usb-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url: https://github.com/0day-ci/linux/commits/Peter-Hung/usb-serial-Add-Fintek-F81532-534-driver/20151103-115336
config: m68k-allyesconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m68k

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

>> drivers/usb/serial/f81534.c:504:1: warning: data definition has no type or storage class
MODULE_DEVICE_TABLE(usb, id_table);
^
>> drivers/usb/serial/f81534.c:504:1: error: type defaults to 'int' in declaration of 'MODULE_DEVICE_TABLE' [-Werror=implicit-int]
>> drivers/usb/serial/f81534.c:504:1: warning: parameter names (without types) in function declaration
>> drivers/usb/serial/f81534.c:522:19: error: field 'f81534_gpio_chip' has incomplete type
struct gpio_chip f81534_gpio_chip;
^
In file included from include/linux/list.h:8:0,
from include/linux/preempt.h:10,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/slab.h:14,
from drivers/usb/serial/f81534.c:99:
drivers/usb/serial/f81534.c: In function 'f81534_gpio_get':
>> drivers/usb/serial/f81534.c:849:21: error: dereferencing pointer to incomplete type
container_of(chip->dev, struct usb_serial_port, dev);
^
include/linux/kernel.h:811:49: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/usb/serial/f81534.c: In function 'f81534_gpio_set':
drivers/usb/serial/f81534.c:887:8: error: dereferencing pointer to incomplete type
chip->dev, struct usb_serial_port, dev);
^
include/linux/kernel.h:811:49: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/usb/serial/f81534.c: In function 'f81534_gpio_request':
drivers/usb/serial/f81534.c:927:8: error: dereferencing pointer to incomplete type
chip->dev, struct usb_serial_port, dev);
^
include/linux/kernel.h:811:49: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/usb/serial/f81534.c: In function 'f81534_gpio_free':
drivers/usb/serial/f81534.c:938:8: error: dereferencing pointer to incomplete type
chip->dev, struct usb_serial_port, dev);
^
include/linux/kernel.h:811:49: note: in definition of macro 'container_of'
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
drivers/usb/serial/f81534.c: At top level:
>> drivers/usb/serial/f81534.c:960:15: error: variable 'f81534_gpio_chip_templete' has initializer but incomplete type
static struct gpio_chip f81534_gpio_chip_templete = {
^
>> drivers/usb/serial/f81534.c:961:2: error: unknown field 'owner' specified in initializer
.owner = THIS_MODULE,
^
In file included from include/linux/linkage.h:6:0,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:5,
from include/linux/slab.h:14,
from drivers/usb/serial/f81534.c:99:
include/linux/export.h:36:30: warning: excess elements in struct initializer
#define THIS_MODULE ((struct module *)0)
^
>> drivers/usb/serial/f81534.c:961:11: note: in expansion of macro 'THIS_MODULE'
.owner = THIS_MODULE,
^
include/linux/export.h:36:30: warning: (near initialization for 'f81534_gpio_chip_templete')
#define THIS_MODULE ((struct module *)0)
^
>> drivers/usb/serial/f81534.c:961:11: note: in expansion of macro 'THIS_MODULE'
.owner = THIS_MODULE,
^
>> drivers/usb/serial/f81534.c:962:2: error: unknown field 'get_direction' specified in initializer
.get_direction = f81534_gpio_get_direction,
^
>> drivers/usb/serial/f81534.c:962:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:962:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:963:2: error: unknown field 'get' specified in initializer
.get = f81534_gpio_get,
^
drivers/usb/serial/f81534.c:963:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:963:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:964:2: error: unknown field 'direction_input' specified in initializer
.direction_input = f81534_gpio_direction_in,
^
drivers/usb/serial/f81534.c:964:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:964:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:965:2: error: unknown field 'set' specified in initializer
.set = f81534_gpio_set,
^
drivers/usb/serial/f81534.c:965:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:965:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:966:2: error: unknown field 'direction_output' specified in initializer
.direction_output = f81534_gpio_direction_out,
^
drivers/usb/serial/f81534.c:966:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:966:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:967:2: error: unknown field 'request' specified in initializer
.request = f81534_gpio_request,
^
drivers/usb/serial/f81534.c:967:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:967:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:968:2: error: unknown field 'free' specified in initializer
.free = f81534_gpio_free,
^
drivers/usb/serial/f81534.c:968:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:968:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:969:2: error: unknown field 'ngpio' specified in initializer
.ngpio = 3, /*M0(SD)/M1/M2*/
^
drivers/usb/serial/f81534.c:969:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:969:2: warning: (near initialization for 'f81534_gpio_chip_templete')
>> drivers/usb/serial/f81534.c:970:2: error: unknown field 'base' specified in initializer
.base = -1,
^
drivers/usb/serial/f81534.c:970:2: warning: excess elements in struct initializer
drivers/usb/serial/f81534.c:970:2: warning: (near initialization for 'f81534_gpio_chip_templete')
In file included from include/linux/string.h:17:0,
from include/linux/bitmap.h:8,
from include/linux/nodemask.h:92,
from include/linux/mmzone.h:16,
from include/linux/gfp.h:5,
from include/linux/slab.h:14,
from drivers/usb/serial/f81534.c:99:
drivers/usb/serial/f81534.c: In function 'f81534_prepare_gpio':
>> drivers/usb/serial/f81534.c:1566:10: error: invalid application of 'sizeof' to incomplete type 'struct gpio_chip'
sizeof(f81534_gpio_chip_templete));
^
arch/m68k/include/asm/string.h:71:48: note: in definition of macro 'memcpy'
#define memcpy(d, s, n) __builtin_memcpy(d, s, n)
^

vim +504 drivers/usb/serial/f81534.c

498 static const struct usb_device_id id_table[] = {
499 {USB_DEVICE(FINTEK_VENDOR_ID_1, FINTEK_DEVICE_ID)},
500 {USB_DEVICE(FINTEK_VENDOR_ID_2, FINTEK_DEVICE_ID)},
501 {} /* Terminating entry */
502 };
503
> 504 MODULE_DEVICE_TABLE(usb, id_table);
505
506 struct f81534_serial_private {
507 bool is_phy_port_not_empty[F81534_NUM_PORT];
508 spinlock_t tx_empty_lock;
509 struct mutex change_mode_mutex;
510 u8 default_conf_data[F81534_DEF_CONF_SIZE];
511 u32 setting_idx;
512 atomic_t port_active[F81534_NUM_PORT];
513 };
514
515 struct f81534_port_private {
516 u8 phy;
517 u8 shadow_mcr;
518 u8 shadow_lcr;
519 u32 current_baud_rate;
520 u32 current_baud_base;
521 struct f81534_pin_config_data port_pin_data;
> 522 struct gpio_chip f81534_gpio_chip;
523 atomic_t gpio_active;
524 spinlock_t msr_lock;
525 struct mutex msr_mutex;

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

Attachment: .config.gz
Description: Binary data