编译usb转串口驱动疏失:warning: control reaches end of non-void function

编译usb转串口驱动出错:warning: control reaches end of non-void function
之前总提示找不到头文件 我在Makefile里补了"CFLAGS += -I /usr/src/linux-headers-2.6.38-15/arch/x86/include/"
然后Make:

C/C++ code
ftdi_sio.c: At top level:
ftdi_sio.c:655:2: error: unknown field ‘num_interrupt_in’ specified in initializer
ftdi_sio.c:656:2: error: unknown field ‘num_bulk_in’ specified in initializer
ftdi_sio.c:656:2: warning: missing braces around initializer
ftdi_sio.c:656:2: warning: (near initialization for ‘ftdi_sio_device.driver_list’)
ftdi_sio.c:656:2: warning: initialization makes pointer from integer without a cast
ftdi_sio.c:657:2: error: unknown field ‘num_bulk_out’ specified in initializer
ftdi_sio.c:657:2: warning: initialization makes pointer from integer without a cast
ftdi_sio.c:662:2: warning: initialization from incompatible pointer type
ftdi_sio.c:663:2: warning: initialization from incompatible pointer type
ftdi_sio.c:664:2: warning: initialization from incompatible pointer type
ftdi_sio.c:665:2: warning: initialization from incompatible pointer type
ftdi_sio.c:666:2: warning: initialization from incompatible pointer type
ftdi_sio.c:667:2: warning: initialization from incompatible pointer type
ftdi_sio.c:668:2: warning: initialization from incompatible pointer type
ftdi_sio.c:671:2: warning: initialization from incompatible pointer type
ftdi_sio.c:672:2: warning: initialization from incompatible pointer type
ftdi_sio.c:673:2: warning: initialization from incompatible pointer type
ftdi_sio.c:674:2: warning: initialization from incompatible pointer type
ftdi_sio.c:675:2: warning: initialization from incompatible pointer type
ftdi_sio.c:676:2: error: unknown field ‘shutdown’ specified in initializer
ftdi_sio.c:676:2: warning: initialization from incompatible pointer type
ftdi_sio.c: In function ‘update_mctrl’:
ftdi_sio.c:793:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘get_ftdi_divisor’:
ftdi_sio.c:878:31: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:957:27: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c: In function ‘set_serial_info’:
ftdi_sio.c:1011:6: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1017:8: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1019:8: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1021:8: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1023:8: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1025:8: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c: In function ‘ftdi_determine_type’:
ftdi_sio.c:1105:2: warning: implicit declaration of function ‘info’
ftdi_sio.c: In function ‘ftdi_sio_port_probe’:
ftdi_sio.c:1316:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_open’:
ftdi_sio.c:1454:10: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1455:7: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1469:10: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1470:30: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1490:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_close’:
ftdi_sio.c:1508:29: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1522:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_write’:
ftdi_sio.c:1586:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:1593:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:1635:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_chars_in_buffer’:
ftdi_sio.c:1741:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_read_bulk_callback’:
ftdi_sio.c:1759:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:1761:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:1766:10: error: ‘struct usb_serial_port’ has no member named ‘open_count’
ftdi_sio.c:1769:12: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1782:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_process_read’:
ftdi_sio.c:1822:10: error: ‘struct usb_serial_port’ has no member named ‘open_count’
ftdi_sio.c:1825:12: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:1880:12: warning: comparison of distinct pointer types lacks a cast
ftdi_sio.c:1882:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:1973:11: error: ‘struct usb_serial_port’ has no member named ‘open_count’
ftdi_sio.c:1986:10: error: ‘struct usb_serial_port’ has no member named ‘open_count’
ftdi_sio.c:1995:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_break_ctl’:
ftdi_sio.c:2024:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_set_termios’:
ftdi_sio.c:2041:33: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:2056:28: error: ‘struct usb_serial_port’ has no member named ‘tty’
ftdi_sio.c:2093:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:2106:3: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:2117:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:2124:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:2142:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:2169:5: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:2181:5: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘ftdi_tiocmget’:
ftdi_sio.c:2206:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c:2225:4: error: expected ‘)’ before ‘KBUILD_MODNAME’
ftdi_sio.c: In function ‘usb_register’:
/lib/modules/2.6.38-15-generic/build/include/linux/usb.h:932:1: warning: control reaches end of non-void function
make: *** [ftdi_sio.o] 错误 1