GobiSerial Compile Errors

Hi,

I have an embedded linux system running 2.6.24 kernel. When I try and compile the GobiSerial drivers for the MC7304 modem I get the following errors. Can someone please advise? It appears this driver was written to handle legacy kernels.

CC drivers/usb/serial/GobiSerial.o
drivers/usb/serial/GobiSerial.c:218:2: warning: #warning “Using legacy method of locking disc_mutex”
drivers/usb/serial/GobiSerial.c: In function ‘Gobi_lock_disc_mutex’:
drivers/usb/serial/GobiSerial.c:220: error: ‘struct usb_serial’ has no member named ‘disc_mutex’
drivers/usb/serial/GobiSerial.c:221: error: ‘struct usb_serial’ has no member named ‘disc_mutex’
drivers/usb/serial/GobiSerial.c: In function ‘Gobi_unlock_disc_mutex’:
drivers/usb/serial/GobiSerial.c:224: error: ‘struct usb_serial’ has no member named ‘disc_mutex’
drivers/usb/serial/GobiSerial.c: In function ‘Gobi_dtr_rts’:
drivers/usb/serial/GobiSerial.c:383: error: ‘struct usb_serial’ has no member named ‘disconnected’
drivers/usb/serial/GobiSerial.c: At top level:
drivers/usb/serial/GobiSerial.c:503: error: unknown field ‘dtr_rts’ specified in initializer
drivers/usb/serial/GobiSerial.c:503: warning: initialization from incompatible pointer type
drivers/usb/serial/GobiSerial.c:505: error: unknown field ‘release’ specified in initializer
drivers/usb/serial/GobiSerial.c:505: warning: initialization from incompatible pointer type
drivers/usb/serial/GobiSerial.c: In function ‘flush_and_resubmit_read_urb’:
drivers/usb/serial/GobiSerial.c:887: error: implicit declaration of function ‘tty_port_tty_get’
drivers/usb/serial/GobiSerial.c:887: error: ‘struct usb_serial_port’ has no member named ‘port’
drivers/usb/serial/GobiSerial.c:887: warning: initialization makes pointer from integer without a cast
drivers/usb/serial/GobiSerial.c:893: error: implicit declaration of function ‘tty_kref_put’
drivers/usb/serial/GobiSerial.c:900: error: ‘struct usb_serial_port’ has no member named ‘console’
drivers/usb/serial/GobiSerial.c:900: error: ‘struct usb_serial_port’ has no member named ‘sysrq’
drivers/usb/serial/GobiSerial.c:905: error: implicit declaration of function ‘usb_serial_handle_sysrq_char’
drivers/usb/serial/GobiSerial.c:912: error: implicit declaration of function ‘usb_serial_generic_resubmit_read_urb’
drivers/usb/serial/GobiSerial.c: In function ‘GobiReadBulkCallback’:
drivers/usb/serial/GobiSerial.c:964: error: ‘urb’ undeclared (first use in this function)
drivers/usb/serial/GobiSerial.c:964: error: (Each undeclared identifier is reported only once
drivers/usb/serial/GobiSerial.c:964: error: for each function it appears in.)
drivers/usb/serial/GobiSerial.c:1110: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1220: error: invalid storage class for function ‘GobiInit’
drivers/usb/serial/GobiSerial.c:1272: error: invalid storage class for function ‘GobiExit’
drivers/usb/serial/GobiSerial.c:1287: error: initializer element is not constant
drivers/usb/serial/GobiSerial.c:1288: error: initializer element is not constant
drivers/usb/serial/GobiSerial.c:1288: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1295: error: invalid storage class for function ‘__check_debug’
drivers/usb/serial/GobiSerial.c:1295: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1295: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1297: error: invalid storage class for function ‘__check_flow_control’
drivers/usb/serial/GobiSerial.c:1297: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1297: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1299: error: invalid storage class for function ‘__check_ignore_gps_start_error’
drivers/usb/serial/GobiSerial.c:1299: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1299: warning: ISO C90 forbids mixed declarations and code
drivers/usb/serial/GobiSerial.c:1300: error: expected declaration or statement at end of input
make[3]: *** [drivers/usb/serial/GobiSerial.o] Error 1

Thanks!

I have found that the usb_serial structure in “include/linux/usb/serial.h” does in fact have these missing members in the errors above. I am not sure why this would be though. It is almost as if this driver was made to not support 2.6.24 version kernels even though it says it does. Anyone have any suggestions or input?

After downloading linux kernel 2.6.25 I see that these missing struct members were added in this release. Does this mean that 2.6.24 is in fact not supported in GobiSerial.c?