ChangeSet 1.842.46.10, 2002/11/26 14:16:49-08:00, greg@kroah.com [PATCH] USB serial: move the ezusb functions into their own file. diff -Nru a/drivers/usb/serial/Kconfig b/drivers/usb/serial/Kconfig --- a/drivers/usb/serial/Kconfig Wed Nov 27 12:51:27 2002 +++ b/drivers/usb/serial/Kconfig Wed Nov 27 12:51:27 2002 @@ -400,5 +400,10 @@ The module will be called omninet.o. If you want to compile it as a module, say M here and read . +config USB_EZUSB + bool + depends on USB_SERIAL_KEYSPAN_PDA || USB_SERIAL_XIRCOM || USB_SERIAL_KEYSPAN || USB_SERIAL_WHITEHEAT + default y + endmenu diff -Nru a/drivers/usb/serial/Makefile b/drivers/usb/serial/Makefile --- a/drivers/usb/serial/Makefile Wed Nov 27 12:51:27 2002 +++ b/drivers/usb/serial/Makefile Wed Nov 27 12:51:27 2002 @@ -7,6 +7,7 @@ obj-$(CONFIG_USB_SERIAL) += usbserial.o usbserial-obj-$(CONFIG_USB_SERIAL_CONSOLE) += console.o +usbserial-obj-$(CONFIG_USB_EZUSB) += ezusb.o obj-$(CONFIG_USB_SERIAL_VISOR) += visor.o obj-$(CONFIG_USB_SERIAL_IPAQ) += ipaq.o @@ -29,7 +30,7 @@ obj-$(CONFIG_USB_SERIAL_SAFE) += safe_serial.o # Objects that export symbols. -export-objs := usb-serial.o +export-objs := usb-serial.o ezusb.o usbserial-objs := usb-serial.o $(usbserial-obj-y) diff -Nru a/drivers/usb/serial/ezusb.c b/drivers/usb/serial/ezusb.c --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/drivers/usb/serial/ezusb.c Wed Nov 27 12:51:27 2002 @@ -0,0 +1,67 @@ +/* + * EZ-USB specific functions used by some of the USB to Serial drivers. + * + * Copyright (C) 1999 - 2002 Greg Kroah-Hartman (greg@kroah.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_USB_SERIAL_DEBUG + static int debug = 1; +#else + static int debug; +#endif + +#include "usb-serial.h" + +/* EZ-USB Control and Status Register. Bit 0 controls 8051 reset */ +#define CPUCS_REG 0x7F92 + +int ezusb_writememory (struct usb_serial *serial, int address, unsigned char *data, int length, __u8 bRequest) +{ + int result; + unsigned char *transfer_buffer; + + /* dbg("ezusb_writememory %x, %d", address, length); */ + if (!serial->dev) { + dbg("%s - no physical device present, failing.", __FUNCTION__); + return -ENODEV; + } + + transfer_buffer = kmalloc (length, GFP_KERNEL); + if (!transfer_buffer) { + err("%s - kmalloc(%d) failed.", __FUNCTION__, length); + return -ENOMEM; + } + memcpy (transfer_buffer, data, length); + result = usb_control_msg (serial->dev, usb_sndctrlpipe(serial->dev, 0), bRequest, 0x40, address, 0, transfer_buffer, length, 3*HZ); + kfree (transfer_buffer); + return result; +} + +int ezusb_set_reset (struct usb_serial *serial, unsigned char reset_bit) +{ + int response; + dbg("%s - %d", __FUNCTION__, reset_bit); + response = ezusb_writememory (serial, CPUCS_REG, &reset_bit, 1, 0xa0); + if (response < 0) { + err("%s- %d failed", __FUNCTION__, reset_bit); + } + return response; +} + + +EXPORT_SYMBOL(ezusb_writememory); +EXPORT_SYMBOL(ezusb_set_reset); + diff -Nru a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c --- a/drivers/usb/serial/usb-serial.c Wed Nov 27 12:51:27 2002 +++ b/drivers/usb/serial/usb-serial.c Wed Nov 27 12:51:27 2002 @@ -488,45 +488,6 @@ return; } -#ifdef USES_EZUSB_FUNCTIONS -/* EZ-USB Control and Status Register. Bit 0 controls 8051 reset */ -#define CPUCS_REG 0x7F92 - -int ezusb_writememory (struct usb_serial *serial, int address, unsigned char *data, int length, __u8 bRequest) -{ - int result; - unsigned char *transfer_buffer; - - /* dbg("ezusb_writememory %x, %d", address, length); */ - if (!serial->dev) { - dbg("%s - no physical device present, failing.", __FUNCTION__); - return -ENODEV; - } - - transfer_buffer = kmalloc (length, GFP_KERNEL); - if (!transfer_buffer) { - err("%s - kmalloc(%d) failed.", __FUNCTION__, length); - return -ENOMEM; - } - memcpy (transfer_buffer, data, length); - result = usb_control_msg (serial->dev, usb_sndctrlpipe(serial->dev, 0), bRequest, 0x40, address, 0, transfer_buffer, length, 3*HZ); - kfree (transfer_buffer); - return result; -} - -int ezusb_set_reset (struct usb_serial *serial, unsigned char reset_bit) -{ - int response; - dbg("%s - %d", __FUNCTION__, reset_bit); - response = ezusb_writememory (serial, CPUCS_REG, &reset_bit, 1, 0xa0); - if (response < 0) { - err("%s- %d failed", __FUNCTION__, reset_bit); - } - return response; -} - -#endif /* USES_EZUSB_FUNCTIONS */ - /***************************************************************************** * Driver tty interface functions *****************************************************************************/ @@ -1699,12 +1660,6 @@ EXPORT_SYMBOL(usb_serial_probe); EXPORT_SYMBOL(usb_serial_disconnect); EXPORT_SYMBOL(usb_serial_port_softint); -#ifdef USES_EZUSB_FUNCTIONS - EXPORT_SYMBOL(ezusb_writememory); - EXPORT_SYMBOL(ezusb_set_reset); -#endif - - /* Module information */ diff -Nru a/drivers/usb/serial/usb-serial.h b/drivers/usb/serial/usb-serial.h --- a/drivers/usb/serial/usb-serial.h Wed Nov 27 12:51:27 2002 +++ b/drivers/usb/serial/usb-serial.h Wed Nov 27 12:51:27 2002 @@ -237,24 +237,8 @@ extern int usb_serial_probe(struct usb_interface *iface, const struct usb_device_id *id); extern void usb_serial_disconnect(struct usb_interface *iface); -/* determine if we should include the EzUSB loader functions */ -#undef USES_EZUSB_FUNCTIONS -#if defined(CONFIG_USB_SERIAL_KEYSPAN_PDA) || defined(CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE) - #define USES_EZUSB_FUNCTIONS -#endif -#if defined(CONFIG_USB_SERIAL_XIRCOM) || defined(CONFIG_USB_SERIAL_XIRCOM_MODULE) - #define USES_EZUSB_FUNCTIONS -#endif -#if defined(CONFIG_USB_SERIAL_KEYSPAN) || defined(CONFIG_USB_SERIAL_KEYSPAN_MODULE) - #define USES_EZUSB_FUNCTIONS -#endif -#if defined(CONFIG_USB_SERIAL_WHITEHEAT) || defined(CONFIG_USB_SERIAL_WHITEHEAT_MODULE) - #define USES_EZUSB_FUNCTIONS -#endif -#ifdef USES_EZUSB_FUNCTIONS extern int ezusb_writememory (struct usb_serial *serial, int address, unsigned char *data, int length, __u8 bRequest); extern int ezusb_set_reset (struct usb_serial *serial, unsigned char reset_bit); -#endif /* USB Serial console functions */ #ifdef CONFIG_USB_SERIAL_CONSOLE