diff options
author | proski <proski> | 2006-08-02 02:50:35 +0000 |
---|---|---|
committer | proski <proski> | 2006-08-02 02:50:35 +0000 |
commit | 2a3a239f8062c650728f1d1b7e0572fcaa9db6dc (patch) | |
tree | e94442c3101b3c3ec41339f631a692ac3888c02f | |
parent | 7a412d66c349a57d79bcd83ae92ae350cae5f844 (diff) |
Join modules into one, call it at76_usb
Install it in kernel/drivers/net/wireless - no need to have a
subdirectory for just one module. "make install" removes the old
modules first. Simplify "make uninstall".
Remove module stuff from at76_usbdfu.c. Reuse common debug facility,
use DBG_DFU for DFU related debug.
-rw-r--r-- | Makefile | 15 | ||||
-rw-r--r-- | at76_usbdfu.c | 83 | ||||
-rw-r--r-- | at76c503.c | 46 | ||||
-rw-r--r-- | at76c503.h | 43 |
4 files changed, 76 insertions, 111 deletions
@@ -31,7 +31,9 @@ KERNELRELEASE = $(shell sed -ne 's/"//g;s/^\#define UTS_RELEASE //p' \ $(VERSION_HEADER)) -obj-m = at76c503.o at76_usbdfu.o +obj-m = at76_usb.o + +at76_usb-objs = at76c503.o at76_usbdfu.o SRCS = at76c503.c at76_usbdfu.c @@ -47,7 +49,7 @@ DISTNAME = at76c503-$(VERSION) DISTDIR = $(DISTNAME) endif -INSTALL_MOD_DIR = kernel/drivers/net/wireless/at76c503 +INSTALL_MOD_DIR = kernel/drivers/net/wireless MODULE_DIR = $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(INSTALL_MOD_DIR) DEPMOD = /sbin/depmod @@ -68,14 +70,13 @@ check: $(MAKE) $(KBUILD_FLAGS) C=2 CF="$(SPARSE_FLAGS)" install: + rm -rf $(MODULE_DIR)/at76* $(MAKE) $(KBUILD_FLAGS) modules_install \ INSTALL_MOD_DIR="$(INSTALL_MOD_DIR)" $(DEPMOD) -ae uninstall: - for f in $(obj-m:%.o=%.ko); do rm -f $(MODULE_DIR)/$$f; done - -.PHONY: all dist kernel_patch rmmod install modules + rm -rf $(MODULE_DIR)/at76* TAGS: rm -f TAGS @@ -97,7 +98,9 @@ dist: tar zcvf $(DISTNAME).tar.gz $(DISTNAME) kernel_patch: - DRV_SRC="$(SRCS)" DRV_HDR="$(HDRS)" ./kernel_patch.sh $(KERNEL_PATH) + DRV_SRC="$(SRCS)" DRV_HDR="$(HDRS)" ./kernel_patch.sh $(KERNEL_PATH) rmmod: -rmmod $(obj-m:%.o=%) + +.PHONY: all modules check install uninstall clean dist kernel_patch rmmod diff --git a/at76_usbdfu.c b/at76_usbdfu.c index 0dad557..8e0f8ef 100644 --- a/at76_usbdfu.c +++ b/at76_usbdfu.c @@ -33,32 +33,14 @@ #include "at76c503.h" /* for DRIVER_VERSION only */ #include "at76_usbdfu.h" -static int debug = 0; - -/* Use our own dbg macro */ -#undef dbg -#define dbg(format, arg...) \ - do { if (debug) \ - printk(KERN_DEBUG __FILE__ ": " format "\n" , ## arg);\ - } while (0) - #ifdef DEBUG_SEM - #define dfu_down(sem) do { dbg("sem %s down", #sem); down(sem); } while (0) - #define dfu_up(sem) do { dbg("sem %s up", #sem); up(sem); } while (0) + #define dfu_down(sem) do { dbg(DBG_DFU, "sem %s down", #sem); down(sem); } while (0) + #define dfu_up(sem) do { dbg(DBG_DFU, "sem %s up", #sem); up(sem); } while (0) #else #define dfu_down(sem) down(sem) #define dfu_up(sem) up(sem) #endif -/* Version Information */ -#define DRIVER_AUTHOR \ -"Oliver Kurth <oku@masqmail.cx>, Joerg Albert <joerg.albert@gmx.de>, Alex <alex@foogod.com>" -#define DRIVER_DESC "USB Device Firmware Upgrade (DFU) handler" - -/* Module paramaters */ -module_param(debug, bool, 0400); -MODULE_PARM_DESC(debug, "debug on/off"); - /* DFU states */ #define STATE_IDLE 0x00 @@ -112,7 +94,7 @@ int dfu_detach(struct usb_device *udev) { int result; - dbg("dfu_detach"); + dbg(DBG_DFU, "dfu_detach"); result = usb_control_msg(udev, usb_sndctrlpipe(udev,0), DFU_DETACH, @@ -134,7 +116,7 @@ int dfu_download_block(struct dfu_ctx *ctx, u8 *buffer, u8 *tmpbuf = ctx->buf; struct usb_device *udev = ctx->udev; - dbg("dfu_download_block(): buffer=%p, bytes=%d, block=%d", buffer, bytes, block); + dbg(DBG_DFU, "dfu_download_block(): buffer=%p, bytes=%d, block=%d", buffer, bytes, block); if(tmpbuf == NULL) return -ENOMEM; @@ -158,7 +140,7 @@ int dfu_get_status(struct dfu_ctx *ctx, struct dfu_status *status) int result; struct usb_device *udev = ctx->udev; -// dbg("dfu_get_status()"); +// dbg(DBG_DFU, "dfu_get_status()"); result = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), DFU_GETSTATUS, @@ -177,7 +159,7 @@ u8 dfu_get_state(struct usb_device *udev, u8 *state) { int result; -// dbg("dfu_get_state()"); +// dbg(DBG_DFU, "dfu_get_state()"); result = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), DFU_GETSTATE, /* Request */ @@ -232,7 +214,7 @@ int usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, u32 dfu_len, int dfu_block_bytes = 0, dfu_bytes_left = dfu_len, dfu_buffer_offset = 0; int dfu_block_cnt = 0; - dbg("%s( %p, %u, %d)", __FUNCTION__, dfu_buffer, + dbg(DBG_DFU, "%s( %p, %u, %d)", __FUNCTION__, dfu_buffer, dfu_len, manifest_sync_timeout); if (dfu_len == 0) { @@ -259,7 +241,7 @@ int usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, u32 dfu_len, switch (dfu_state) { case STATE_DFU_DOWNLOAD_SYNC: - dbg("STATE_DFU_DOWNLOAD_SYNC"); + dbg(DBG_DFU, "STATE_DFU_DOWNLOAD_SYNC"); status = dfu_get_status(ctx, dfu_stat_buf); if (USB_SUCCESS(status)) { dfu_state = dfu_stat_buf->bState; @@ -270,23 +252,23 @@ int usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, u32 dfu_len, break; case STATE_DFU_DOWNLOAD_BUSY: - dbg("STATE_DFU_DOWNLOAD_BUSY"); + dbg(DBG_DFU, "STATE_DFU_DOWNLOAD_BUSY"); need_dfu_state = 1; if (dfu_timeout >= 0){ - dbg("DFU: Resetting device"); + dbg(DBG_DFU, "DFU: Resetting device"); set_current_state( TASK_INTERRUPTIBLE ); schedule_timeout(1+dfu_timeout*HZ/1000); }else - dbg("DFU: In progress"); + dbg(DBG_DFU, "DFU: In progress"); break; case STATE_DFU_DOWNLOAD_IDLE: - dbg("DOWNLOAD..."); + dbg(DBG_DFU, "DOWNLOAD..."); /* fall through */ case STATE_DFU_IDLE: - dbg("DFU IDLE"); + dbg(DBG_DFU, "DFU IDLE"); if (dfu_bytes_left <= DFU_PACKETSIZE) dfu_block_bytes = dfu_bytes_left; @@ -308,7 +290,7 @@ int usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, u32 dfu_len, break; case STATE_DFU_MANIFEST_SYNC: - dbg("STATE_DFU_MANIFEST_SYNC"); + dbg(DBG_DFU, "STATE_DFU_MANIFEST_SYNC"); status = dfu_get_status(ctx, dfu_stat_buf); @@ -323,38 +305,38 @@ int usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, u32 dfu_len, dfu_timeout = manifest_sync_timeout; if (dfu_timeout >= 0){ - dbg("DFU: Waiting for manifest phase"); + dbg(DBG_DFU, "DFU: Waiting for manifest phase"); set_current_state( TASK_INTERRUPTIBLE ); schedule_timeout((dfu_timeout*HZ+999)/1000); }else - dbg("DFU: In progress"); + dbg(DBG_DFU, "DFU: In progress"); } break; case STATE_DFU_MANIFEST: - dbg("STATE_DFU_MANIFEST"); + dbg(DBG_DFU, "STATE_DFU_MANIFEST"); is_done = 1; break; case STATE_DFU_MANIFEST_WAIT_RESET: - dbg("STATE_DFU_MANIFEST_WAIT_RESET"); + dbg(DBG_DFU, "STATE_DFU_MANIFEST_WAIT_RESET"); // usb_reset_device(udev); is_done = 1; break; case STATE_DFU_UPLOAD_IDLE: - dbg("STATE_DFU_UPLOAD_IDLE"); + dbg(DBG_DFU, "STATE_DFU_UPLOAD_IDLE"); break; case STATE_DFU_ERROR: - dbg("STATE_DFU_ERROR"); + dbg(DBG_DFU, "STATE_DFU_ERROR"); // usb_reset_device(udev); status = -EPIPE; break; default: - dbg("DFU UNKNOWN STATE (%d)", dfu_state); + dbg(DBG_DFU, "DFU UNKNOWN STATE (%d)", dfu_state); status = -EINVAL; break; } @@ -368,26 +350,3 @@ int usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, u32 dfu_len, return 0; } -static int __init usbdfu_init(void) -{ - info(DRIVER_DESC " " DRIVER_VERSION " loading"); - return 0; -} - -/** - * usbdfu_exit - */ -static void __exit usbdfu_exit(void) -{ - info(DRIVER_DESC " " DRIVER_VERSION " unloading"); -} - -module_init (usbdfu_init); -module_exit (usbdfu_exit); - -EXPORT_SYMBOL(usbdfu_download); - -MODULE_AUTHOR(DRIVER_AUTHOR); -MODULE_DESCRIPTION(DRIVER_DESC); -MODULE_LICENSE("GPL"); - @@ -182,49 +182,7 @@ static inline struct urb *alloc_urb(int iso_pk, gfp_t mem_flags) { #define FILL_BULK_URB(a,b,c,d,e,f,g) usb_fill_bulk_urb(a,b,c,d,e,f,g) #endif -/* debug bits */ -#define DBG_PROGRESS 0x00000001 /* progress of scan-join-(auth-assoc)-connected */ -#define DBG_BSS_TABLE 0x00000002 /* show the bss table after scans */ -#define DBG_IOCTL 0x00000004 /* ioctl calls / settings */ -#define DBG_KEVENT 0x00000008 /* kevents */ -#define DBG_TX_DATA 0x00000010 /* tx header */ -#define DBG_TX_DATA_CONTENT 0x00000020 /* tx content */ -#define DBG_TX_MGMT 0x00000040 -#define DBG_RX_DATA 0x00000080 /* rx data header */ -#define DBG_RX_DATA_CONTENT 0x00000100 /* rx data content */ -#define DBG_RX_MGMT 0x00000200 /* rx mgmt header except beacon and probe responses */ -#define DBG_RX_BEACON 0x00000400 /* rx beacon */ -#define DBG_RX_CTRL 0x00000800 /* rx control */ -#define DBG_RX_MGMT_CONTENT 0x00001000 /* rx mgmt content */ -#define DBG_RX_FRAGS 0x00002000 /* rx data fragment handling */ -#define DBG_DEVSTART 0x00004000 /* fw download, device start */ -#define DBG_URB 0x00008000 /* rx urb status, ... */ -#define DBG_RX_ATMEL_HDR 0x00010000 /* the Atmel specific header of each rx packet */ -#define DBG_PROC_ENTRY 0x00020000 /* procedure entries and exits */ -#define DBG_PM 0x00040000 /* power management settings */ -#define DBG_BSS_MATCH 0x00080000 /* show why a certain bss did not match */ -#define DBG_PARAMS 0x00100000 /* show the configured parameters */ -#define DBG_WAIT_COMPLETE 0x00200000 /* show the wait_completion progress */ -#define DBG_RX_FRAGS_SKB 0x00400000 /* show skb header for incoming rx fragments */ -#define DBG_BSS_TABLE_RM 0x00800000 /* inform on removal of old bss table entries */ -#define DBG_MONITOR_MODE 0x01000000 /* debugs from monitor mode */ -#define DBG_MIB 0x02000000 /* dump all MIBs in startup_device */ -#define DBG_MGMT_TIMER 0x04000000 /* dump mgmt_timer ops */ -#define DBG_WE_EVENTS 0x08000000 /* dump wireless events */ -#define DBG_FW 0x10000000 /* firmware download */ - -#define DBG_DEFAULTS 0 -static int debug = DBG_DEFAULTS; - -static const u8 zeros[32]; - -/* Use our own dbg macro */ -#undef dbg -#define dbg(bits, format, arg...) \ - do { \ - if (debug & (bits)) \ - printk(KERN_DEBUG __FILE__ ": " format "\n" , ## arg);\ - } while (0) +int debug = DBG_DEFAULTS; /* uncond. debug output */ #define dbg_uc(format, arg...) \ @@ -576,6 +534,8 @@ static char *hex2str(char *obuf, u8 *buf, int len, char delim) */ static inline int is_cloaked_ssid(u8 *ssid, int length) { + static const u8 zeros[32]; + return (length == 0) || (length == 1 && *ssid == ' ') || (length > 0 && !memcmp(ssid,zeros,length)); @@ -702,4 +702,47 @@ typedef struct p80211msg_lnxind_wlansniffrm p80211item_uint32_t frmlen; } __attribute__ ((packed)) p80211msg_lnxind_wlansniffrm_t; +/* debug bits */ +#define DBG_PROGRESS 0x00000001 /* progress of scan-join-(auth-assoc)-connected */ +#define DBG_BSS_TABLE 0x00000002 /* show the bss table after scans */ +#define DBG_IOCTL 0x00000004 /* ioctl calls / settings */ +#define DBG_KEVENT 0x00000008 /* kevents */ +#define DBG_TX_DATA 0x00000010 /* tx header */ +#define DBG_TX_DATA_CONTENT 0x00000020 /* tx content */ +#define DBG_TX_MGMT 0x00000040 +#define DBG_RX_DATA 0x00000080 /* rx data header */ +#define DBG_RX_DATA_CONTENT 0x00000100 /* rx data content */ +#define DBG_RX_MGMT 0x00000200 /* rx mgmt header except beacon and probe responses */ +#define DBG_RX_BEACON 0x00000400 /* rx beacon */ +#define DBG_RX_CTRL 0x00000800 /* rx control */ +#define DBG_RX_MGMT_CONTENT 0x00001000 /* rx mgmt content */ +#define DBG_RX_FRAGS 0x00002000 /* rx data fragment handling */ +#define DBG_DEVSTART 0x00004000 /* fw download, device start */ +#define DBG_URB 0x00008000 /* rx urb status, ... */ +#define DBG_RX_ATMEL_HDR 0x00010000 /* the Atmel specific header of each rx packet */ +#define DBG_PROC_ENTRY 0x00020000 /* procedure entries and exits */ +#define DBG_PM 0x00040000 /* power management settings */ +#define DBG_BSS_MATCH 0x00080000 /* show why a certain bss did not match */ +#define DBG_PARAMS 0x00100000 /* show the configured parameters */ +#define DBG_WAIT_COMPLETE 0x00200000 /* show the wait_completion progress */ +#define DBG_RX_FRAGS_SKB 0x00400000 /* show skb header for incoming rx fragments */ +#define DBG_BSS_TABLE_RM 0x00800000 /* inform on removal of old bss table entries */ +#define DBG_MONITOR_MODE 0x01000000 /* debugs from monitor mode */ +#define DBG_MIB 0x02000000 /* dump all MIBs in startup_device */ +#define DBG_MGMT_TIMER 0x04000000 /* dump mgmt_timer ops */ +#define DBG_WE_EVENTS 0x08000000 /* dump wireless events */ +#define DBG_FW 0x10000000 /* firmware download */ +#define DBG_DFU 0x20000000 /* device firmware upgrade */ + +#define DBG_DEFAULTS 0 +extern int debug; + +/* Use our own dbg macro */ +#undef dbg +#define dbg(bits, format, arg...) \ + do { \ + if (debug & (bits)) \ + printk(KERN_DEBUG __FILE__ ": " format "\n" , ## arg);\ + } while (0) + #endif /* _AT76C503_H */ |