* [PATCH] mac80211: update mesh information element values
From: Steve deRosier @ 2010-07-09 23:48 UTC (permalink / raw)
To: linux-wireless; +Cc: javier, Steve deRosier
The old values conflicted with ANA approved values. The new values
were chosen to be consistent with those for the ANA request plan
for 802.11s.
The Peer Link IE no longer exists in draft standards, replaced by
the Peer Management IE. Leaving the old definition in was prudent
until mesh code can be changed to match.
Signed-off-by: Steve deRosier <steve@cozybit.com>
---
include/linux/ieee80211.h | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 97b2eae..1ed60b5 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -1142,17 +1142,20 @@ enum ieee80211_eid {
/* 802.11s
*
* All mesh EID numbers are pending IEEE 802.11 ANA approval.
- * The numbers have been incremented from those suggested in
- * 802.11s/D2.0 so that MESH_CONFIG does not conflict with
- * EXT_SUPP_RATES.
+ * The numbers have been taken from ANA request plan for 802.11s
+ *
+ * Note that the Peer Link IE has been replaced with the similar
+ * Peer Management IE. We will keep the former definition until mesh
+ * code is changed to comply with latest 802.11s drafts.
*/
- WLAN_EID_MESH_CONFIG = 51,
- WLAN_EID_MESH_ID = 52,
- WLAN_EID_PEER_LINK = 55,
- WLAN_EID_PREQ = 68,
- WLAN_EID_PREP = 69,
- WLAN_EID_PERR = 70,
- WLAN_EID_RANN = 49, /* compatible with FreeBSD */
+ WLAN_EID_MESH_CONFIG = 113,
+ WLAN_EID_MESH_ID = 114,
+ WLAN_EID_PEER_MGMT = 115,
+ WLAN_EID_PEER_LINK = 55, /* no longer in 802.11s drafts */
+ WLAN_EID_PREQ = 130,
+ WLAN_EID_PREP = 131,
+ WLAN_EID_PERR = 132,
+ WLAN_EID_RANN = 126,
WLAN_EID_PWR_CONSTRAINT = 32,
WLAN_EID_PWR_CAPABILITY = 33,
--
1.7.0
^ permalink raw reply related
* RE: wl1271 firmware
From: Logan Gunthorpe @ 2010-07-10 0:19 UTC (permalink / raw)
To: Luciano Coelho; +Cc: linux-wireless
Hi Everyone,
Luciano Coelho Wrote:
> You need to get the firmware (wl1271-fw.bin) directly from TI or from
> your device manufacturer. I don't have the permission to redistribute
> it. The latest version that we are using is Rev. 6.1.0.0.310 (you can
> check this by running strings on and grepping the binary file).
>
> The NVS file is another story. It contains device-specific calibration
> values and you should probably get those from the device manufacturer.
> There is a common part (which is the INI file in tiwlan's terms), which
> you need to use to create the binary (check wl1271_ini.h for the binary
> file structure). The more problematic part is the device-specific self
> generated calibration. You need to run a specific sequence of commands
> in order to get these values and then apply these values to the correct
> place in the binary file.
>
> Shahar, maybe you could contribute a tool to generate the NVS file in
> the correct format for wl1271? That would be very cool and would help
> lots of people. Please let me know if you have interest and we can
> discuss this in more details.
I too am working with a WL1271 module and have just today got it
connected to an Atmel ARM9 development kit (AT91SAM9G45-EKES). So far it
appears to work but I have been gated by the firmware and NVS file issues.
I have a firmware binary, but it seems to be a newer version
(6.1.3.01.5) than what you are using. Does anyone have any idea if this
version will work? It seems to be the only one available on TI's
website. Additionally, our device manufacturer has been hesitant to
provide any support because we are on an unsupported platform and opted
to use the open source driver. Are there any other ways to obtain an
older version of the firmware?
The NVS file is another problem. TI's website has instructions to use a
cryptic tool that appears to come with their driver package. There is no
source for this tool and for obvious reasons would not work for us.
Anyway, I'd like to help in anyway I can. I've taken a look at the
twilan.ini file and I see the commonality with wl1271_ini.h. It would be
relatively easy to write a tool that parses the INI file and generates
the common part of the NVS file. However, I'd have no idea how to
generate the device specific calibration or the few fields missing from
the INI file.
Thanks,
Logan
P.S. I was not subscribed to this list when the message I'm replying to
was sent. I apologize if I broke the thread. I am subscribed now.
^ permalink raw reply
* 2.6.35-rc4-git4: Reported regressions 2.6.33 -> 2.6.34
From: Rafael J. Wysocki @ 2010-07-10 0:24 UTC (permalink / raw)
To: Linux Kernel Mailing List
Cc: Maciej Rutecki, Andrew Morton, Linus Torvalds,
Kernel Testers List, Network Development, Linux ACPI,
Linux PM List, Linux SCSI List, Linux Wireless List, DRI
[NOTES:
* This list seems to be shrinking at last.
* The bug entries with the NEEDINFO status will be closed next round if the
reporters don't follow up.]
This message contains a list of some post-2.6.33 regressions introduced before
2.6.34, for which there are no fixes in the mainline known to the tracking team.
If any of them have been fixed already, please let us know.
If you know of any other unresolved post-2.6.33 regressions, please let us know
either and we'll add them to the list. Also, please let us know if any
of the entries below are invalid.
Each entry from the list will be sent additionally in an automatic reply to
this message with CCs to the people involved in reporting and handling the
issue.
Listed regressions statistics:
Date Total Pending Unresolved
----------------------------------------
2010-07-10 122 25 24
2010-06-21 114 36 28
2010-06-13 111 40 34
2010-05-09 80 27 24
2010-05-04 76 26 22
2010-04-20 64 35 34
2010-04-07 48 35 33
2010-03-21 15 13 10
Unresolved regressions
----------------------
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16357
Subject : acpi-cpufreq fails to load (No such device)
Submitter : Ambroz Bizjak <ambrop7@gmail.com>
Date : 2010-07-09 09:40 (1 days old)
Handled-By : Thomas Renninger <trenn@suse.de>
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16348
Subject : kswapd continuously active when doing IO
Submitter : Marius Tolzmann <tolzmann@molgen.mpg.de>
Date : 2010-07-07 10:58 (3 days old)
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16320
Subject : iwl3945 crashes, seems to be disconnecting from the PCI bus
Submitter : Satish <eerpini@gmail.com>
Date : 2010-07-01 08:24 (9 days old)
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16318
Subject : macbook pro 5,1 does not boot with acpi
Submitter : <syamajala@gmail.com>
Date : 2010-06-30 13:38 (10 days old)
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16300
Subject : [2.6.34 regression] mplayer gets out of sync due to problems with ALSA
Submitter : Artem S. Tashkinov <t.artem@mailcity.com>
Date : 2010-06-26 20:39 (14 days old)
Handled-By : Takashi Iwai <tiwai@suse.de>
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16270
Subject : Image is a hit-or-a-miss. Often displayed green+purple
Submitter : Vish <drkvi-a@yahoo.com>
Date : 2010-06-22 10:47 (18 days old)
First-Bad-Commit: http://git.kernel.org/linus/acef4a407ed6e0a9ed87a2747be592fe49e64bdd
Handled-By : Jean-Francois Moine <moinejf@free.fr>
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16233
Subject : Fwd: [2.6.34] INFO: task rsync:20019 blocked for more than 120 seconds.
Submitter : Jan De Luyck <mailinglists+linuxkernel_20080830@kcore.org>
Date : 2010-06-14 19:49 (26 days old)
Message-ID : <AANLkTimutyh3WIALv3NIxA8Xt5JtU6tp4EWOnuSqhdyD@mail.gmail.com>
References : http://marc.info/?l=linux-kernel&m=127654498016377&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16207
Subject : Suspend and VT switch hangs since 2.6.34
Submitter : Tino Keitel <tino.keitel+xorg@tikei.de>
Date : 2010-06-09 17:53 (31 days old)
Message-ID : <20100609175356.GA17332@x61.home>
References : http://marc.info/?l=linux-kernel&m=127610606214060&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16206
Subject : PROBLEM: PPP and other serial port related application hangs in kernel space
Submitter : Ales Teska <ales.teska@gmail.com>
Date : 2010-06-09 20:46 (31 days old)
Message-ID : <900E3B14-5B92-4A37-9581-049DB40F4D1C@gmail.com>
References : http://marc.info/?l=linux-kernel&m=127611640301071&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16170
Subject : Leadtek Winfast DTV Dongle (STK7700P based) is not working in 2.6.34
Submitter : <macjariel@gmail.com>
Date : 2010-06-09 11:11 (31 days old)
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16158
Subject : winxp guest hangs after idle for ~30 minutes
Submitter : <brimhall@pobox.com>
Date : 2010-06-08 17:52 (32 days old)
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16139
Subject : wait_even_interruptible_timeout(), signal, spin_lock() = system hang
Submitter : Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Date : 2010-05-28 16:44 (43 days old)
Message-ID : <AANLkTiliRFydAhxH2-Dp1RKuz6sq7vgWIcMvLMi68ftg@mail.gmail.com>
References : http://marc.info/?l=linux-kernel&m=127506510328758&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16137
Subject : Ooops in BTRFS in 2.6.34 / x86_64 when mounting subvolume by name
Submitter : armin walland <a.walland@focusmr.com>
Date : 2010-05-27 12:27 (44 days old)
Message-ID : <201005271428.01239.a.walland@focusmr.com>
References : http://marc.info/?l=linux-kernel&m=127496434110736&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16097
Subject : 2.6.34 on Samsung P460: reset after "Waiting for /dev to be fully populated"
Submitter : Harald Dunkel <harald.dunkel@aixigo.de>
Date : 2010-05-25 9:12 (46 days old)
Message-ID : <4BFB947E.9080509@aixigo.de>
References : http://marc.info/?l=linux-kernel&m=127477877432254&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16082
Subject : host panic on kernel 2.6.34
Submitter : Hao, Xudong <xudong.hao@intel.com>
Date : 2010-05-24 8:23 (47 days old)
Message-ID : <BC00F5384FCFC9499AF06F92E8B78A9E04DCCCE242@shsmsx502.ccr.corp.intel.com>
References : http://marc.info/?l=linux-kernel&m=127468951208864&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16050
Subject : The ibmcam driver is not working
Submitter : Bill Davidsen <davidsen@tmr.com>
Date : 2010-05-25 23:02 (46 days old)
Handled-By : Hans de Goede <hdegoede@redhat.com>
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16035
Subject : Incorrect initial resolution of (external) vga monitor with KMS
Submitter : <andreas.eckstein@gmx.net>
Date : 2010-05-23 12:28 (48 days old)
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15977
Subject : WARNING: at lib/dma-debug.c:866 check_for_stack
Submitter : Zdenek Kabelac <zdenek.kabelac@gmail.com>
Date : 2010-05-14 8:56 (57 days old)
Message-ID : <AANLkTikyx2eaxaiUCFDSfpmn1UG0t2GOxArz6F4wp1LJ@mail.gmail.com>
References : http://marc.info/?l=linux-kernel&m=127382742729825&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15912
Subject : Audio/video sync and crackling issues with snd-hda-intel (AD1981 codec)
Submitter : Øyvind Stegard <oyvinst@ifi.uio.no>
Date : 2010-05-05 16:20 (66 days old)
Handled-By : Jaroslav Kysela <perex@perex.cz>
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15862
Subject : 2.6.34-rc4/5: iwlagn unusable until reload
Submitter : Nico Schottelius <nico-linux-20100427@schottelius.org>
Date : 2010-04-27 7:49 (74 days old)
Message-ID : <20100427074934.GB3261@ikn.schottelius.org>
References : http://marc.info/?l=linux-kernel&m=127235784004839&w=2
Handled-By : Johannes Berg <johannes@sipsolutions.net>
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15805
Subject : reiserfs locking
Submitter : Alexander Beregalov <a.beregalov@gmail.com>
Date : 2010-04-15 21:02 (86 days old)
Message-ID : <t2ka4423d671004151402n7b2dc425mdc9c6bb9640d63fb@mail.gmail.com>
References : http://marc.info/?l=linux-kernel&m=127136535323933&w=2
Handled-By : Frederic Weisbecker <fweisbec@gmail.com>
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15704
Subject : [r8169] WARNING: at net/sched/sch_generic.c
Submitter : Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Date : 2010-03-31 10:21 (101 days old)
Message-ID : <20100331102142.GA3294@swordfish.minsk.epam.com>
References : http://marc.info/?l=linux-kernel&m=127003090406108&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15673
Subject : 2.6.34-rc2: "ima_dec_counts: open/free imbalance"?
Submitter : Thomas Meyer <thomas@m3y3r.de>
Date : 2010-03-28 11:31 (104 days old)
Message-ID : <1269775909.5301.4.camel@localhost.localdomain>
References : http://marc.info/?l=linux-kernel&m=126977593326800&w=2
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15664
Subject : Graphics hang and kernel backtrace when starting Azureus with Compiz enabled
Submitter : Alex Villacis Lasso <avillaci@ceibo.fiec.espol.edu.ec>
Date : 2010-04-01 01:09 (100 days old)
Regressions with patches
------------------------
Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16007
Subject : x86/pci Oops with CONFIG_SND_HDA_INTEL
Submitter : Graham Ramsey <ramsey.graham@ntlworld.com>
Date : 2010-05-19 17:09 (52 days old)
Handled-By : Yinghai Lu <yinghai@kernel.org>
Bjorn Helgaas <bjorn.helgaas@hp.com>
Patch : https://patchwork.kernel.org/patch/105662/
For details, please visit the bug entries and follow the links given in
references.
As you can see, there is a Bugzilla entry for each of the listed regressions.
There also is a Bugzilla entry used for tracking the regressions introduced
between 2.6.33 and 2.6.34, unresolved as well as resolved, at:
http://bugzilla.kernel.org/show_bug.cgi?id=15310
Please let the tracking teak know if there are any Bugzilla entries that
should be added to the list in there.
Thanks!
^ permalink raw reply
* Re: Compat-wireless release for 2010-07-09 is baked
From: Pavel Roskin @ 2010-07-10 0:52 UTC (permalink / raw)
To: Luis R. Rodriguez; +Cc: linux-wireless
In-Reply-To: <AANLkTingMmay_a0ZpwxRi2AQ6tVMJLiBSz_bm9HZVFUn@mail.gmail.com>
On Fri, 2010-07-09 at 15:29 -0700, Luis R. Rodriguez wrote:
> >> ssh: Could not resolve hostname wireless.kernel.org: Name or service not known
...
> > Perhaps only successful reports should go to the list, and unsuccessful
> > reports should go to those who can fix the problem?
>
> Sure, I'll try to address this, but also feel free to send patches against:
>
> http://git.kernel.org/?p=linux/kernel/git/mcgrof/compat-user.git;a=summary
Thanks for the tip!
I don't think I can fix DNS resolution of wireless.kernel.org from the
scripts.
cron-compat could be rewritten to call "mail" explicitly, so that
different addresses are used for different outcomes. crontab will need
to be changed accordingly.
--
Regards,
Pavel Roskin
^ permalink raw reply
* Re: 2.6.35-rc4-git4: Reported regressions 2.6.33 -> 2.6.34
From: Luis R. Rodriguez @ 2010-07-10 3:06 UTC (permalink / raw)
To: linux-wireless; +Cc: Rafael J. Wysocki, reinette chatre, Johannes Berg
In-Reply-To: <xkNyyYrLiTN.A.s_G.7p7NMB@chimera>
Below are the 802.11 ones only. One for iwl3945, the other for iwlagn:
On Fri, Jul 9, 2010 at 5:24 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> Unresolved regressions
> ----------------------
> Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=16320
> Subject : iwl3945 crashes, seems to be disconnecting from the PCI bus
> Submitter : Satish <eerpini@gmail.com>
> Date : 2010-07-01 08:24 (9 days old)
> Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15862
> Subject : 2.6.34-rc4/5: iwlagn unusable until reload
> Submitter : Nico Schottelius <nico-linux-20100427@schottelius.org>
> Date : 2010-04-27 7:49 (74 days old)
> Message-ID : <20100427074934.GB3261@ikn.schottelius.org>
> References : http://marc.info/?l=linux-kernel&m=127235784004839&w=2
> Handled-By : Johannes Berg <johannes@sipsolutions.net>
Luis
^ permalink raw reply
* Re: [PATCH] mac80211: update mesh information element values
From: Steve deRosier @ 2010-07-10 5:05 UTC (permalink / raw)
To: linux-wireless; +Cc: javier, Steve deRosier
In-Reply-To: <1278719330-56441-1-git-send-email-steve@cozybit.com>
Hi,
I'd like to retract this patch. Considering that it will break
backwards compatibility with older kernels (which I neglected to
mention that in the commit message) and it's not really critical at
this time, I think it's a bit premature. Let's call it more a RFC
than a patch.
That said, about a month ago someone on this list complained about the
fact that WLAN_EID_MESH_CONFIG and WLAN_EID_MESH_ID numbers overlapped
with WLAN_EID_AP_CHAN_REPORT and WLAN_EID_NEIGHBOR_REPORT numbers.
That's what prompted this patch. I don't think that this patch fixes
the actual problem he had with mesh not working, but he might want to
try this just to eliminate that variable.
I apologize for the inconvenience. I'll resubmit this patch at a more
appropriate time in the future.
Thanks,
- Steve
On Fri, Jul 9, 2010 at 4:48 PM, Steve deRosier <steve@cozybit.com> wrote:
> The old values conflicted with ANA approved values. The new values
> were chosen to be consistent with those for the ANA request plan
> for 802.11s.
>
> The Peer Link IE no longer exists in draft standards, replaced by
> the Peer Management IE. Leaving the old definition in was prudent
> until mesh code can be changed to match.
>
> Signed-off-by: Steve deRosier <steve@cozybit.com>
> ---
> include/linux/ieee80211.h | 23 +++++++++++++----------
> 1 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
> index 97b2eae..1ed60b5 100644
> --- a/include/linux/ieee80211.h
> +++ b/include/linux/ieee80211.h
> @@ -1142,17 +1142,20 @@ enum ieee80211_eid {
> /* 802.11s
> *
> * All mesh EID numbers are pending IEEE 802.11 ANA approval.
> - * The numbers have been incremented from those suggested in
> - * 802.11s/D2.0 so that MESH_CONFIG does not conflict with
> - * EXT_SUPP_RATES.
> + * The numbers have been taken from ANA request plan for 802.11s
> + *
> + * Note that the Peer Link IE has been replaced with the similar
> + * Peer Management IE. We will keep the former definition until mesh
> + * code is changed to comply with latest 802.11s drafts.
> */
> - WLAN_EID_MESH_CONFIG = 51,
> - WLAN_EID_MESH_ID = 52,
> - WLAN_EID_PEER_LINK = 55,
> - WLAN_EID_PREQ = 68,
> - WLAN_EID_PREP = 69,
> - WLAN_EID_PERR = 70,
> - WLAN_EID_RANN = 49, /* compatible with FreeBSD */
> + WLAN_EID_MESH_CONFIG = 113,
> + WLAN_EID_MESH_ID = 114,
> + WLAN_EID_PEER_MGMT = 115,
> + WLAN_EID_PEER_LINK = 55, /* no longer in 802.11s drafts */
> + WLAN_EID_PREQ = 130,
> + WLAN_EID_PREP = 131,
> + WLAN_EID_PERR = 132,
> + WLAN_EID_RANN = 126,
>
> WLAN_EID_PWR_CONSTRAINT = 32,
> WLAN_EID_PWR_CAPABILITY = 33,
> --
> 1.7.0
>
>
^ permalink raw reply
* Re: BCM4311 in Ad-hoc Mode - Connection Unsuccessful
From: Nicholas Betcher @ 2010-07-10 5:46 UTC (permalink / raw)
To: Linux-Wireless Mailing List
In-Reply-To: <AANLkTilE2uM6UoHe0UZo20CYfc8DCxpHLlSdQyzyJw2J@mail.gmail.com>
Some updates:
- I am using kernel version 2.6.34 from openSUSE 11.3 RC2.
- Per the advice of a user on IRC I tried compat-wireless (from
07/08/2010) and the problem still persists.
- My firmware is 478.104 (as recommended on the Wiki)
- This problem persists with or without WEP enabled on the phone.
- Scanning networks before connecting DOES reveal other networks.
- iw event -t shows:
1278739983.002762: wlan0 (phy #0): scan started
1278739984.284008: wlan0 (phy #0): scan finished: 2412 2417 2422 2427
2432 2437 2442 2447 2452 2457 2462 2467 2472 2484, ""
- I have no access to another Ad-hoc device/software.
Any help on this is greatly appreciated!
Thanks.
On Sun, Jul 4, 2010 at 5:37 AM, Nicholas Betcher <nbetcher@gmail.com> wrote:
> Hello,
> I have recently been using (lightly) tethering on my Android phone and
> it uses Ad-hoc to provide wireless tethering. Unfortunately openSUSE
> 11.3 RC1 seems to be unable to connect to it. I haven't quite pinned
> down at what point it is failing, but it isn't failing at obtaining a
> DHCP lease, it's something more problematic. I have verified my
> settings are all correct on both sides (computer and phone). Also - to
> rule out hardware issues - I have used Windows 7 on the same system to
> successfully connect to the phone.
> Here are various logs/etc:
>
> lspci -v -nn:
> 03:00.0 Network controller [0280]: Broadcom Corporation BCM4311
> 802.11b/g WLAN [14e4:4311] (rev 02)
> Subsystem: Hewlett-Packard Company BCM4311 802.11b/g Wireless
> LAN Controller [103c:1374]
> Flags: bus master, fast devsel, latency 0, IRQ 18
> Memory at b8000000 (64-bit, non-prefetchable) [size=16K]
> Capabilities: [40] Power Management version 3
> Capabilities: [58] Vendor Specific Information: Len=78 <?>
> Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
> Capabilities: [d0] Express Endpoint, MSI 00
> Capabilities: [100] Advanced Error Reporting
> Capabilities: [13c] Virtual Channel
> Capabilities: [160] Device Serial Number [REMOVED INTENTIONALLY]
> Capabilities: [16c] Power Budgeting <?>
> Kernel driver in use: b43-pci-bridge
>
> dmesg:
> [ 328.352293] b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
> [ 328.384141] b43-pci-bridge 0000:03:00.0: PCI: Disallowing DAC for device
> [ 328.384147] b43-phy0: DMA mask fallback from 64-bit to 32-bit
> [ 328.398967] wlan0: Trigger new scan to find an IBSS to join
> [ 331.704086] wlan0: Trigger new scan to find an IBSS to join
> [ 335.704063] wlan0: Trigger new scan to find an IBSS to join
> [ 336.996057] wlan0: Creating new IBSS network, BSSID [REMOVED INTENTIONALLY]
> [ 367.704079] wlan0: No active IBSS STAs - trying to scan for other
> IBSS networks with same SSID (merge)
> [ 399.704089] wlan0: No active IBSS STAs - trying to scan for other
> IBSS networks with same SSID (merge)
>
>
> /var/log/messages:
> Jul 3 01:57:53 NickB-Laptop ifup: wlan0 name: BCM4311 802.11b/g WLAN
> Jul 3 01:57:53 NickB-Laptop ifup-wireless: wlan0 warning:
> using NO encryption
> Jul 3 01:57:53 NickB-Laptop kernel: [ 684.963046] b43-phy0: Loading
> firmware version 478.104 (2008-07-01 00:50:23)
> Jul 3 01:57:53 NickB-Laptop kernel: [ 684.995149] b43-pci-bridge
> 0000:03:00.0: PCI: Disallowing DAC for device
> Jul 3 01:57:53 NickB-Laptop kernel: [ 684.995153] b43-phy0: DMA mask
> fallback from 64-bit to 32-bit
> Jul 3 01:57:53 NickB-Laptop kernel: [ 685.008172] wlan0: Selected
> IBSS BSSID [REMOVED INTENTIONALLY] based on configured SSID
> Jul 3 01:57:54 NickB-Laptop ifup-dhcp: wlan0 Starting DHCP4 client
> Jul 3 01:57:54 NickB-Laptop dhcpcd[5932]: wlan0: dhcpcd 3.2.3 starting
> Jul 3 01:57:54 NickB-Laptop dhcpcd[5932]: wlan0: hardware address =
> [REMOVED INTENTIONALLY]
> Jul 3 01:57:54 NickB-Laptop dhcpcd[5932]: wlan0: broadcasting for a lease
> Jul 3 01:58:14 NickB-Laptop dhcpcd[5932]: wlan0: timed out
> Jul 3 01:58:15 NickB-Laptop ifup-dhcp: wlan0 DHCP4 continues
> in background
> Jul 3 01:58:24 NickB-Laptop kernel: [ 715.701300] wlan0: No active
> IBSS STAs - trying to scan for other IBSS networks with same SSID
> (merge)
> Jul 3 01:58:31 NickB-Laptop dhcpcd[4983]: eth0: timed out
> Jul 3 01:58:31 NickB-Laptop dhcpcd[4983]: eth0: lease expired 1799145
> seconds ago
> Jul 3 01:58:31 NickB-Laptop dhcpcd[4983]: eth0: broadcasting for a lease
> Jul 3 01:58:34 NickB-Laptop dhcpcd[5932]: wlan0: timed out
> Jul 3 01:58:34 NickB-Laptop dhcpcd[5932]: wlan0: broadcasting for a lease
> Jul 3 01:58:54 NickB-Laptop dhcpcd[5932]: wlan0: timed out
> Jul 3 01:58:54 NickB-Laptop dhcpcd[5932]: wlan0: broadcasting for a lease
> Jul 3 01:58:56 NickB-Laptop kernel: [ 747.704067] wlan0: No active
> IBSS STAs - trying to scan for other IBSS networks with same SSID
> (merge)
>
> More is probably needed to truly debug this problem, so please CC me
> and let me know what more is needed.
> Thanks a million for the great driver, (seriously) :)
> Nick Betcher, CPhT
> Certified Pharmacy Technician
>
^ permalink raw reply
* [patch] prism54: call BUG_ON() earlier
From: Dan Carpenter @ 2010-07-10 8:53 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: John W. Linville, André Goddard Rosa, Jiri Kosina,
linux-wireless, kernel-janitors
This test is off by one because strlen() doesn't include the NULL
terminator.
Signed-off-by: Dan Carpenter <error27@gmail.com>
diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c
index 8d1190c..1051268 100644
--- a/drivers/net/wireless/prism54/isl_ioctl.c
+++ b/drivers/net/wireless/prism54/isl_ioctl.c
@@ -2067,7 +2067,7 @@ send_simple_event(islpci_private *priv, const char *str)
memptr = kmalloc(IW_CUSTOM_MAX, GFP_KERNEL);
if (!memptr)
return;
- BUG_ON(n > IW_CUSTOM_MAX);
+ BUG_ON(n >= IW_CUSTOM_MAX);
wrqu.data.pointer = memptr;
wrqu.data.length = n;
strcpy(memptr, str);
^ permalink raw reply related
* [PATCH] adm8211: fix memory leak
From: Kulikov Vasiliy @ 2010-07-10 12:28 UTC (permalink / raw)
To: kernel-janitors
Cc: Michael Wu, John W. Linville, David S. Miller, Johannes Berg,
Kalle Valo, Luis R. Rodriguez, linux-wireless, netdev
We must free priv->eeprom allocated in adm8211_read_eeprom().
Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
---
drivers/net/wireless/adm8211.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c
index 880ad9d..bde2fa8 100644
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
@@ -1903,7 +1903,7 @@ static int __devinit adm8211_probe(struct pci_dev *pdev,
if (err) {
printk(KERN_ERR "%s (adm8211): Cannot register device\n",
pci_name(pdev));
- goto err_free_desc;
+ goto err_free_eeprom;
}
printk(KERN_INFO "%s: hwaddr %pM, Rev 0x%02x\n",
@@ -1912,6 +1912,9 @@ static int __devinit adm8211_probe(struct pci_dev *pdev,
return 0;
+ err_free_eeprom:
+ kfree(priv->eeprom);
+
err_free_desc:
pci_free_consistent(pdev,
sizeof(struct adm8211_desc) * priv->rx_ring_size +
--
1.7.0.4
^ permalink raw reply related
* [PATCH] atmel: unregister_netdev() on error
From: Kulikov Vasiliy @ 2010-07-10 13:11 UTC (permalink / raw)
To: kernel-janitors
Cc: Simon Kelley, John W. Linville, David S. Miller,
Stephen Hemminger, Eric Dumazet, Ben Hutchings, linux-wireless,
netdev
We must unregister registered device if probe_atmel_card() fails.
Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
---
drivers/net/wireless/atmel.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index c8f7090..b9334a3 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1626,7 +1626,7 @@ struct net_device *init_atmel_card(unsigned short irq, unsigned long port,
if (!probe_atmel_card(dev)) {
unregister_netdev(dev);
- goto err_out_res;
+ goto err_out_unreg;
}
netif_carrier_off(dev);
@@ -1640,6 +1640,9 @@ struct net_device *init_atmel_card(unsigned short irq, unsigned long port,
return dev;
+err_out_unreg:
+ unregister_netdev(dev);
+
err_out_res:
release_region(dev->base_addr, 32);
err_out_irq:
--
1.7.0.4
^ permalink raw reply related
* Re: [PATCH] atmel: unregister_netdev() on error
From: Dan Carpenter @ 2010-07-10 14:12 UTC (permalink / raw)
To: Kulikov Vasiliy
Cc: kernel-janitors, Simon Kelley, John W. Linville, David S. Miller,
Stephen Hemminger, Eric Dumazet, Ben Hutchings, linux-wireless,
netdev
In-Reply-To: <1278767508-10164-1-git-send-email-segooon@gmail.com>
On Sat, Jul 10, 2010 at 05:11:47PM +0400, Kulikov Vasiliy wrote:
> We must unregister registered device if probe_atmel_card() fails.
I think you hit send accidentally on this one?
> if (!probe_atmel_card(dev)) {
> unregister_netdev(dev);
^^^^^^^^^^^^^^^^^^^^^^^
> - goto err_out_res;
> + goto err_out_unreg;
> }
>
> netif_carrier_off(dev);
> @@ -1640,6 +1640,9 @@ struct net_device *init_atmel_card(unsigned short irq, unsigned long port,
>
> return dev;
>
> +err_out_unreg:
> + unregister_netdev(dev);
^^^^^^^^^^^^^^^^^^^^^^
> +
What the pants? :P
regards,
dan carpenter
^ permalink raw reply
* Re: [PATCH] atmel: unregister_netdev() on error
From: Kulikov Vasiliy @ 2010-07-10 16:38 UTC (permalink / raw)
To: Dan Carpenter
Cc: kernel-janitors, Simon Kelley, John W. Linville, David S. Miller,
Stephen Hemminger, Eric Dumazet, Ben Hutchings, linux-wireless,
netdev
In-Reply-To: <20100710141204.GY19184@bicker>
On Sat, Jul 10, 2010 at 16:12 +0200, Dan Carpenter wrote:
> > +err_out_unreg:
> > + unregister_netdev(dev);
> ^^^^^^^^^^^^^^^^^^^^^^
> > +
>
> What the pants? :P
Hmm, I've slightly misunderstood the code, sorry.
Thanks, Dan.
^ permalink raw reply
* Issues with ath9k dropping connectivity - now no connectivity
From: Norman Henderson @ 2010-07-10 18:32 UTC (permalink / raw)
To: linux-wireless
Hi,
I'm a bit new to all of this - here's the short story. I would
appreciate any help available!
I was building a WAP using a PC Engines ALIX board (AMD Geode LX800),
DNMA92 wireless card (Atheros 92xx) and Voyage Linux (based on Debian
Lenny, 2.6.30 kernel with hostapd 0.6.9 and libnl1.1). It was all
working but, the wireless card would drop connectivity for no apparent
reason after an undetermined time (minutes to hours). Stations (Win or
cellphone) would no longer see it at all, as if it was no longer
transmitting.
The Voyage maintainer advised that ath9k isn't that stable at 2.6.30.
So, I upgraded the kernel to 2.6.32 using the Debian Lenny backport. I
then installed the "stable" compat-wireless, 2.6.32.16.
Hostapd appears to start OK. However, the wireless SSID is only
visible to the Windows clients for a short time - seconds/minutes -
and they aren't able to connect. There were no errors in the hostapd
startup and it does its key rotations periodically. All that's logged
from hostapd -dd during the actual time that the Win clients can see
it and are trying to connect is:
1278785975.350851: STA 00:13:02:be:7b:f9 sent probe request for broadcast SSID
1278785975.353034: MGMT (TX callback) ACK
1278785975.353073: mgmt::proberesp cb
(repeated a few times)
The Win7 station used to connect automatically but now doesn't and
when I click "connect" it fails and shortly thereafter the SSID
disappears from the list.
Nothing in /var/log. iw phy phy0 info and iw dev wlan0 info appear to
report sensible info as does iwconfig.
During boot I do get messages about "VIA Padlock Hash Engine not detected" and
modprobe: FATAL: Error inserting padlock_sha
(/lib/modules/2.6.32-bpo.5-686/kern...): No such device
>From googling it's not clear to me at least whether this is relevant.
Suggestions? What further diagnostics could I do?
Thanks,
Norm Henderson
^ permalink raw reply
* Re: Issues with ath9k dropping connectivity - now no connectivity
From: Felix Fietkau @ 2010-07-10 18:38 UTC (permalink / raw)
To: Norman Henderson; +Cc: linux-wireless
In-Reply-To: <AANLkTilq_VFbOPHmMuf1EFmewc_WBBpgvW0t7ogZdbdl@mail.gmail.com>
On 2010-07-10 8:32 PM, Norman Henderson wrote:
> Hi,
>
> I'm a bit new to all of this - here's the short story. I would
> appreciate any help available!
>
> I was building a WAP using a PC Engines ALIX board (AMD Geode LX800),
> DNMA92 wireless card (Atheros 92xx) and Voyage Linux (based on Debian
> Lenny, 2.6.30 kernel with hostapd 0.6.9 and libnl1.1). It was all
> working but, the wireless card would drop connectivity for no apparent
> reason after an undetermined time (minutes to hours). Stations (Win or
> cellphone) would no longer see it at all, as if it was no longer
> transmitting.
>
> The Voyage maintainer advised that ath9k isn't that stable at 2.6.30.
> So, I upgraded the kernel to 2.6.32 using the Debian Lenny backport. I
> then installed the "stable" compat-wireless, 2.6.32.16.
>
> Hostapd appears to start OK. However, the wireless SSID is only
> visible to the Windows clients for a short time - seconds/minutes -
> and they aren't able to connect. There were no errors in the hostapd
> startup and it does its key rotations periodically. All that's logged
> from hostapd -dd during the actual time that the Win clients can see
> it and are trying to connect is:
> 1278785975.350851: STA 00:13:02:be:7b:f9 sent probe request for broadcast SSID
> 1278785975.353034: MGMT (TX callback) ACK
> 1278785975.353073: mgmt::proberesp cb
> (repeated a few times)
>
> The Win7 station used to connect automatically but now doesn't and
> when I click "connect" it fails and shortly thereafter the SSID
> disappears from the list.
>
> Nothing in /var/log. iw phy phy0 info and iw dev wlan0 info appear to
> report sensible info as does iwconfig.
>
> During boot I do get messages about "VIA Padlock Hash Engine not detected" and
> modprobe: FATAL: Error inserting padlock_sha
> (/lib/modules/2.6.32-bpo.5-686/kern...): No such device
> From googling it's not clear to me at least whether this is relevant.
>
> Suggestions? What further diagnostics could I do?
I'd suggest using a 'bleeding edge' compat-wireless along with hostapd
version 0.7.2.
In OpenWrt we're using a compat-wireless based on wireless-testing
2010-07-06, along with two ath9k patches that were merged in a later
version.
According to my own testing and various user feedback, this is the most
stable version that we had so far.
I think 2.6.36 is probably going to be the first Linux Kernel version
with ath9k working in AP mode *reliably*.
- Felix
^ permalink raw reply
* Compat-wireless release for 2010-07-10 is baked
From: Compat-wireless cronjob account @ 2010-07-10 19:03 UTC (permalink / raw)
To: linux-wireless
>From git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6
55cfa0f..948cf60 linux-2.6.32.y -> origin/linux-2.6.32.y
4db5fad..91d8dae linux-2.6.33.y -> origin/linux-2.6.33.y
5789d0f..9923049 linux-2.6.34.y -> origin/linux-2.6.34.y
5ba7a3f..8302dc6 linux-2.6.35.y -> origin/linux-2.6.35.y
469f74f..bea1297 master -> origin/master
* [new tag] compat-wireless-2.6.33.6 -> compat-wireless-2.6.33.6
* [new tag] compat-wireless-v2.6.32.16 -> compat-wireless-v2.6.32.16
* [new tag] compat-wireless-v2.6.35-rc4 -> compat-wireless-v2.6.35-rc4
>From git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6
* [new tag] compat-wireless-v2.6.34.1 -> compat-wireless-v2.6.34.1
>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
59d8d6f..cb6fa5f history -> origin/history
+ 95a7e04...0811daa master -> origin/master (forced update)
78178c7..e467e10 stable -> origin/stable
* [new tag] next-20100709 -> next-20100709
compat-wireless code metrics
495293 - Total upstream lines of code being pulled
1419 - backport code changes
1186 - backport code additions
233 - backport code deletions
5766 - backport from compat module
7185 - total backport code
1.4507 - % of code consists of backport work
1218 - Crap changes not yet posted
1179 - Crap additions not yet posted
39 - Crap deletions not yet posted
0.2459 - % of crap code
Base tree: linux-next.git
Base tree version: next-20100709
compat-wireless release: compat-wireless-2010-07-08-2-gbea1297
^ permalink raw reply
* Re: Issues with ath9k dropping connectivity - now no connectivity
From: Norman Henderson @ 2010-07-10 19:40 UTC (permalink / raw)
To: Felix Fietkau; +Cc: linux-wireless
In-Reply-To: <4C38BE1D.2020107@openwrt.org>
Thanks very much Felix for the quick comment. I'll follow up on it
over the next few days as I get time to move to "bleeding edge"
(something I've sworn from my youth to never do...).
However I guess I was more concerned about the regression from an
environment that worked (with disconnections) to one that doesn't
connect at all - is that just the luck of the draw or did I do
something stupid? (more precisely, what was it that I did stupid,
because that's inevitably true :~
- Norm Henderson
On Sat, Jul 10, 2010 at 7:38 PM, Felix Fietkau <nbd@openwrt.org> wrote:
> On 2010-07-10 8:32 PM, Norman Henderson wrote:
>> Hi,
>>
>> I'm a bit new to all of this - here's the short story. I would
>> appreciate any help available!
>>
>> I was building a WAP using a PC Engines ALIX board (AMD Geode LX800),
>> DNMA92 wireless card (Atheros 92xx) and Voyage Linux (based on Debian
>> Lenny, 2.6.30 kernel with hostapd 0.6.9 and libnl1.1). It was all
>> working but, the wireless card would drop connectivity for no apparent
>> reason after an undetermined time (minutes to hours). Stations (Win or
>> cellphone) would no longer see it at all, as if it was no longer
>> transmitting.
>>
>> The Voyage maintainer advised that ath9k isn't that stable at 2.6.30.
>> So, I upgraded the kernel to 2.6.32 using the Debian Lenny backport. I
>> then installed the "stable" compat-wireless, 2.6.32.16.
>>
>> Hostapd appears to start OK. However, the wireless SSID is only
>> visible to the Windows clients for a short time - seconds/minutes -
>> and they aren't able to connect. There were no errors in the hostapd
>> startup and it does its key rotations periodically. All that's logged
>> from hostapd -dd during the actual time that the Win clients can see
>> it and are trying to connect is:
>> 1278785975.350851: STA 00:13:02:be:7b:f9 sent probe request for broadcast SSID
>> 1278785975.353034: MGMT (TX callback) ACK
>> 1278785975.353073: mgmt::proberesp cb
>> (repeated a few times)
>>
>> The Win7 station used to connect automatically but now doesn't and
>> when I click "connect" it fails and shortly thereafter the SSID
>> disappears from the list.
>>
>> Nothing in /var/log. iw phy phy0 info and iw dev wlan0 info appear to
>> report sensible info as does iwconfig.
>>
>> During boot I do get messages about "VIA Padlock Hash Engine not detected" and
>> modprobe: FATAL: Error inserting padlock_sha
>> (/lib/modules/2.6.32-bpo.5-686/kern...): No such device
>> From googling it's not clear to me at least whether this is relevant.
>>
>> Suggestions? What further diagnostics could I do?
> I'd suggest using a 'bleeding edge' compat-wireless along with hostapd
> version 0.7.2.
>
> In OpenWrt we're using a compat-wireless based on wireless-testing
> 2010-07-06, along with two ath9k patches that were merged in a later
> version.
>
> According to my own testing and various user feedback, this is the most
> stable version that we had so far.
>
> I think 2.6.36 is probably going to be the first Linux Kernel version
> with ath9k working in AP mode *reliably*.
>
> - Felix
>
^ permalink raw reply
* Re: Issues with ath9k dropping connectivity - now no connectivity
From: Felix Fietkau @ 2010-07-10 20:21 UTC (permalink / raw)
To: Norman Henderson; +Cc: linux-wireless
In-Reply-To: <AANLkTinNmQONdkT_f7aNykH0t4o7Zdybi96hcd4K4UUp@mail.gmail.com>
On 2010-07-10 9:40 PM, Norman Henderson wrote:
> Thanks very much Felix for the quick comment. I'll follow up on it
> over the next few days as I get time to move to "bleeding edge"
> (something I've sworn from my youth to never do...).
>
> However I guess I was more concerned about the regression from an
> environment that worked (with disconnections) to one that doesn't
> connect at all - is that just the luck of the draw or did I do
> something stupid? (more precisely, what was it that I did stupid,
> because that's inevitably true :~
No idea if it was a configuration error or if it broke somewhere. To be
honest, I stopped caring about AP mode in old kernels completely,
because of the large number of known bugs that are fixed in newer versions.
- Felix
^ permalink raw reply
* [patch] hostap: fixup strlen() math
From: Dan Carpenter @ 2010-07-10 22:10 UTC (permalink / raw)
To: Jouni Malinen
Cc: John W. Linville, Martin Decky, linux-wireless, netdev,
kernel-janitors
In hostap_add_interface() we do:
sprintf(dev->name, "%s%s", prefix, name);
dev->name has IFNAMSIZ (16) characters.
prefix is local->dev->name.
name is "wds%d"
strlen() returns the number of characters in the string not counting the
NULL so if we have a string with 11 characters we get "12345678901wds%d"
which is 16 characters and a NULL so we're past the end of the array.
Signed-off-by: Dan Carpenter <error27@gmail.com>
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c
index eb57d1e..f1bc258 100644
--- a/drivers/net/wireless/hostap/hostap_main.c
+++ b/drivers/net/wireless/hostap/hostap_main.c
@@ -186,7 +186,7 @@ int prism2_wds_add(local_info_t *local, u8 *remote_addr,
return -ENOBUFS;
/* verify that there is room for wds# postfix in the interface name */
- if (strlen(local->dev->name) > IFNAMSIZ - 5) {
+ if (strlen(local->dev->name) >= IFNAMSIZ - 5) {
printk(KERN_DEBUG "'%s' too long base device name\n",
local->dev->name);
return -EINVAL;
^ permalink raw reply related
* Ath5k breaking in ath5k_pci_suspend_compat going on 2 weeks
From: Philip Prindeville @ 2010-07-11 2:05 UTC (permalink / raw)
To: linux-wireless
This still seems to be broken, a couple of weeks later:
CC [M] /home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/attach.o
CC [M] /home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.o
/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.c:243: error: 'ath5k_pci_suspend_compat' undeclared here (not in a function)
/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.c:244: error: 'ath5k_pci_resume_compat' undeclared here (not in a function)
make[6]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.o] Error 1
make[5]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k] Error 2
make[4]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath] Error 2
make[3]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless] Error 2
and from today's tarball:
CC [M] /home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.o
/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.c:243: error: 'ath5k_pci_suspend_compat' undeclared here (not in a function)
/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.c:244: error: 'ath5k_pci_resume_compat' undeclared here (not in a function)
make[6]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.o] Error 1
make[5]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k] Error 2
make[4]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath] Error 2
make[3]: *** [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless] Error 2
Can someone please have a look and fix their regression?
Thanks,
-Philip
^ permalink raw reply
* RE: wl1271 firmware
From: Levi, Shahar @ 2010-07-11 5:38 UTC (permalink / raw)
To: Logan Gunthorpe, Luciano Coelho; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <4C37BCA0.5090607@deltatee.com>
> -----Original Message-----
> From: linux-wireless-owner@vger.kernel.org [mailto:linux-wireless-
> owner@vger.kernel.org] On Behalf Of Logan Gunthorpe
> Sent: Saturday, July 10, 2010 3:20 AM
> To: Luciano Coelho
> Cc: linux-wireless@vger.kernel.org
> Subject: RE: wl1271 firmware
>
> Hi Everyone,
>
> I too am working with a WL1271 module and have just today got it
> connected to an Atmel ARM9 development kit (AT91SAM9G45-EKES). So far it
> appears to work but I have been gated by the firmware and NVS file issues.
>
> I have a firmware binary, but it seems to be a newer version
> (6.1.3.01.5) than what you are using. Does anyone have any idea if this
> version will work? It seems to be the only one available on TI's
> website. Additionally, our device manufacturer has been hesitant to
> provide any support because we are on an unsupported platform and opted
> to use the open source driver. Are there any other ways to obtain an
> older version of the firmware?
>
> The NVS file is another problem. TI's website has instructions to use a
> cryptic tool that appears to come with their driver package. There is no
> source for this tool and for obvious reasons would not work for us.
>
> Anyway, I'd like to help in anyway I can. I've taken a look at the
> twilan.ini file and I see the commonality with wl1271_ini.h. It would be
> relatively easy to write a tool that parses the INI file and generates
> the common part of the NVS file. However, I'd have no idea how to
> generate the device specific calibration or the few fields missing from
> the INI file.
>
> Thanks,
>
> Logan
>
Hi Logan,
I am pushing to get access to the correct FW and NVS files version in TI web. I believe the community wills nave access of those files this week.
Regarding the tool to generate the NVS file in the correct format, I will check that and reply.
Regards,
Shahar
^ permalink raw reply
* Re: Ath5k breaking in ath5k_pci_suspend_compat going on 2 weeks
From: Philip Prindeville @ 2010-07-11 6:04 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <4C3926F7.5070606@redfish-solutions.com>
I take it back... it seems to go back at least to 2010-06-12.
On 7/10/10 8:05 PM, Philip Prindeville wrote:
> This still seems to be broken, a couple of weeks later:
>
> CC [M]
> /home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/attach.o
>
> CC [M]
> /home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.o
>
> /home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.c:243:
> error: 'ath5k_pci_suspend_compat' undeclared here (not in a function)
> /home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.c:244:
> error: 'ath5k_pci_resume_compat' undeclared here (not in a function)
> make[6]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k/base.o]
> Error 1
> make[5]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath/ath5k]
> Error 2
> make[4]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless/ath]
> Error 2
> make[3]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-06-26/drivers/net/wireless]
> Error 2
>
>
> and from today's tarball:
>
>
> CC [M]
> /home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.o
>
> /home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.c:243:
> error: 'ath5k_pci_suspend_compat' undeclared here (not in a function)
> /home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.c:244:
> error: 'ath5k_pci_resume_compat' undeclared here (not in a function)
> make[6]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k/base.o]
> Error 1
> make[5]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath/ath5k]
> Error 2
> make[4]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless/ath]
> Error 2
> make[3]: ***
> [/home/philipp/kernel/build_i586/compat-wireless-2010-07-10/drivers/net/wireless]
> Error 2
>
>
> Can someone please have a look and fix their regression?
>
> Thanks,
>
> -Philip
^ permalink raw reply
* [PATCH 01/17] rt2x00: Limit txpower by eeprom values
From: Ivo van Doorn @ 2010-07-11 10:23 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, users, Helmut Schaa
From: Helmut Schaa <helmut.schaa@googlemail.com>
Limit the txpower per rate by the approriate values in the eeprom.
This avoids too high txpower values resulting in bad tx performance.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
drivers/net/wireless/rt2x00/rt2800.h | 20 ++++-
drivers/net/wireless/rt2x00/rt2800lib.c | 153 ++++++++++++++++++++-----------
2 files changed, 120 insertions(+), 53 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
index 3ed87ba..3cda229 100644
--- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -803,6 +803,18 @@
#define EDCA_TID_AC_MAP 0x1310
/*
+ * TX_PWR_CFG:
+ */
+#define TX_PWR_CFG_RATE0 FIELD32(0x0000000f)
+#define TX_PWR_CFG_RATE1 FIELD32(0x000000f0)
+#define TX_PWR_CFG_RATE2 FIELD32(0x00000f00)
+#define TX_PWR_CFG_RATE3 FIELD32(0x0000f000)
+#define TX_PWR_CFG_RATE4 FIELD32(0x000f0000)
+#define TX_PWR_CFG_RATE5 FIELD32(0x00f00000)
+#define TX_PWR_CFG_RATE6 FIELD32(0x0f000000)
+#define TX_PWR_CFG_RATE7 FIELD32(0xf0000000)
+
+/*
* TX_PWR_CFG_0:
*/
#define TX_PWR_CFG_0 0x1314
@@ -1853,9 +1865,15 @@ struct mac_iveiv_entry {
#define EEPROM_TXPOWER_A_2 FIELD16(0xff00)
/*
- * EEPROM TXpower byrate: 20MHZ power
+ * EEPROM TXPOWER by rate: tx power per tx rate for HT20 mode
*/
#define EEPROM_TXPOWER_BYRATE 0x006f
+#define EEPROM_TXPOWER_BYRATE_SIZE 9
+
+#define EEPROM_TXPOWER_BYRATE_RATE0 FIELD16(0x000f)
+#define EEPROM_TXPOWER_BYRATE_RATE1 FIELD16(0x00f0)
+#define EEPROM_TXPOWER_BYRATE_RATE2 FIELD16(0x0f00)
+#define EEPROM_TXPOWER_BYRATE_RATE3 FIELD16(0xf000)
/*
* EEPROM BBP.
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index d3cf0cc..9030eef 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -1086,66 +1086,115 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
}
static void rt2800_config_txpower(struct rt2x00_dev *rt2x00dev,
- const int txpower)
+ const int max_txpower)
{
+ u8 txpower;
+ u8 max_value = (u8)max_txpower;
+ u16 eeprom;
+ int i;
u32 reg;
- u32 value = TXPOWER_G_TO_DEV(txpower);
u8 r1;
+ u32 offset;
+ /*
+ * set to normal tx power mode: +/- 0dBm
+ */
rt2800_bbp_read(rt2x00dev, 1, &r1);
rt2x00_set_field8(&r1, BBP1_TX_POWER, 0);
rt2800_bbp_write(rt2x00dev, 1, r1);
- rt2800_register_read(rt2x00dev, TX_PWR_CFG_0, ®);
- rt2x00_set_field32(®, TX_PWR_CFG_0_1MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_0_2MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_0_55MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_0_11MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_0_6MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_0_9MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_0_12MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_0_18MBS, value);
- rt2800_register_write(rt2x00dev, TX_PWR_CFG_0, reg);
-
- rt2800_register_read(rt2x00dev, TX_PWR_CFG_1, ®);
- rt2x00_set_field32(®, TX_PWR_CFG_1_24MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_1_36MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_1_48MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_1_54MBS, value);
- rt2x00_set_field32(®, TX_PWR_CFG_1_MCS0, value);
- rt2x00_set_field32(®, TX_PWR_CFG_1_MCS1, value);
- rt2x00_set_field32(®, TX_PWR_CFG_1_MCS2, value);
- rt2x00_set_field32(®, TX_PWR_CFG_1_MCS3, value);
- rt2800_register_write(rt2x00dev, TX_PWR_CFG_1, reg);
-
- rt2800_register_read(rt2x00dev, TX_PWR_CFG_2, ®);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS4, value);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS5, value);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS6, value);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS7, value);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS8, value);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS9, value);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS10, value);
- rt2x00_set_field32(®, TX_PWR_CFG_2_MCS11, value);
- rt2800_register_write(rt2x00dev, TX_PWR_CFG_2, reg);
-
- rt2800_register_read(rt2x00dev, TX_PWR_CFG_3, ®);
- rt2x00_set_field32(®, TX_PWR_CFG_3_MCS12, value);
- rt2x00_set_field32(®, TX_PWR_CFG_3_MCS13, value);
- rt2x00_set_field32(®, TX_PWR_CFG_3_MCS14, value);
- rt2x00_set_field32(®, TX_PWR_CFG_3_MCS15, value);
- rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN1, value);
- rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN2, value);
- rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN3, value);
- rt2x00_set_field32(®, TX_PWR_CFG_3_UKNOWN4, value);
- rt2800_register_write(rt2x00dev, TX_PWR_CFG_3, reg);
-
- rt2800_register_read(rt2x00dev, TX_PWR_CFG_4, ®);
- rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN5, value);
- rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN6, value);
- rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN7, value);
- rt2x00_set_field32(®, TX_PWR_CFG_4_UKNOWN8, value);
- rt2800_register_write(rt2x00dev, TX_PWR_CFG_4, reg);
+ /*
+ * The eeprom contains the tx power values for each rate. These
+ * values map to 100% tx power. Each 16bit word contains four tx
+ * power values and the order is the same as used in the TX_PWR_CFG
+ * registers.
+ */
+ offset = TX_PWR_CFG_0;
+
+ for (i = 0; i < EEPROM_TXPOWER_BYRATE_SIZE; i += 2) {
+ /* just to be safe */
+ if (offset > TX_PWR_CFG_4)
+ break;
+
+ rt2800_register_read(rt2x00dev, offset, ®);
+
+ /* read the next four txpower values */
+ rt2x00_eeprom_read(rt2x00dev, EEPROM_TXPOWER_BYRATE + i,
+ &eeprom);
+
+ /* TX_PWR_CFG_0: 1MBS, TX_PWR_CFG_1: 24MBS,
+ * TX_PWR_CFG_2: MCS4, TX_PWR_CFG_3: MCS12,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE0);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE0,
+ min(txpower, max_value));
+
+ /* TX_PWR_CFG_0: 2MBS, TX_PWR_CFG_1: 36MBS,
+ * TX_PWR_CFG_2: MCS5, TX_PWR_CFG_3: MCS13,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE1);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE1,
+ min(txpower, max_value));
+
+ /* TX_PWR_CFG_0: 55MBS, TX_PWR_CFG_1: 48MBS,
+ * TX_PWR_CFG_2: MCS6, TX_PWR_CFG_3: MCS14,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE2);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE2,
+ min(txpower, max_value));
+
+ /* TX_PWR_CFG_0: 11MBS, TX_PWR_CFG_1: 54MBS,
+ * TX_PWR_CFG_2: MCS7, TX_PWR_CFG_3: MCS15,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE3);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE3,
+ min(txpower, max_value));
+
+ /* read the next four txpower values */
+ rt2x00_eeprom_read(rt2x00dev, EEPROM_TXPOWER_BYRATE + i + 1,
+ &eeprom);
+
+ /* TX_PWR_CFG_0: 6MBS, TX_PWR_CFG_1: MCS0,
+ * TX_PWR_CFG_2: MCS8, TX_PWR_CFG_3: unknown,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE0);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE4,
+ min(txpower, max_value));
+
+ /* TX_PWR_CFG_0: 9MBS, TX_PWR_CFG_1: MCS1,
+ * TX_PWR_CFG_2: MCS9, TX_PWR_CFG_3: unknown,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE1);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE5,
+ min(txpower, max_value));
+
+ /* TX_PWR_CFG_0: 12MBS, TX_PWR_CFG_1: MCS2,
+ * TX_PWR_CFG_2: MCS10, TX_PWR_CFG_3: unknown,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE2);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE6,
+ min(txpower, max_value));
+
+ /* TX_PWR_CFG_0: 18MBS, TX_PWR_CFG_1: MCS3,
+ * TX_PWR_CFG_2: MCS11, TX_PWR_CFG_3: unknown,
+ * TX_PWR_CFG_4: unknown */
+ txpower = rt2x00_get_field16(eeprom,
+ EEPROM_TXPOWER_BYRATE_RATE3);
+ rt2x00_set_field32(®, TX_PWR_CFG_RATE7,
+ min(txpower, max_value));
+
+ rt2800_register_write(rt2x00dev, offset, reg);
+
+ /* next TX_PWR_CFG register */
+ offset += 4;
+ }
}
static void rt2800_config_retry_limit(struct rt2x00_dev *rt2x00dev,
--
1.7.1.1
^ permalink raw reply related
* [PATCH 02/17] rt2x00: Convert AGC value from descriptor to RSSI (dBm)
From: Ivo van Doorn @ 2010-07-11 10:23 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, users, Helmut Schaa
In-Reply-To: <201007111223.11190.IvDoorn@gmail.com>
The RSSI values in the RXWI descriptor aren't true RSSI
values. Instead they are more like the AGC values similar
to rt61pci. And as such, it needs the same conversion
before it can be passed to rt2x00lib/mac80211.
This requires the struct queue_entry to be passed to
rt2800_process_rxwi rather then the skb structure which
is contained in the queue_entry. This is required to
obtain the lna_gain information from the rt2x00_dev structure.
This fixes connection problems when using wpa_supplicant
which would try to connect to the worst AP's rather then the
best ones.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
drivers/net/wireless/rt2x00/rt2800.h | 2 +-
drivers/net/wireless/rt2x00/rt2800lib.c | 57 +++++++++++++++++++++++++++---
drivers/net/wireless/rt2x00/rt2800lib.h | 2 +-
drivers/net/wireless/rt2x00/rt2800pci.c | 2 +-
drivers/net/wireless/rt2x00/rt2800usb.c | 2 +-
5 files changed, 55 insertions(+), 10 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
index 3cda229..edd3734 100644
--- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -74,7 +74,7 @@
* Signal information.
* Default offset is required for RSSI <-> dBm conversion.
*/
-#define DEFAULT_RSSI_OFFSET 120 /* FIXME */
+#define DEFAULT_RSSI_OFFSET 120
/*
* Register layout information.
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 9030eef..255d089 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -325,9 +325,53 @@ void rt2800_write_txwi(__le32 *txwi, struct txentry_desc *txdesc)
}
EXPORT_SYMBOL_GPL(rt2800_write_txwi);
-void rt2800_process_rxwi(struct sk_buff *skb, struct rxdone_entry_desc *rxdesc)
+static int rt2800_agc_to_rssi(struct rt2x00_dev *rt2x00dev, int rxwi_w2)
{
- __le32 *rxwi = (__le32 *) skb->data;
+ int rssi0 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI0);
+ int rssi1 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI1);
+ int rssi2 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI2);
+ u16 eeprom;
+ u8 offset0;
+ u8 offset1;
+ u8 offset2;
+
+ if (rt2x00dev->rx_status.band == IEEE80211_BAND_2GHZ) {
+ rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_BG, &eeprom);
+ offset0 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG_OFFSET0);
+ offset1 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG_OFFSET1);
+ rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &eeprom);
+ offset2 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG2_OFFSET2);
+ } else {
+ rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_A, &eeprom);
+ offset0 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A_OFFSET0);
+ offset1 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A_OFFSET1);
+ rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_A2, &eeprom);
+ offset2 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A2_OFFSET2);
+ }
+
+ /*
+ * Convert the value from the descriptor into the RSSI value
+ * If the value in the descriptor is 0, it is considered invalid
+ * and the default (extremely low) rssi value is assumed
+ */
+ rssi0 = (rssi0) ? (-12 - offset0 - rt2x00dev->lna_gain - rssi0) : -128;
+ rssi1 = (rssi1) ? (-12 - offset1 - rt2x00dev->lna_gain - rssi1) : -128;
+ rssi2 = (rssi2) ? (-12 - offset2 - rt2x00dev->lna_gain - rssi2) : -128;
+
+ /*
+ * mac80211 only accepts a single RSSI value. Calculating the
+ * average doesn't deliver a fair answer either since -60:-60 would
+ * be considered equally good as -50:-70 while the second is the one
+ * which gives less energy...
+ */
+ rssi0 = max(rssi0, rssi1);
+ return max(rssi0, rssi2);
+}
+
+void rt2800_process_rxwi(struct queue_entry *entry,
+ struct rxdone_entry_desc *rxdesc)
+{
+ __le32 *rxwi = (__le32 *) entry->skb->data;
u32 word;
rt2x00_desc_read(rxwi, 0, &word);
@@ -358,14 +402,15 @@ void rt2800_process_rxwi(struct sk_buff *skb, struct rxdone_entry_desc *rxdesc)
rt2x00_desc_read(rxwi, 2, &word);
- rxdesc->rssi =
- (rt2x00_get_field32(word, RXWI_W2_RSSI0) +
- rt2x00_get_field32(word, RXWI_W2_RSSI1)) / 2;
+ /*
+ * Convert descriptor AGC value to RSSI value.
+ */
+ rxdesc->rssi = rt2800_agc_to_rssi(entry->queue->rt2x00dev, word);
/*
* Remove RXWI descriptor from start of buffer.
*/
- skb_pull(skb, RXWI_DESC_SIZE);
+ skb_pull(entry->skb, RXWI_DESC_SIZE);
}
EXPORT_SYMBOL_GPL(rt2800_process_rxwi);
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.h b/drivers/net/wireless/rt2x00/rt2800lib.h
index 8313dbf..eb3a4f5 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/rt2x00/rt2800lib.h
@@ -121,7 +121,7 @@ void rt2800_mcu_request(struct rt2x00_dev *rt2x00dev,
const u8 arg0, const u8 arg1);
void rt2800_write_txwi(__le32 *txwi, struct txentry_desc *txdesc);
-void rt2800_process_rxwi(struct sk_buff *skb, struct rxdone_entry_desc *txdesc);
+void rt2800_process_rxwi(struct queue_entry *entry, struct rxdone_entry_desc *txdesc);
void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc);
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index 6f11760..faf71e2 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -805,7 +805,7 @@ static void rt2800pci_fill_rxdone(struct queue_entry *entry,
/*
* Process the RXWI structure that is at the start of the buffer.
*/
- rt2800_process_rxwi(entry->skb, rxdesc);
+ rt2800_process_rxwi(entry, rxdesc);
/*
* Set RX IDX in register to inform hardware that we have handled
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
index 4f85f7b..f2cd37e 100644
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -563,7 +563,7 @@ static void rt2800usb_fill_rxdone(struct queue_entry *entry,
/*
* Process the RXWI structure.
*/
- rt2800_process_rxwi(entry->skb, rxdesc);
+ rt2800_process_rxwi(entry, rxdesc);
}
/*
--
1.7.1.1
^ permalink raw reply related
* [PATCH 03/17] rt2x00: Rename CONFIG_DISABLE_LINK_TUNING
From: Ivo van Doorn @ 2010-07-11 10:24 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, users, Helmut Schaa
In-Reply-To: <201007111223.51704.IvDoorn@gmail.com>
Rename CONFIG_DISABLE_LINK_TUNING to DRIVER_SUPPORT_LINK_TUNING
Link tuning support is not only based on EEPROM decisions, but
also if the device actually supports it.
Currently only rt2500usb doesn't support link tuning because
of hardware problems. But rt2800usb is also suspected of having
problems with link tuning.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
drivers/net/wireless/rt2x00/rt2400pci.c | 4 ++--
drivers/net/wireless/rt2x00/rt2500pci.c | 5 ++---
drivers/net/wireless/rt2x00/rt2500usb.c | 8 --------
drivers/net/wireless/rt2x00/rt2800pci.c | 1 +
drivers/net/wireless/rt2x00/rt2800usb.c | 1 +
drivers/net/wireless/rt2x00/rt2x00.h | 2 +-
drivers/net/wireless/rt2x00/rt2x00link.c | 7 ++++---
drivers/net/wireless/rt2x00/rt61pci.c | 1 +
drivers/net/wireless/rt2x00/rt73usb.c | 1 +
9 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index 3bedf56..5d5047f 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -1399,8 +1399,8 @@ static int rt2400pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
/*
* Check if the BBP tuning should be enabled.
*/
- if (!rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_AGCVGC_TUNING))
- __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags);
+ if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_AGCVGC_TUNING))
+ __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags);
return 0;
}
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index 69d231d..1d4758a 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -1557,9 +1557,8 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
* Check if the BBP tuning should be enabled.
*/
rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom);
-
- if (rt2x00_get_field16(eeprom, EEPROM_NIC_DYN_BBP_TUNE))
- __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags);
+ if (!rt2x00_get_field16(eeprom, EEPROM_NIC_DYN_BBP_TUNE))
+ __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags);
/*
* Read the RSSI <-> dBm offset information.
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index 4420552..6e48a15 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -1471,13 +1471,6 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
__set_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags);
/*
- * Check if the BBP tuning should be disabled.
- */
- rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom);
- if (rt2x00_get_field16(eeprom, EEPROM_NIC_DYN_BBP_TUNE))
- __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags);
-
- /*
* Read the RSSI <-> dBm offset information.
*/
rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET, &eeprom);
@@ -1743,7 +1736,6 @@ static int rt2500usb_probe_hw(struct rt2x00_dev *rt2x00dev)
__set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags);
__set_bit(DRIVER_REQUIRE_COPY_IV, &rt2x00dev->flags);
}
- __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags);
/*
* Set the rssi offset.
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
index faf71e2..a9eca99 100644
--- a/drivers/net/wireless/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
@@ -1037,6 +1037,7 @@ static int rt2800pci_probe_hw(struct rt2x00_dev *rt2x00dev)
__set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags);
if (!modparam_nohwcrypt)
__set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags);
+ __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags);
/*
* Set the rssi offset.
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
index f2cd37e..e4ab4db 100644
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -632,6 +632,7 @@ static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev)
__set_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags);
if (!modparam_nohwcrypt)
__set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags);
+ __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags);
/*
* Set the rssi offset.
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 788b0e4..42f4661 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -646,6 +646,7 @@ enum rt2x00_flags {
CONFIG_SUPPORT_HW_CRYPTO,
DRIVER_SUPPORT_CONTROL_FILTERS,
DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL,
+ DRIVER_SUPPORT_LINK_TUNING,
/*
* Driver configuration
@@ -655,7 +656,6 @@ enum rt2x00_flags {
CONFIG_EXTERNAL_LNA_A,
CONFIG_EXTERNAL_LNA_BG,
CONFIG_DOUBLE_ANTENNA,
- CONFIG_DISABLE_LINK_TUNING,
CONFIG_CHANNEL_HT40,
};
diff --git a/drivers/net/wireless/rt2x00/rt2x00link.c b/drivers/net/wireless/rt2x00/rt2x00link.c
index 2f8136c..801925b 100644
--- a/drivers/net/wireless/rt2x00/rt2x00link.c
+++ b/drivers/net/wireless/rt2x00/rt2x00link.c
@@ -359,10 +359,11 @@ static void rt2x00link_tuner(struct work_struct *work)
qual->rssi = link->avg_rssi.avg;
/*
- * Only perform the link tuning when Link tuning
- * has been enabled (This could have been disabled from the EEPROM).
+ * Check if link tuning is supported by the hardware, some hardware
+ * do not support link tuning at all, while other devices can disable
+ * the feature from the EEPROM.
*/
- if (!test_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags))
+ if (test_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags))
rt2x00dev->ops->lib->link_tuner(rt2x00dev, qual, link->count);
/*
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index 0123fbc..ee84536 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2690,6 +2690,7 @@ static int rt61pci_probe_hw(struct rt2x00_dev *rt2x00dev)
__set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags);
if (!modparam_nohwcrypt)
__set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags);
+ __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags);
/*
* Set the rssi offset.
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 286dd97..156f5d3 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -2135,6 +2135,7 @@ static int rt73usb_probe_hw(struct rt2x00_dev *rt2x00dev)
__set_bit(DRIVER_REQUIRE_FIRMWARE, &rt2x00dev->flags);
if (!modparam_nohwcrypt)
__set_bit(CONFIG_SUPPORT_HW_CRYPTO, &rt2x00dev->flags);
+ __set_bit(DRIVER_SUPPORT_LINK_TUNING, &rt2x00dev->flags);
/*
* Set the rssi offset.
--
1.7.1.1
^ permalink raw reply related
* [PATCH 04/17] rt2x00: Disable link tuning while scanning
From: Ivo van Doorn @ 2010-07-11 10:24 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless, users, Helmut Schaa
In-Reply-To: <201007111224.23529.IvDoorn@gmail.com>
While scanning the link tuner must be disabled. Otherwise
it will interfere with receiving all beacons for each channel
due to changing sensitivity levels.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
drivers/net/wireless/rt2x00/rt2400pci.c | 2 ++
drivers/net/wireless/rt2x00/rt2500pci.c | 2 ++
drivers/net/wireless/rt2x00/rt2500usb.c | 2 ++
drivers/net/wireless/rt2x00/rt2800lib.c | 2 ++
drivers/net/wireless/rt2x00/rt2x00.h | 3 +++
drivers/net/wireless/rt2x00/rt2x00link.c | 12 +++++++++++-
drivers/net/wireless/rt2x00/rt2x00mac.c | 24 +++++++++++++++++++++---
drivers/net/wireless/rt2x00/rt61pci.c | 2 ++
drivers/net/wireless/rt2x00/rt73usb.c | 2 ++
9 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index 5d5047f..d5f1fab 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -1567,6 +1567,8 @@ static const struct ieee80211_ops rt2400pci_mac80211_ops = {
.config = rt2x00mac_config,
.configure_filter = rt2x00mac_configure_filter,
.set_tim = rt2x00mac_set_tim,
+ .sw_scan_start = rt2x00mac_sw_scan_start,
+ .sw_scan_complete = rt2x00mac_sw_scan_complete,
.get_stats = rt2x00mac_get_stats,
.bss_info_changed = rt2x00mac_bss_info_changed,
.conf_tx = rt2400pci_conf_tx,
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index 1d4758a..096d6db 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -1864,6 +1864,8 @@ static const struct ieee80211_ops rt2500pci_mac80211_ops = {
.config = rt2x00mac_config,
.configure_filter = rt2x00mac_configure_filter,
.set_tim = rt2x00mac_set_tim,
+ .sw_scan_start = rt2x00mac_sw_scan_start,
+ .sw_scan_complete = rt2x00mac_sw_scan_complete,
.get_stats = rt2x00mac_get_stats,
.bss_info_changed = rt2x00mac_bss_info_changed,
.conf_tx = rt2x00mac_conf_tx,
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index 6e48a15..0b7888d 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -1755,6 +1755,8 @@ static const struct ieee80211_ops rt2500usb_mac80211_ops = {
.configure_filter = rt2x00mac_configure_filter,
.set_tim = rt2x00mac_set_tim,
.set_key = rt2x00mac_set_key,
+ .sw_scan_start = rt2x00mac_sw_scan_start,
+ .sw_scan_complete = rt2x00mac_sw_scan_complete,
.get_stats = rt2x00mac_get_stats,
.bss_info_changed = rt2x00mac_bss_info_changed,
.conf_tx = rt2x00mac_conf_tx,
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 255d089..bcf50fc 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -2896,6 +2896,8 @@ const struct ieee80211_ops rt2800_mac80211_ops = {
.configure_filter = rt2x00mac_configure_filter,
.set_tim = rt2x00mac_set_tim,
.set_key = rt2x00mac_set_key,
+ .sw_scan_start = rt2x00mac_sw_scan_start,
+ .sw_scan_complete = rt2x00mac_sw_scan_complete,
.get_stats = rt2x00mac_get_stats,
.get_tkip_seq = rt2800_get_tkip_seq,
.set_rts_threshold = rt2800_set_rts_threshold,
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 42f4661..bf5e3f3 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -628,6 +628,7 @@ enum rt2x00_flags {
DEVICE_STATE_INITIALIZED,
DEVICE_STATE_STARTED,
DEVICE_STATE_ENABLED_RADIO,
+ DEVICE_STATE_SCANNING,
/*
* Driver requirements
@@ -1081,6 +1082,8 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
#else
#define rt2x00mac_set_key NULL
#endif /* CONFIG_RT2X00_LIB_CRYPTO */
+void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw);
+void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw);
int rt2x00mac_get_stats(struct ieee80211_hw *hw,
struct ieee80211_low_level_stats *stats);
void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/rt2x00/rt2x00link.c b/drivers/net/wireless/rt2x00/rt2x00link.c
index 801925b..14f1d51 100644
--- a/drivers/net/wireless/rt2x00/rt2x00link.c
+++ b/drivers/net/wireless/rt2x00/rt2x00link.c
@@ -278,6 +278,15 @@ void rt2x00link_start_tuner(struct rt2x00_dev *rt2x00dev)
if (!rt2x00dev->intf_sta_count)
return;
+ /**
+ * While scanning, link tuning is disabled. By default
+ * the most sensitive settings will be used to make sure
+ * that all beacons and probe responses will be recieved
+ * during the scan.
+ */
+ if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags))
+ return;
+
rt2x00link_reset_tuner(rt2x00dev, false);
if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
@@ -338,7 +347,8 @@ static void rt2x00link_tuner(struct work_struct *work)
* When the radio is shutting down we should
* immediately cease all link tuning.
*/
- if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
+ if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) ||
+ test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags))
return;
/*
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 3b838c0..bbce496 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -347,9 +347,11 @@ int rt2x00mac_config(struct ieee80211_hw *hw, u32 changed)
/*
* Some configuration parameters (e.g. channel and antenna values) can
* only be set when the radio is enabled, but do require the RX to
- * be off.
+ * be off. During this period we should keep link tuning enabled,
+ * if for any reason the link tuner must be reset, this will be
+ * handled by rt2x00lib_config().
*/
- rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
+ rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF_LINK);
/*
* When we've just turned on the radio, we want to reprogram
@@ -367,7 +369,7 @@ int rt2x00mac_config(struct ieee80211_hw *hw, u32 changed)
rt2x00lib_config_antenna(rt2x00dev, rt2x00dev->default_ant);
/* Turn RX back on */
- rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
+ rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON_LINK);
return 0;
}
@@ -540,6 +542,22 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
EXPORT_SYMBOL_GPL(rt2x00mac_set_key);
#endif /* CONFIG_RT2X00_LIB_CRYPTO */
+void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw)
+{
+ struct rt2x00_dev *rt2x00dev = hw->priv;
+ __set_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags);
+ rt2x00link_stop_tuner(rt2x00dev);
+}
+EXPORT_SYMBOL_GPL(rt2x00mac_sw_scan_start);
+
+void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw)
+{
+ struct rt2x00_dev *rt2x00dev = hw->priv;
+ __clear_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags);
+ rt2x00link_start_tuner(rt2x00dev);
+}
+EXPORT_SYMBOL_GPL(rt2x00mac_sw_scan_complete);
+
int rt2x00mac_get_stats(struct ieee80211_hw *hw,
struct ieee80211_low_level_stats *stats)
{
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index ee84536..fe7bce7 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2784,6 +2784,8 @@ static const struct ieee80211_ops rt61pci_mac80211_ops = {
.configure_filter = rt2x00mac_configure_filter,
.set_tim = rt2x00mac_set_tim,
.set_key = rt2x00mac_set_key,
+ .sw_scan_start = rt2x00mac_sw_scan_start,
+ .sw_scan_complete = rt2x00mac_sw_scan_complete,
.get_stats = rt2x00mac_get_stats,
.bss_info_changed = rt2x00mac_bss_info_changed,
.conf_tx = rt61pci_conf_tx,
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 156f5d3..9ea6a67 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -2229,6 +2229,8 @@ static const struct ieee80211_ops rt73usb_mac80211_ops = {
.configure_filter = rt2x00mac_configure_filter,
.set_tim = rt2x00mac_set_tim,
.set_key = rt2x00mac_set_key,
+ .sw_scan_start = rt2x00mac_sw_scan_start,
+ .sw_scan_complete = rt2x00mac_sw_scan_complete,
.get_stats = rt2x00mac_get_stats,
.bss_info_changed = rt2x00mac_bss_info_changed,
.conf_tx = rt73usb_conf_tx,
--
1.7.1.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox