Thread: [zd1211-devs] unsubscribe
Status: Beta
Brought to you by:
mayne
From: Constantine S. <co...@li...> - 2008-03-02 22:55:28
|
On Sun, Mar 2, 2008 at 8:51 PM, <zd1...@li...> wrote: > Send Zd1211-devs mailing list submissions to > zd1...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/zd1211-devs > or, via email, send a message with subject or body 'help' to > zd1...@li... > > You can reach the person managing the list at > zd1...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Zd1211-devs digest..." > > > Today's Topics: > > 1. AP Loss Issue in verdor driver version 2.22. (Nazim Khan) > 2. [PATCH v2] zd1211rw: debugfs access to internal device > registers (Javier Cardona) > 3. [PATCH] zd1211rw: Fixed incorrect constant name. (Javier Cardona) > 4. Re: ZDOFW (Daniel Drake) > 5. AP Loss Issue in vendor driver version 2.22. (Nazim Khan) > 6. zd1211 usb hardware crash. (Fernando Toledo) > 7. Support for RF UW2453_RF 0x9 in zd1211rw (Fredrik Wendt) > 8. Re: Support for RF UW2453_RF 0x9 in zd1211rw (Summerrj) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 6 Feb 2008 11:03:51 +0530 > From: "Nazim Khan" <naz...@gm...> > Subject: [zd1211-devs] AP Loss Issue in verdor driver version 2.22. > To: zd1...@li... > Message-ID: > <ef9...@ma...> > Content-Type: text/plain; charset=ISO-8859-1 > > Hi All, > > The Vendor driver 2.22 is working great for me on my ARM platform. > But sometimes under stress I see that it gets in to AP Loss issue > and unfortunately it does not recover from this situation. > Unless I do unload of the driver and load again. > > Turning OFF/ON Access Point also did not help me in this situation. > Any idea as to what could be the reason? > > Nazim > > > > ------------------------------ > > Message: 2 > Date: Mon, 11 Feb 2008 14:03:16 -0800 > From: Javier Cardona <ja...@co...> > Subject: [zd1211-devs] [PATCH v2] zd1211rw: debugfs access to internal > device registers > To: zd1...@li... > Message-ID: <47b...@mx...> > > (sent previously to linux-wireless. I just noticed that there's a list > specific for this driver, sorry) > > Expose the internal CR registers via debugfs, useful for driver development. > For example, to change the tx power for 54 Mbps frames (CR53): > > <snip> > $ cd debugfs/ieee80211/phy0/registers > $ echo "53 3f" > wrcr > $ echo "11 4" > wrcr > $ echo "11 0" > wrcr > $ echo 53 > rdcr; cat rdcr; > CR53 [0x90d4] = 0x3f > </snip> > > Corrected inaccurate comment: UNLOCK_PHY_REGS needs to be unset also for read > access. > > Changes from v1: > > * use the cfg80211 provided per-wiphy debugfs dir (thanks Johannes!) > > Signed-off-by: Javier Cardona <ja...@co...> > --- > drivers/net/wireless/zd1211rw/Makefile | 1 + > drivers/net/wireless/zd1211rw/zd_chip.h | 5 +- > drivers/net/wireless/zd1211rw/zd_debugfs.c | 187 ++++++++++++++++++++++++++++ > drivers/net/wireless/zd1211rw/zd_debugfs.h | 7 + > drivers/net/wireless/zd1211rw/zd_usb.c | 3 + > 5 files changed, 202 insertions(+), 1 deletions(-) > create mode 100644 drivers/net/wireless/zd1211rw/zd_debugfs.c > create mode 100644 drivers/net/wireless/zd1211rw/zd_debugfs.h > > diff --git a/drivers/net/wireless/zd1211rw/Makefile b/drivers/net/wireless/zd1211rw/Makefile > index cc36126..6b83bbd 100644 > --- a/drivers/net/wireless/zd1211rw/Makefile > +++ b/drivers/net/wireless/zd1211rw/Makefile > @@ -7,5 +7,6 @@ zd1211rw-objs := zd_chip.o zd_ieee80211.o zd_mac.o \ > > ifeq ($(CONFIG_ZD1211RW_DEBUG),y) > EXTRA_CFLAGS += -DDEBUG > +zd1211rw-objs += zd_debugfs.o > endif > > diff --git a/drivers/net/wireless/zd1211rw/zd_chip.h b/drivers/net/wireless/zd1211rw/zd_chip.h > index e44b9d6..5cffbd6 100644 > --- a/drivers/net/wireless/zd1211rw/zd_chip.h > +++ b/drivers/net/wireless/zd1211rw/zd_chip.h > @@ -504,7 +504,7 @@ enum { > #define CR_ZD1211_RETRY_MAX CTL_REG(0x067C) > > #define CR_REG1 CTL_REG(0x0680) > -/* Setting the bit UNLOCK_PHY_REGS disallows the write access to physical > +/* Setting the bit UNLOCK_PHY_REGS disallows access to physical > * registers, so one could argue it is a LOCK bit. But calling it > * LOCK_PHY_REGS makes it confusing. > */ > @@ -750,6 +750,9 @@ struct zd_chip { > patch_cck_gain:1, patch_cr157:1, patch_6m_band_edge:1, > new_phy_layout:1, al2230s_bit:1, > supports_tx_led:1; > + struct dentry *debugfs_dir; > + struct dentry *debugfs_files[4]; > + u32 debugfs_cr; > }; > > static inline struct zd_chip *zd_usb_to_chip(struct zd_usb *usb) > diff --git a/drivers/net/wireless/zd1211rw/zd_debugfs.c b/drivers/net/wireless/zd1211rw/zd_debugfs.c > new file mode 100644 > index 0000000..b3ff4cb > --- /dev/null > +++ b/drivers/net/wireless/zd1211rw/zd_debugfs.c > @@ -0,0 +1,187 @@ > +/* ZD1211 USB-WLAN driver for Linux > + * > + * Copyright (C) 2005-2007 Ulrich Kunitz <ku...@de...> > + * Copyright (C) 2006-2007 Daniel Drake <ds...@ge...> > + * Copyright (C) 2006-2007 Michael Wu <fla...@so...> > + * Copyright (c) 2007 Luis R. Rodriguez <mc...@wi...> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > + > +/* > + * Added CR register access via debugfs > + * Copyright (c) 2008 Javier Cardona <ja...@co...> > + */ > + > +#include <linux/module.h> > +#include <linux/dcache.h> > +#include <linux/debugfs.h> > +#include <linux/delay.h> > +#include <linux/mm.h> > +#include <linux/string.h> > +#include <net/iw_handler.h> > +#include <net/mac80211.h> > + > +#include "zd_chip.h" > + > +static int open_file_generic(struct inode *inode, struct file *file) > +{ > + file->private_data = inode->i_private; > + return 0; > +} > + > +static const size_t len = PAGE_SIZE; > + > +static ssize_t zd_rdcr_read(struct file *file, char __user *userbuf, > + size_t count, loff_t *ppos) > +{ > + struct zd_chip *chip = file->private_data; > + zd_addr_t regaddr; > + u16 val; > + ssize_t pos = 0; > + int ret; > + unsigned long addr = get_zeroed_page(GFP_KERNEL); > + char *buf = (char *)addr; > + > + regaddr = 0xffff & CTL_REG(chip->debugfs_cr << 2); > + val = 0; > + > + mutex_lock(&chip->mutex); > + zd_chip_lock_phy_regs(chip); > + ret = zd_ioread16_locked(chip, &val, regaddr); > + zd_chip_unlock_phy_regs(chip); > + mutex_unlock(&chip->mutex); > + > + if (!ret) > + pos += snprintf(buf+pos, len-pos, "CR%d [0x%x] = 0x%02x\n", > + chip->debugfs_cr, regaddr, val); > + else { > + pos += snprintf(buf+pos, len-pos, "read error CR%d: %d\n", > + chip->debugfs_cr, ret); > + pos += snprintf(buf+pos, len-pos, "is interface up?\n"); > + } > + > + ret = simple_read_from_buffer(userbuf, count, ppos, buf, pos); > + free_page(addr); > + return ret; > +} > + > +static ssize_t zd_rdcr_write(struct file *file, > + const char __user *userbuf, > + size_t count, loff_t *ppos) > +{ > + struct zd_chip *chip = file->private_data; > + ssize_t res, buf_size; > + unsigned long addr = get_zeroed_page(GFP_KERNEL); > + char *buf = (char *)addr; > + > + buf_size = min(count, len - 1); > + if (copy_from_user(buf, userbuf, buf_size)) { > + res = -EFAULT; > + goto out_unlock; > + } > + chip->debugfs_cr = simple_strtoul((char *)buf, NULL, 10); > + res = count; > +out_unlock: > + free_page(addr); > + return res; > +} > + > +static ssize_t zd_wrcr_write(struct file *file, > + const char __user *userbuf, > + size_t count, loff_t *ppos) > +{ > + > + struct zd_chip *chip = file->private_data; > + ssize_t res, buf_size; > + u32 val; > + u16 regaddr; > + unsigned long addr = get_zeroed_page(GFP_KERNEL); > + char *buf = (char *)addr; > + > + buf_size = min(count, len - 1); > + if (copy_from_user(buf, userbuf, buf_size)) { > + res = -EFAULT; > + goto out_unlock; > + } > + res = sscanf(buf, "%d %x", &chip->debugfs_cr, &val); > + if (res != 2) { > + res = -EFAULT; > + goto out_unlock; > + } > + > + regaddr = 0xffff & CTL_REG(chip->debugfs_cr << 2); > + > + mutex_lock(&chip->mutex); > + zd_chip_lock_phy_regs(chip); > + zd_iowrite16_locked(chip, val, regaddr); > + zd_chip_unlock_phy_regs(chip); > + mutex_unlock(&chip->mutex); > + > + res = count; > +out_unlock: > + free_page(addr); > + return res; > +} > + > +#define FOPS(fread, fwrite) { \ > + .owner = THIS_MODULE, \ > + .open = open_file_generic, \ > + .read = (fread), \ > + .write = (fwrite), \ > +} > + > +struct zd_debugfs_files { > + char *name; > + int perm; > + struct file_operations fops; > +}; > + > +/* check the size of chip->debugfs_files array before adding to this */ > +static struct zd_debugfs_files debugfs_files[] = { > + { "rdcr", 0644, FOPS(zd_rdcr_read, zd_rdcr_write), }, > + { "wrcr", 0600, FOPS(NULL, zd_wrcr_write), }, > +}; > + > +void zd_debugfs_init(struct zd_chip *chip, struct wiphy *wiphy) > +{ > + int i; > + struct zd_debugfs_files *files; > + > + chip->debugfs_dir = debugfs_create_dir("registers" , wiphy->debugfsdir); > + if (!chip->debugfs_dir) > + goto exit; > + > + for (i = 0; i < ARRAY_SIZE(debugfs_files); i++) { > + files = &debugfs_files[i]; > + chip->debugfs_files[i] = debugfs_create_file(files->name, > + files->perm, chip->debugfs_dir, chip, > + &files->fops); > + } > +exit: > + return; > +} > +EXPORT_SYMBOL(zd_debugfs_init); > + > +void zd_debugfs_remove(struct zd_chip *chip) > +{ > + int i; > + > + for (i = 0; i < ARRAY_SIZE(debugfs_files); i++) > + debugfs_remove(chip->debugfs_files[i]); > + > + debugfs_remove(chip->debugfs_dir); > +} > +EXPORT_SYMBOL(zd_debugfs_remove); > diff --git a/drivers/net/wireless/zd1211rw/zd_debugfs.h b/drivers/net/wireless/zd1211rw/zd_debugfs.h > new file mode 100644 > index 0000000..2cacf9f > --- /dev/null > +++ b/drivers/net/wireless/zd1211rw/zd_debugfs.h > @@ -0,0 +1,7 @@ > +#ifndef _ZD_DEBUGFS_H_ > +#define _ZD_DEBUGFS_H_ > + > +void zd_debugfs_init(struct zd_chip *chip, struct wiphy *wiphy); > +void zd_debugfs_remove(struct zd_chip *chip); > + > +#endif > diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c > index e34675c..00a24e7 100644 > --- a/drivers/net/wireless/zd1211rw/zd_usb.c > +++ b/drivers/net/wireless/zd1211rw/zd_usb.c > @@ -33,6 +33,7 @@ > #include "zd_def.h" > #include "zd_mac.h" > #include "zd_usb.h" > +#include "zd_debugfs.h" > > static struct usb_device_id usb_ids[] = { > /* ZD1211 */ > @@ -1167,6 +1168,7 @@ static int probe(struct usb_interface *intf, const struct usb_device_id *id) > "couldn't register device. Error number %d\n", r); > goto error; > } > + zd_debugfs_init(&zd_hw_mac(hw)->chip, hw->wiphy); > > dev_dbg_f(&intf->dev, "successful\n"); > dev_info(&intf->dev, "%s\n", wiphy_name(hw->wiphy)); > @@ -1196,6 +1198,7 @@ static void disconnect(struct usb_interface *intf) > > dev_dbg_f(zd_usb_dev(usb), "\n"); > > + zd_debugfs_remove(&mac->chip); > ieee80211_unregister_hw(hw); > > /* Just in case something has gone wrong! */ > -- > 1.5.2.4 > > > > > > > ------------------------------ > > Message: 3 > Date: Fri, 8 Feb 2008 18:41:17 -0800 > From: Javier Cardona <ja...@co...> > Subject: [zd1211-devs] [PATCH] zd1211rw: Fixed incorrect constant > name. > To: zd1...@li... > Message-ID: <47b...@mx...> > > (sent previously to linux-wireless. I just noticed that there's a list > specific for this driver, sorry) > > Trial and error reveals that CR_ZD1211B_TX_PWR_CTL* do not affect the > transmission power. Instead these registers seem to control the contention > windows limits for different QoS access categories. > --- > drivers/net/wireless/zd1211rw/zd_chip.c | 8 ++++---- > drivers/net/wireless/zd1211rw/zd_chip.h | 9 ++++----- > 2 files changed, 8 insertions(+), 9 deletions(-) > > diff --git a/drivers/net/wireless/zd1211rw/zd_chip.c b/drivers/net/wireless/zd1211rw/zd_chip.c > index 66abc4e..0acb5c3 100644 > --- a/drivers/net/wireless/zd1211rw/zd_chip.c > +++ b/drivers/net/wireless/zd1211rw/zd_chip.c > @@ -771,10 +771,10 @@ static int zd1211b_hw_init_hmac(struct zd_chip *chip) > { > static const struct zd_ioreq32 ioreqs[] = { > { CR_ZD1211B_RETRY_MAX, 0x02020202 }, > - { CR_ZD1211B_TX_PWR_CTL4, 0x007f003f }, > - { CR_ZD1211B_TX_PWR_CTL3, 0x007f003f }, > - { CR_ZD1211B_TX_PWR_CTL2, 0x003f001f }, > - { CR_ZD1211B_TX_PWR_CTL1, 0x001f000f }, > + { CR_ZD1211B_CWIN_MAX_MIN_AC0, 0x007f003f }, > + { CR_ZD1211B_CWIN_MAX_MIN_AC1, 0x007f003f }, > + { CR_ZD1211B_CWIN_MAX_MIN_AC2, 0x003f001f }, > + { CR_ZD1211B_CWIN_MAX_MIN_AC3, 0x001f000f }, > { CR_ZD1211B_AIFS_CTL1, 0x00280028 }, > { CR_ZD1211B_AIFS_CTL2, 0x008C003C }, > { CR_ZD1211B_TXOP, 0x01800824 }, > diff --git a/drivers/net/wireless/zd1211rw/zd_chip.h b/drivers/net/wireless/zd1211rw/zd_chip.h > index 5cffbd6..3f44db2 100644 > --- a/drivers/net/wireless/zd1211rw/zd_chip.h > +++ b/drivers/net/wireless/zd1211rw/zd_chip.h > @@ -633,11 +633,10 @@ enum { > #define CR_S_MD CTL_REG(0x0830) > > #define CR_USB_DEBUG_PORT CTL_REG(0x0888) > - > -#define CR_ZD1211B_TX_PWR_CTL1 CTL_REG(0x0b00) > -#define CR_ZD1211B_TX_PWR_CTL2 CTL_REG(0x0b04) > -#define CR_ZD1211B_TX_PWR_CTL3 CTL_REG(0x0b08) > -#define CR_ZD1211B_TX_PWR_CTL4 CTL_REG(0x0b0c) > +#define CR_ZD1211B_CWIN_MAX_MIN_AC0 CTL_REG(0x0b00) > +#define CR_ZD1211B_CWIN_MAX_MIN_AC1 CTL_REG(0x0b04) > +#define CR_ZD1211B_CWIN_MAX_MIN_AC2 CTL_REG(0x0b08) > +#define CR_ZD1211B_CWIN_MAX_MIN_AC3 CTL_REG(0x0b0c) > #define CR_ZD1211B_AIFS_CTL1 CTL_REG(0x0b10) > #define CR_ZD1211B_AIFS_CTL2 CTL_REG(0x0b14) > #define CR_ZD1211B_TXOP CTL_REG(0x0b20) > -- > 1.5.2.4 > > > > > > > ------------------------------ > > Message: 4 > Date: Fri, 15 Feb 2008 20:09:28 +0000 > From: Daniel Drake <ds...@ge...> > Subject: Re: [zd1211-devs] ZDOFW > To: Openschemes <ad...@op...>, zd1211-devs > <zd1...@li...> > Message-ID: <47B...@ge...> > Content-Type: text/plain; charset=US-ASCII; format=flowed > > Openschemes wrote: > > I'm working with your ZDOFW disassembler. What type of input file is > > it expecting? I have raw binary dumps of the ZD1211 (0xEE00) but the > > output is minimal: Less that what I can determine disassembling by > > hand. > > > > Can you shed any light here? Thanks! > > Please send questions to the list. > > zdofw-dis works on the usual firmware distribution that the driver > loads. See the roundtrip target in the makefile for an example. > > Daniel > > > > ------------------------------ > > Message: 5 > Date: Wed, 20 Feb 2008 12:36:10 +0530 > From: "Nazim Khan" <naz...@gm...> > Subject: [zd1211-devs] AP Loss Issue in vendor driver version 2.22. > To: zd1...@li... > Message-ID: > <ef9...@ma...> > Content-Type: text/plain; charset=ISO-8859-1 > > Hi All, > > The Vendor driver 2.22 is working great for me on my ARM platform. > But sometimes under stress I see that it gets in to AP Loss issue > and unfortunately it does not recover from this situation. > Unless I do unload of the driver and load again. > > Any other way to recover from this situation. > > Turning OFF/ON Access Point also did not help me in this situation. > Any idea as to what could be the reason? > > Nazim > > > > ------------------------------ > > Message: 6 > Date: Fri, 22 Feb 2008 23:01:41 -0200 > From: Fernando Toledo <ft...@do...> > Subject: [zd1211-devs] zd1211 usb hardware crash. > To: zd1...@li... > Message-ID: <200...@do...> > Content-Type: text/plain; charset="us-ascii" > > Hi all! =( > my usb zydas was death after crash with the floor. > i see that one capacitor of the board was die. > im search for any info (schemantics) about that component to try to replace > it. > i put some pictures here to help you to identify it. > http://pressenter.com.ar/~ftoledo/zydas_crash/ > > Thanks all > > -- > Dock Sud BBS > http://www.docksud.com.ar > telnet://bbs.docksud.com.ar > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: not available > Type: application/pgp-signature > Size: 189 bytes > Desc: This is a digitally signed message part. > > ------------------------------ > > Message: 7 > Date: Sun, 2 Mar 2008 10:45:20 -0800 (PST) > From: Fredrik Wendt <fr...@we...> > Subject: [zd1211-devs] Support for RF UW2453_RF 0x9 in zd1211rw > To: zd1...@li... > Message-ID: <157...@ta...> > Content-Type: text/plain; charset=UTF-8 > > > Hi. > > Some time ago I bought a USB wlan adapter (two actually) that were supposed > to be supported. As you've realized by now, someone put a new RF chip in and > voila - I'm stuck with ndiswrapper which doesn't work very well. I'm happy > to see that 2.6.24-rc3 has some support for what I'm needing. > > If I could, I'd read up on things and give it a go but it's 7 years since I > wrote my last line of C code and have no knowledge about 802.xxx stuff. > Basically I have two options: > > a) try to find a new adapter that works and but that. I'm guessing some 60? > and two hours of reading, searching and some minutes of praying before it's > plugged in. > > b) put those 60? into someone else's pocket in exchange for a patch (GPL) > that makes makes this adapter usable reliably. Of course I'm willing to lend > that person my two adapters for development, but I recon it's not hardware > access that is the issue here. > > So, I'm looking for guidance. Which path should I chose? If b, who (if > anyone) would be suited to adress the issue and accept the rather small fee > in return? > > I hope I'm not offending anyone. > > Thanks in advance, Fredrik > -- > View this message in context: http://www.nabble.com/Support-for-RF-UW2453_RF-0x9-in-zd1211rw-tp15791394p15791394.html > Sent from the zd1211-devs mailing list archive at Nabble.com. > > > > > ------------------------------ > > Message: 8 > Date: Sun, 2 Mar 2008 10:51:42 -0800 (PST) > From: Summerrj <Rob...@be...> > Subject: Re: [zd1211-devs] Support for RF UW2453_RF 0x9 in zd1211rw > To: zd1...@li... > Message-ID: <157...@ta...> > Content-Type: text/plain; charset=us-ascii > > > > > Fredrik Wendt wrote: > > > > Hi. > > > > Some time ago I bought a USB wlan adapter (two actually) that were > > supposed to be supported. As you've realized by now, someone put a new RF > > chip in and voila - I'm stuck with ndiswrapper which doesn't work very > > well. I'm happy to see that 2.6.24-rc3 has some support for what I'm > > needing. > > > > I've got such a beast working quite happily now, using the whole wireless > tree for 2.6.24-rc3 but linked to kernel 2.6.22. I just had to change a few > lines of code to cope with printing of the mac address to the log. (I'm sure > it's dangerous and not recommended but I couldn't get my graphics card > working properly with 2.6.24) > > What problems are you having with 2.6.24-rc3? > > Rob > > > -- > View this message in context: http://www.nabble.com/Support-for-RF-UW2453_RF-0x9-in-zd1211rw-tp15791394p15791464.html > Sent from the zd1211-devs mailing list archive at Nabble.com. > > > > > ------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > ------------------------------ > > _______________________________________________ > Zd1211-devs mailing list > Zd1...@li... > https://lists.sourceforge.net/lists/listinfo/zd1211-devs > > > End of Zd1211-devs Digest, Vol 22, Issue 1 > ****************************************** > -- Constantine Shulyupin Freelance Embedded Linux Engineer 054-4234440 http://www.linuxdriver.co.il/ |