On Tuesday 28 February 2006 18:30, Carlos Martin wrote:
> Hi,
> 
> There are a couple of differences between this and my previos patch,
> so I'll list them here:
> 
> - Separate the patches properly
> 
> - This patchset uses the default generic functions and calls the
>   appropiate function using a #define, which should be much clearer
>   and saves us from having to migrate the whole common.c file.
> 
> - We get the proper string for the _debug family of functions.
> 
> - acx_ops.issue_cmd takes different functions depending on the debug
>   level so we save a few bytes we weren't going to use otherwise. This
>   also saves a function call.
> 
> - Denis' sense of style has been applied, though some of it doesn't
>   apply anymore and some came from me trying to do too many things at
>   once which screwed up the format. I hope these are alright.

Thanks, this is nice!

I tried to build it and made some minor fixes to make it work:

* Makefile in wireless/* also needs updating.

* acx_func.h should not have acxpci_ and acxusb_ functions anymore.
  Removed some of them and declared them static in pci/usb.c
  (but many are left. I wonder how it is going to work at insmod time?)

* Moved acx100/111_s_create_dma_regions to acx_func.h
  Keeping extern function decls in .c files is bad thing to do.

* Were missing:
  adev->ops.get_txbuf = acxpci_l_get_txbuf;
  adev->ops.tx_data = acxpci_l_tx_data;

* fixed adev->ops.alloc_tx = ... indentation (should be tab, not 7 spaces).
  Ran entire thing thru scripts/fix_ws.sh

Regarding acxpci_ functions in acx_func.h.
For example, acx111pci_ioctl_info() is called here from ioctl.c:

static int
acx111_ioctl_info(
        struct net_device *ndev,
        struct iw_request_info *info,
        union iwreq_data *wrqu,
        char *extra)
{
        struct iw_param *vwrq = &wrqu->param;
        if (!IS_PCI(ndev2adev(ndev)))
                return OK;
        return acx111pci_ioctl_info(ndev, info, vwrq, extra);
}

This will reside in acx-common module. But acx111pci_ioctl_info() itself
is in pci.c and will be in acx-pci module and it has no EXPORT decl.
IIRC it won't work. modprobe will fail.

Please find my fixes attached.

I'm sooo lazy I only compile tested it.
--
vda
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/Makefile wireless-2.6.git.acx/drivers/net/wireless/Makefile
--- wireless-2.6.git.cmn/drivers/net/wireless/Makefile	Wed Mar  1 07:56:14 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/Makefile	Wed Mar  1 12:01:19 2006
@@ -37,7 +37,8 @@ obj-$(CONFIG_PRISM54_USB)	+= prism54usb/
 
 obj-$(CONFIG_HOSTAP)		+= hostap/
 obj-$(CONFIG_BCM43XX)		+= bcm43xx/
-obj-$(CONFIG_ACX)		+= tiacx/
+obj-$(CONFIG_ACX_PCI)		+= tiacx/
+obj-$(CONFIG_ACX_USB)		+= tiacx/
 
 # 16-bit wireless PCMCIA client drivers
 obj-$(CONFIG_PCMCIA_RAYCS)	+= ray_cs.o
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/tiacx/Changelog wireless-2.6.git.acx/drivers/net/wireless/tiacx/Changelog
--- wireless-2.6.git.cmn/drivers/net/wireless/tiacx/Changelog	Sat Feb 11 14:32:12 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/tiacx/Changelog	Wed Mar  1 12:05:04 2006
@@ -79,7 +79,7 @@ TODO: from Efthym <[EMAIL PROTECTED]>:
 * Get rid of circular list of adev's
 
 [20060208]
-* Change the acx_ioctl_{get,set}_encode functions to use 
+* Change the acx_ioctl_{get,set}_encode functions to use
   the 80211 stack in the kernel, so they become mere wrappers.
 
 [20060206]
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/tiacx/Makefile wireless-2.6.git.acx/drivers/net/wireless/tiacx/Makefile
--- wireless-2.6.git.cmn/drivers/net/wireless/tiacx/Makefile	Wed Mar  1 11:07:19 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/tiacx/Makefile	Wed Mar  1 12:05:04 2006
@@ -1,13 +1,6 @@
-acx-common-y += wlan.o ioctl.o common.o
-acx-usb-y += usb.o
-acx-pci-y += pci.o
+acx-common-y := wlan.o ioctl.o common.o
+acx-usb-y := usb.o
+acx-pci-y := pci.o
 
 obj-$(CONFIG_ACX_PCI) += acx-common.o acx-pci.o
 obj-$(CONFIG_ACX_USB) += acx-common.o acx-usb.o
-
-#obj-$(CONFIG_ACX) += acx.o
-#
-#acx-obj-$(CONFIG_ACX_PCI) += pci.o
-#acx-obj-$(CONFIG_ACX_USB) += usb.o
-#
-#acx-objs := wlan.o ioctl.o common.o $(acx-obj-y)
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/tiacx/README wireless-2.6.git.acx/drivers/net/wireless/tiacx/README
--- wireless-2.6.git.cmn/drivers/net/wireless/tiacx/README	Fri Feb  3 14:23:11 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/tiacx/README	Wed Mar  1 12:27:48 2006
@@ -10,7 +10,7 @@ grep for '//SM' to see the code added to
 Contact:
 netdev@vger.kernel.org
 [EMAIL PROTECTED]
[EMAIL PROTECTED] 
[EMAIL PROTECTED]
 
 Bug reports:
 
@@ -50,12 +50,12 @@ You need to have git and cogito installe
 cg-clone rsync://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git wireless-2.6.git
 cd wireless-2.6.git
 # Get a branch
-cg-branch-add r-softmac-all 'rsync://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git#softmac-all'
-cg-fetch r-softmac-all
+cg-branch-add r-softmac 'rsync://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git#softmac'
+cg-fetch r-softmac
 # Switch to it (make it current)
-git-checkout r-softmac-all
+git-checkout r-softmac
 # Pull updates from remote master tree
-cg-update r-softmac-all
+cg-update r-softmac
 
 You will have a complete Linux kernel in wireless-2.6.git/.
 Replace drivers/net/wireless/tiacx/* by files from this tarball.
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/tiacx/acx_func.h wireless-2.6.git.acx/drivers/net/wireless/tiacx/acx_func.h
--- wireless-2.6.git.cmn/drivers/net/wireless/tiacx/acx_func.h	Wed Mar  1 11:07:20 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/tiacx/acx_func.h	Wed Mar  1 12:31:08 2006
@@ -417,8 +417,6 @@ void acx_set_status(acx_device_t *adev, 
 #if ACX_DEBUG
 
 /* We want to log cmd names */
-int acxpci_s_issue_cmd_timeo_debug(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout, const char* cmdstr);
-int acxusb_s_issue_cmd_timeo_debug(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout, const char* cmdstr);
 
 #define acx_s_issue_cmd(adev, cmd, param, len) \
 	(adev)->ops.issue_cmd(adev, cmd, param, len, ACX_CMD_TIMEOUT_DEFAULT, #cmd)
@@ -429,15 +427,13 @@ int acxusb_s_issue_cmd_timeo_debug(acx_d
 int acx_s_configure_debug(acx_device_t *adev, void *pdr, int type, const char* str);
 #define acx_s_configure(adev,pdr,type) \
 	acx_s_configure_debug(adev,pdr,type,#type)
+
 int acx_s_interrogate_debug(acx_device_t *adev, void *pdr, int type, const char* str);
 #define acx_s_interrogate(adev,pdr,type) \
 	acx_s_interrogate_debug(adev,pdr,type,#type)
 
 #else
 
-int acxpci_s_issue_cmd_timeo(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout);
-int acxusb_s_issue_cmd_timeo(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout);
-
 #define acx_s_issue_cmd(adev, cmd, param, len) \
 	(adev)->ops.issue_cmd(adev, cmd, param, len, ACX_CMD_TIMEOUT_DEFAULT)
 
@@ -492,39 +488,21 @@ int acxpci_s_upload_radio(acx_device_t *
 /***********************************************************************
 ** Unsorted yet :)
 */
-int acxpci_s_read_phy_reg(acx_device_t *adev, u32 reg, u8 *charbuf);
-int acxusb_s_read_phy_reg(acx_device_t *adev, u32 reg, u8 *charbuf);
-
 #define acx_s_read_phy_reg(adev, reg, charbuf) \
 	(adev)->ops.read_phy_reg(adev, reg, charbuf)
 
-int acxpci_s_write_phy_reg(acx_device_t *adev, u32 reg, u8 value);
-int acxusb_s_write_phy_reg(acx_device_t *adev, u32 reg, u8 value);
-
 #define acx_s_write_phy_reg(adev, reg, value) \
 	(adev)->ops.write_phy_reg(adev, reg, value)
 
-tx_t* acxpci_l_alloc_tx(acx_device_t *adev);
-tx_t* acxusb_l_alloc_tx(acx_device_t *adev);
-
 #define acx_l_alloc_tx(adev) \
 	(adev)->ops.alloc_tx(adev)
 
-void acxusb_l_dealloc_tx(tx_t *tx_opaque);
-void acxpci_l_dealloc_tx(tx_t *tx_opaque);
-
 #define acx_l_dealloc_tx(adev, tx_opaque) \
 	(adev)->ops.dealloc_tx(tx_opaque)
 
-void* acxpci_l_get_txbuf(acx_device_t *adev, tx_t *tx_opaque);
-void* acxusb_l_get_txbuf(acx_device_t *adev, tx_t *tx_opaque);
-
 #define acx_l_get_txbuf(adev, tx_opaque) \
 	(adev)->ops.get_txbuf(adev, tx_opaque)
 
-void acxpci_l_tx_data(acx_device_t *adev, tx_t *tx_opaque, int len);
-void acxusb_l_tx_data(acx_device_t *adev, tx_t *tx_opaque, int len);
-
 #define acx_l_tx_data(adev, tx_opaque, len) \
 	(adev)->ops.tx_data(adev, tx_opaque, len)
 
@@ -603,6 +581,9 @@ void acx_display_hardware_details(acx_de
 int acx_e_change_mtu(struct net_device *ndev, int mtu);
 struct net_device_stats* acx_e_get_stats(struct net_device *ndev);
 struct iw_statistics* acx_e_get_wireless_stats(struct net_device *ndev);
+
+int acx100_s_create_dma_regions(acx_device_t *);
+int acx111_s_create_dma_regions(acx_device_t *);
 
 int __init acxpci_e_init_module(void);
 int __init acxusb_e_init_module(void);
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/tiacx/common.c wireless-2.6.git.acx/drivers/net/wireless/tiacx/common.c
--- wireless-2.6.git.cmn/drivers/net/wireless/tiacx/common.c	Wed Mar  1 11:07:20 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/tiacx/common.c	Wed Mar  1 12:31:34 2006
@@ -1015,12 +1015,11 @@ acx111_ie_len_dot11[] = {
 #if !ACX_DEBUG
 int
 acx_s_configure(acx_device_t *adev, void *pdr, int type)
-{
 #else
 int
 acx_s_configure_debug(acx_device_t *adev, void *pdr, int type, const char* typestr)
-{
 #endif
+{
 	u16 len;
 	int res;
 
@@ -1053,13 +1052,12 @@ acx_s_configure_debug(acx_device_t *adev
 #if !ACX_DEBUG
 int
 acx_s_interrogate(acx_device_t *adev, void *pdr, int type)
-{
 #else
 int
 acx_s_interrogate_debug(acx_device_t *adev, void *pdr, int type,
 		const char* typestr)
-{
 #endif
+{
 	u16 len;
 	int res;
 
@@ -1311,7 +1309,7 @@ acx_s_proc_diag_output(char *buf, acx_de
 		st -= 2*sizeof(u32);
 
 		/* our parsing doesn't quite match this firmware yet,
-	 	 * log failure */
+		 * log failure */
 		if (st > st_end)
 			goto fw_stats_fail;
 		temp1 = temp2 = 999999999;
@@ -1368,7 +1366,7 @@ acx_s_proc_diag_output(char *buf, acx_de
 	irq = (fw_stats_irq_t *)st;
 	partlen = sizeof(fw_stats_irq_t);
 	st += partlen;
-	
+
 	if (st > st_end)
 		goto fw_stats_fail;
 
@@ -1408,7 +1406,7 @@ acx_s_proc_diag_output(char *buf, acx_de
 	wep = (fw_stats_wep_t *)st;
 	partlen = sizeof(fw_stats_wep_t);
 	st += partlen;
-	
+
 	if (
 	    (IS_PCI(adev) && IS_ACX100(adev))
 	||  (IS_USB(adev) && IS_ACX100(adev))
@@ -1442,7 +1440,7 @@ acx_s_proc_diag_output(char *buf, acx_de
 		temp2);
 
 	part_str = "power";
-	
+
 	if (st == st_end)
 		goto fw_stats_end;
 
@@ -1470,7 +1468,7 @@ acx_s_proc_diag_output(char *buf, acx_de
 		pwr->no_lppd_matching_frame);
 
 	part_str = "MIC";
-	
+
 	if (st == st_end)
 		goto fw_stats_end;
 
@@ -1487,9 +1485,9 @@ acx_s_proc_diag_output(char *buf, acx_de
 		part_str,
 		mic->mic_rx_pkts,
 		mic->mic_calc_fail);
-	
+
 	part_str = "AES";
-	
+
 	if (st == st_end)
 		goto fw_stats_end;
 
@@ -1514,7 +1512,7 @@ acx_s_proc_diag_output(char *buf, acx_de
 		aes->aes_dec_irq);
 
 	part_str = "event";
-	
+
 	if (st == st_end)
 		goto fw_stats_end;
 
@@ -1557,7 +1555,7 @@ fw_stats_bigger:
 	for (; st < st_end; st += 4)
 		p += sprintf(p,
 			"UNKN%3d: %u\n", (int)st - (int)fw_stats, *(u32 *)st);
-	
+
 fw_stats_end:
 	kfree(fw_stats);
 
@@ -2151,7 +2149,7 @@ bad:
 ** Note that this fn messes up heavily with hardware, but we cannot
 ** lock it (we need to sleep). Not a problem since IRQs can't happen
 */
-static int
+int
 acx100_s_create_dma_regions(acx_device_t *adev)
 {
 	acx100_ie_queueconfig_t queueconf;
@@ -2245,7 +2243,7 @@ EXPORT_SYMBOL_GPL(acx100_s_create_dma_re
 */
 #define ACX111_PERCENT(percent) ((percent)/5)
 
-static int
+int
 acx111_s_create_dma_regions(acx_device_t *adev)
 {
 	struct acx111_ie_memoryconfig memconf;
@@ -3042,7 +3040,7 @@ _TODO_ieee80211_rx_any(struct ieee80211_
 
 	if ((fc & IEEE80211_FCTL_VERS) != 0)
 		return -EINVAL;
-		
+
 	switch (fc & IEEE80211_FCTL_FTYPE) {
 	case IEEE80211_FTYPE_MGMT:
 		ieee80211_rx_mgt(ieee, hdr, stats);
@@ -3166,12 +3164,12 @@ acx_l_softmac_process_rxbuf(acx_device_t
 
 	memset(&stats, 0, sizeof(stats));
 	stats.mac_time = le16_to_cpu(rxbuf->time);
-	//stats.rssi = 
+	//stats.rssi =
 	stats.signal = rxbuf->phy_snr;
 	stats.noise = rxbuf->phy_level;
 	stats.rate = rxbuf->phy_plcp_signal / 5;
 	stats.received_channel = adev->channel;
-	//stats.control = 
+	//stats.control =
 	stats.mask = 0
 		| IEEE80211_STATMASK_SIGNAL
 		| IEEE80211_STATMASK_NOISE
@@ -3452,7 +3450,7 @@ acx_i_ieee80211_start_xmit(struct ieee80
 
 	acx_lock(adev, flags);
 
-        for (i = 0; i < txb->nr_frags; i++) {
+	for (i = 0; i < txb->nr_frags; i++) {
 		tx_t *tx;
 		void *txbuf;
 		struct sk_buff *skb = txb->fragments[i];
@@ -3475,7 +3473,7 @@ acx_i_ieee80211_start_xmit(struct ieee80
 		//ndev->trans_start = jiffies;
 		//adev->stats.tx_packets++;
 		//adev->stats.tx_bytes += skb->len;
-        }
+	}
 	rc = 0;
 
 end:
@@ -7492,7 +7490,7 @@ acx_e_ieee80211_set_security(struct net_
 			adev->ieee->sec.flags |= SEC_ACTIVE_KEY;
 		} else
 			adev->ieee->sec.flags &= ~SEC_ACTIVE_KEY;
-		
+
 	} else
 		adev->ieee->sec.flags &= ~SEC_ACTIVE_KEY;
 
@@ -7519,7 +7517,7 @@ acx_e_ieee80211_set_security(struct net_
 		adev->ieee->sec.flags |= SEC_LEVEL;
 		SET_BIT(adev->set_mask, GETSET_WEP);
 	}
-	
+
 	acx_unlock(adev, flags);
 	acx_sem_unlock(adev);
 
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/tiacx/pci.c wireless-2.6.git.acx/drivers/net/wireless/tiacx/pci.c
--- wireless-2.6.git.cmn/drivers/net/wireless/tiacx/pci.c	Wed Mar  1 11:07:20 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/tiacx/pci.c	Wed Mar  1 12:05:04 2006
@@ -105,8 +105,17 @@ static int acxpci_e_close(struct net_dev
 static void acxpci_s_up(struct net_device *ndev);
 static void acxpci_s_down(struct net_device *ndev);
 
-extern int acx100_s_create_dma_regions(acx_device_t *);
-extern int acx111_s_create_dma_regions(acx_device_t *);
+#if ACX_DEBUG
+static int acxpci_s_issue_cmd_timeo_debug(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout, const char* cmdstr);
+#else
+static int acxpci_s_issue_cmd_timeo(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout);
+#endif
+static int acxpci_s_read_phy_reg(acx_device_t *adev, u32 reg, u8 *charbuf);
+static int acxpci_s_write_phy_reg(acx_device_t *adev, u32 reg, u8 value);
+static tx_t* acxpci_l_alloc_tx(acx_device_t *adev);
+static void acxpci_l_dealloc_tx(tx_t *tx_opaque);
+static void* acxpci_l_get_txbuf(acx_device_t *adev, tx_t *tx_opaque);
+static void acxpci_l_tx_data(acx_device_t *adev, tx_t *tx_opaque, int len);
 
 #ifdef MODULE_LICENSE
 MODULE_LICENSE("Dual MPL/GPL");
@@ -418,7 +427,7 @@ end:
 ** Messing with rx/tx disabling and enabling here
 ** (write_reg32(adev, IO_ACX_ENABLE, 0b000000xx)) kills traffic
 */
-int
+static int
 acxpci_s_read_phy_reg(acx_device_t *adev, u32 reg, u8 *charbuf)
 {
 	int result = NOT_OK;
@@ -459,7 +468,7 @@ fail:
 
 /***********************************************************************
 */
-int
+static int
 acxpci_s_write_phy_reg(acx_device_t *adev, u32 reg, u8 value)
 {
 	FN_ENTER;
@@ -1013,8 +1022,8 @@ end:
 #undef FUNC
 #define FUNC "issue_cmd"
 
+static int
 #if !ACX_DEBUG
-int
 acxpci_s_issue_cmd_timeo(
 	acx_device_t *adev,
 	unsigned int cmd,
@@ -1023,7 +1032,6 @@ acxpci_s_issue_cmd_timeo(
 	unsigned cmd_timeout)
 {
 #else
-int
 acxpci_s_issue_cmd_timeo_debug(
 	acx_device_t *adev,
 	unsigned cmd,
@@ -1602,22 +1610,24 @@ acxpci_e_probe(struct pci_dev *pdev, con
 	adev->ieee->sec.enabled = 0;
 	adev->ieee->sec.auth_mode = WLAN_AUTH_OPEN;
 
+	if (IS_ACX100(adev)) {
+		adev->ops.create_dma_regions = acx100_s_create_dma_regions;
+	} else {
+		adev->ops.create_dma_regions = acx111_s_create_dma_regions;
+	}
+	adev->ops.delete_dma_regions = acxpci_s_delete_dma_regions;
 #if ACX_DEBUG
-       adev->ops.issue_cmd = acxpci_s_issue_cmd_timeo_debug;
+	adev->ops.issue_cmd = acxpci_s_issue_cmd_timeo_debug;
 #else
-       adev->ops.issue_cmd  = acxpci_s_issue_cmd_timeo;
+	adev->ops.issue_cmd  = acxpci_s_issue_cmd_timeo;
 #endif /* ACX_DEBUG */
-       adev->ops.alloc_tx = acxpci_l_alloc_tx;
-       adev->ops.dealloc_tx = acxpci_l_dealloc_tx;
-       adev->ops.delete_dma_regions = acxpci_s_delete_dma_regions;
-       adev->ops.write_phy_reg = acxpci_s_write_phy_reg;
-       adev->ops.read_phy_reg = acxpci_s_read_phy_reg;
-
-       if (IS_ACX100(adev)) {
-	       adev->ops.create_dma_regions = acx100_s_create_dma_regions;
-       } else {
-	       adev->ops.create_dma_regions = acx111_s_create_dma_regions;
-       }
+	adev->ops.alloc_tx = acxpci_l_alloc_tx;
+	adev->ops.dealloc_tx = acxpci_l_dealloc_tx;
+	adev->ops.get_txbuf = acxpci_l_get_txbuf;
+	adev->ops.tx_data = acxpci_l_tx_data;
+	adev->ops.write_phy_reg = acxpci_s_write_phy_reg;
+	adev->ops.read_phy_reg = acxpci_s_read_phy_reg;
+
 #ifdef NONESSENTIAL_FEATURES
 	acx_show_card_eeprom_id(adev);
 #endif /* NONESSENTIAL_FEATURES */
@@ -3025,7 +3035,7 @@ acx100pci_ioctl_set_phy_amp_bias(
 ** after figuring out how many we need and whether we still have
 ** sufficiently many.
 */
-tx_t*
+static tx_t*
 acxpci_l_alloc_tx(acx_device_t *adev)
 {
 	struct txdesc *txdesc;
@@ -3085,7 +3095,7 @@ acxpci_l_dealloc_tx(tx_t *tx_opaque)
 
 /***********************************************************************
 */
-void*
+static void*
 acxpci_l_get_txbuf(acx_device_t *adev, tx_t* tx_opaque)
 {
 	return get_txhostdesc(adev, (txdesc_t*)tx_opaque)->data;
@@ -3102,7 +3112,7 @@ acxpci_l_get_txbuf(acx_device_t *adev, t
 ** pre-allocated tx descrs, properly setting up transfer data and
 ** CTL_xxx flags according to fragment number.
 */
-void
+static void
 acxpci_l_tx_data(acx_device_t *adev, tx_t* tx_opaque, int len)
 {
 	txdesc_t *txdesc = (txdesc_t*)tx_opaque;
diff -urp wireless-2.6.git.cmn/drivers/net/wireless/tiacx/usb.c wireless-2.6.git.acx/drivers/net/wireless/tiacx/usb.c
--- wireless-2.6.git.cmn/drivers/net/wireless/tiacx/usb.c	Wed Mar  1 11:07:20 2006
+++ wireless-2.6.git.acx/drivers/net/wireless/tiacx/usb.c	Wed Mar  1 12:05:04 2006
@@ -123,7 +123,17 @@ static void acxusb_l_poll_rx(acx_device_
 
 static void acxusb_i_tx_timeout(struct net_device *);
 
-extern int acx100_s_create_dma_regions(acx_device_t *);
+#if ACX_DEBUG
+static int acxusb_s_issue_cmd_timeo_debug(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout, const char* cmdstr);
+#else
+static int acxusb_s_issue_cmd_timeo(acx_device_t *adev, unsigned cmd, void *param, unsigned len, unsigned timeout);
+#endif
+static int acxusb_s_read_phy_reg(acx_device_t *adev, u32 reg, u8 *charbuf);
+static int acxusb_s_write_phy_reg(acx_device_t *adev, u32 reg, u8 value);
+static tx_t* acxusb_l_alloc_tx(acx_device_t *adev);
+static void acxusb_l_dealloc_tx(tx_t *tx_opaque);
+static void* acxusb_l_get_txbuf(acx_device_t *adev, tx_t *tx_opaque);
+static void acxusb_l_tx_data(acx_device_t *adev, tx_t *tx_opaque, int len);
 
 /* static void dump_device(struct usb_device *); */
 /* static void dump_device_descriptor(struct usb_device_descriptor *); */
@@ -222,7 +232,7 @@ acxusb_unlink_urb(struct urb* urb)
 /***********************************************************************
 ** acxusb_s_read_phy_reg
 */
-int
+static int
 acxusb_s_read_phy_reg(acx_device_t *adev, u32 reg, u8 *charbuf)
 {
 	/* mem_read_write_t mem; */
@@ -247,7 +257,7 @@ acxusb_s_read_phy_reg(acx_device_t *adev
 
 /***********************************************************************
 */
-int
+static int
 acxusb_s_write_phy_reg(acx_device_t *adev, u32 reg, u8 value)
 {
 	mem_read_write_t mem;
@@ -281,17 +291,15 @@ acxusb_s_write_phy_reg(acx_device_t *ade
 #undef FUNC
 #define FUNC "issue_cmd"
 
+static int
 #if !ACX_DEBUG
-int
 acxusb_s_issue_cmd_timeo(
 	acx_device_t *adev,
 	unsigned cmd,
 	void *buffer,
 	unsigned buflen,
 	unsigned timeout)
-{
 #else
-int
 acxusb_s_issue_cmd_timeo_debug(
 	acx_device_t *adev,
 	unsigned cmd,
@@ -299,8 +307,8 @@ acxusb_s_issue_cmd_timeo_debug(
 	unsigned buflen,
 	unsigned timeout,
 	const char* cmdstr)
-{
 #endif
+{
 	/* USB ignores timeout param */
 
 	struct usb_device *usbdev;
@@ -898,17 +906,19 @@ acxusb_e_probe(struct usb_interface *int
 	adev->ieee->sec.encrypt = 0;
 	adev->ieee->sec.auth_mode = WLAN_AUTH_OPEN;
 
+	adev->ops.create_dma_regions = acx100_s_create_dma_regions;
+	adev->ops.delete_dma_regions = acxusb_s_delete_dma_regions;
 #if ACX_DEBUG
 	adev->ops.issue_cmd = acxusb_s_issue_cmd_timeo_debug;
 #else
-       adev->ops.issue_cmd  = acxusb_s_issue_cmd_timeo;
+	adev->ops.issue_cmd  = acxusb_s_issue_cmd_timeo;
 #endif /* ACX_DEBUG */
-       adev->ops.alloc_tx = acxusb_l_alloc_tx;
-       adev->ops.dealloc_tx = acxusb_l_dealloc_tx;
-       adev->ops.delete_dma_regions = acxusb_s_delete_dma_regions;
-       adev->ops.write_phy_reg = acxusb_s_write_phy_reg;
-       adev->ops.read_phy_reg = acxusb_s_read_phy_reg;
-       adev->ops.create_dma_regions = acx100_s_create_dma_regions;
+	adev->ops.alloc_tx = acxusb_l_alloc_tx;
+	adev->ops.dealloc_tx = acxusb_l_dealloc_tx;
+	adev->ops.get_txbuf = acxusb_l_get_txbuf;
+	adev->ops.tx_data = acxusb_l_tx_data;
+	adev->ops.write_phy_reg = acxusb_s_write_phy_reg;
+	adev->ops.read_phy_reg = acxusb_s_read_phy_reg;
 
 	/* Check that this is really the hardware we know about.
 	** If not sure, at least notify the user that he
@@ -1610,7 +1620,7 @@ end_unlock:
 ** acxusb_l_alloc_tx
 ** Actually returns a usb_tx_t* ptr
 */
-tx_t*
+static tx_t*
 acxusb_l_alloc_tx(acx_device_t *adev)
 {
 	usb_tx_t *tx;
@@ -1648,7 +1658,7 @@ end:
 /***************************************************************
 ** Used if alloc_tx()'ed buffer needs to be cancelled without doing tx
 */
-void
+static void
 acxusb_l_dealloc_tx(tx_t *tx_opaque)
 {
 	usb_tx_t* tx = (usb_tx_t*)tx_opaque;
@@ -1658,7 +1668,7 @@ acxusb_l_dealloc_tx(tx_t *tx_opaque)
 
 /***************************************************************
 */
-void*
+static void*
 acxusb_l_get_txbuf(acx_device_t *adev, tx_t* tx_opaque)
 {
 	usb_tx_t* tx = (usb_tx_t*)tx_opaque;
@@ -1672,7 +1682,7 @@ acxusb_l_get_txbuf(acx_device_t *adev, t
 ** Can be called from IRQ (rx -> (AP bridging or mgmt response) -> tx).
 ** Can be called from acx_i_start_xmit (data frames from net core).
 */
-void
+static void
 acxusb_l_tx_data(acx_device_t *adev, tx_t* tx_opaque, int wlanpkt_len)
 {
 	struct usb_device *usbdev;

Reply via email to