Re: 14e4:4315 (Dell Wireless 1397) cannot find networks after use of b43 driver

2010-03-23 Thread Gábor Stefanik
On Tue, Mar 23, 2010 at 11:23 PM, Chris Lopes clo...@gmail.com wrote:
 I didn't try a cold reboot that did not involve the removal of
 battery and power supply, so maybe it would work.

 Honestly I am still perplexed (given modern hardware and software), as
 to why/how:
 1) Hibernate and un-hibernate, regardless of what happens in between
 with the wireless card, could somehow result in it stopping working
 2) Rebooting (warm), regardless of how the wireless card is messed up
 in my situation does not fix the problem
 3) Cold rebooting and warm rebooting are different in any way whatsoever

 (all of the above involve zero changes on the hard disk during the
 time when the OS is not running)

 Is this behavior some sort of feature with unintuitive results, or
 is it a bug?  And what is the buggy component, exactly?
 It seems like something that would happen with early 1990's technology.

 Also, are you saying that there is some sort of known problem that
 results in you having to recover the wireless via a cold-reboot?
 What is this problem and is it similar to my situation?

Well, the following sequence can easily happen:
1. You boot Vista. The Broadcom official driver initializes the card
(writing a complete register setup) with the embedded firmware.
2. You hibernate Vista. The card is un-initialized and prepared for
restore upon return from hibernation. Some registers are left in the
state they were originally, to aid in quicker restore.
3. You boot Linux. b43 finds the Broadcom card, and, seeing that it is
un-initialized, quickly initializes it (again, overwriting all
registers, including the ones left intact by hibernation) with your
installed firmware. Due to a known bug, the driver misses some part of
the initialization routine; we are working on fixing this,.
4. With the card only partially initialized, DMA TX is broken. (On
2.6.33, b43 works around this by falling back to PIO.)
5. You leave Linux. b43 either doesn't uninitialize the card at all,
or does a full uninit, in preparation for a shutdown (as opposed to
hibernate)
6. You restore Vista. The Broadcom driver expects the card to be in
the state it left it during hibernation; but it is really either in
the (broken) init state produced by Linux, or completely
uninitialized. The driver does a resume routine, assuming the card is
prepared for it. The result of this operation is completely undefined;
as my college programming professor once said: even if it becomes
self-aware and nukes the world, it is still operating correctly.
7. You scan for wireless networks. The card is in an undefined state,
so this obviously doesn't work!

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: BCM 43

2010-03-13 Thread Gábor Stefanik
On Sat, Mar 13, 2010 at 7:48 PM, Michael Buesch m...@bu3sch.de wrote:
 On Saturday 13 March 2010 19:38:01 Gábor Stefanik wrote:
  I know this one it is compatible with aircrack supporting injection
  Thank you for your invaluable help ..
  thank
 

 As a general rule, do not bug Michael with injection-related
 questions; the only one in the team who cares about injection is me.
 Exception: when an injection-related problem also affects hostapd,
 feel free to contact Michael.

 WTF?
 Injection is not my business at all. It doesn't have _anything_
 to do with the driver. It's purely a mac80211 stack feature.
 (So _any_ mac80211 based driver is supported by aircrack-ng, btw)

 So feel free to contact anybody but me, because I can't help you at all.

 --
 Greetings, Michael.


Well, it can definitely happen (and has happened in the past, though
not in b43) that a driver bug hindered injection. See iwlagn for an
example.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: BCM 43

2010-03-13 Thread Gábor Stefanik
On Sat, Mar 13, 2010 at 7:05 PM, mic cat micac...@gmail.com wrote:
 Hi all

 i have 2 Broadcom network controller :
            BCM4312 802.11 B/G 14E4:4315

This is supported in 2.6.32 and newer; though you may need to compile
with CONFIG_B43_FORCE_PIO if you have a netbook and/or a machine with
PhoenixBIOS. (The latest compat-wireless package handles DMA/PIO
selection automatically, no need to tinker with config options
anymore.)

Note that the kernel in BT4 is older than 2.6.32 - you need to compile
 install compat-wireless to gain support for this card. (Remember to
apply any mac80211 patches that were present in the kernel to
compat-wireless!)

            bcm 43XX 1.0 14e4:432b

This is a BCM4322 (N-PHY). Work on it is ongoing.


 I know this one it is compatible with aircrack supporting injection
 Thank you for your invaluable help ..
 thank


As a general rule, do not bug Michael with injection-related
questions; the only one in the team who cares about injection is me.
Exception: when an injection-related problem also affects hostapd,
feel free to contact Michael.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: BCM4312 (14e4:4315) in Lenovo Ideapad S12 cannot scan with 2.6.33

2010-03-08 Thread Gábor Stefanik
On Mon, Mar 8, 2010 at 11:28 AM, Marc Haber mh+bcm43xx-...@zugschlus.de wrote:
 Hi Larry,

 On Sat, Mar 06, 2010 at 07:57:57AM -0600, Larry Finger wrote:
 On 03/06/2010 04:07 AM, Marc Haber wrote:
  On Fri, Mar 05, 2010 at 05:54:24PM +, Chris Vine wrote:
  You can get the Ideapad to work by forcing use of the PIO however.
 
  How exactly do I do this? I remember trying by adding some options to
  /etc/modprobe.d/b43, but the module didn't seem to understand this. I
  don't have the ideapad at hand at the moment, so I cannot look, but I
  can try tonight.

 Unless you are getting the DMA error, choosing PIO will not help. If you are
 getting that error, it will say so in the dmesg output.

 I have looked again, and the fatal DMA error is indeed there. It
 suggested setting CONFIG_B43_FORCE_PIO=y, which I did despite of the
 very clear warnings given in the make menuconfig help.

 However, the DMA error has vanished, but my B43 still says that the
 interface doesn't support scanning.

That message sounds like you are using iwlist to scan - try iw instead.


 Greetings
 Marc

 --
 -
 Marc Haber         | I don't trust Computers. They | Mailadresse im Header
 Mannheim, Germany  |  lose things.    Winona Ryder | Fon: *49 621 72739834
 Nordisch by Nature |  How to make an American Quilt | Fax: *49 3221 2323190
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: BCM4312 (14e4:4315) in Lenovo Ideapad S12 cannot scan with 2.6.33

2010-03-08 Thread Gábor Stefanik
2010/3/8 Marc Haber mh+bcm43xx-d...@zugschlus.de:
 Hi,

 On Mon, Mar 08, 2010 at 12:54:44PM +0100, Gábor Stefanik wrote:
 That message sounds like you are using iwlist to scan - try iw instead.

 Yes, I am using iwlist. Has this changed? Have the tools like wicd
 and/or network-manager already adapted to use the new tools/API?

AFAIK not, but iw gives more meaningful error messages in case of a failure.


 On the box that I am currently using (which has a ipw2200, oh
 wonderful old times), iw list returns nl80211 not found. Which
 option is my kernel missing?

Probably nothing - rather, your libnl is too old (older than
1.0-pre8). However, you can't use iw with ipw2200 - it only supports
drivers that use cfg80211.


 Greetings
 Marc

 --
 -
 Marc Haber         | I don't trust Computers. They | Mailadresse im Header
 Mannheim, Germany  |  lose things.    Winona Ryder | Fon: *49 621 72739834
 Nordisch by Nature |  How to make an American Quilt | Fax: *49 3221 2323190




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-03-04 Thread Gábor Stefanik
On Thu, Mar 4, 2010 at 1:30 AM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 03/02/2010 03:57 PM, Michael Buesch wrote:

 A bug in the PCI-E core code is able to show such behavior, because all 
 memory
 transfers (MMIO and DMA) from the PCI device to the wireless core are 
 translated
 by the PCI-E core.
 I think the whole PCI-E core code has to be audited (also the specs, 
 probably).

 I have nearly finished the update on the code section of the specs page at
 http://bcm-v4.sipsolutions.net/PCI-E. The part that is not done involves the
 sections that read an address from the SPROM and perform operations on that 
 address.

 I found that the chip common registers

Do you mean the ChipCommon registers or the Backplane common registers?

 are mapped at 12K for newer cores on
 PCIe. This explains the 0x3XXX addresses. Similarly, the PCIe registers are
 mapped at 8K - the 0x2XXX addresses. The SPROM is shadowed at 4K or 0x1XXX.

 Larry





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: BCM4312 (14e4:4315) in Lenovo Ideapad S12 cannot scan with 2.6.33

2010-03-04 Thread Gábor Stefanik
On Thu, Mar 4, 2010 at 11:36 PM, Marc Haber mh+bcm43xx-...@zugschlus.de wrote:
 On Thu, Mar 04, 2010 at 01:49:14PM -0500, William Bourque wrote:
 Silly question, but did you try to up (ifconfig wlan0 up) the
 interface before scanning?

 I tried ip link set dev wlan0 up, which gave me a few more dmesg lines:
 b43 ssb0:0: firmware: requesting b43/ucode15.fw
 b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
 b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
 b43-phy0: Loading firmware version 478.108 (2008-07-01 00.50:23)
 ADDRCONF(NETDEV_UP): wlan0: link is not ready

 iwlist scan wlan0 still says 'doesn't support scanning

Is your kernel compiled with WEXT scanning support? AFAIK it is
deprecated in 2.6.33 in favor of nl80211 (i.e. iw dev wlan0 scan),
so it is not auto-selected.


 Greetings
 Marc

 --
 -
 Marc Haber         | I don't trust Computers. They | Mailadresse im Header
 Mannheim, Germany  |  lose things.    Winona Ryder | Fon: *49 621 72739834
 Nordisch by Nature |  How to make an American Quilt | Fax: *49 3221 2323190
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Mailing list test, please ignore

2010-02-28 Thread Gábor Stefanik
Mailing list test, please ignore.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-28 Thread Gábor Stefanik
2010/2/28 Nathan Schulte rekl...@gmail.com:
 On Sat, Feb 27, 2010 at 7:03 PM, Nathan Schulte rekl...@gmail.com wrote:
 2010/2/27 Larry Finger larry.fin...@lwfinger.net:
 The printk's I sent yesterday can have timing info, but the timestamps 
 would not
 be exactly coordinated - printk values seem to be generated when logged, not
 when requested.
 I modified mmiotrace to log via printk as well, which should give the
 desired results.

 I will post the same mmiotraces as requested before, once I complete them.
 http://vulcan.ist.unomaha.edu/~nmschulte/mmiotraces_syslog.tar.bz2

 *_syslog contains mmiotrace and pci read/write synchronously merged
 via printk to syslog.  The log messages were prefixed with ~~, and are
 in context with the rest of syslog.  A simple awk should be able to
 remove the context, but there's not much of it (and what there is is
 relevant to the drivers in question), so I left it in.

 -Nate


OK, this dump shows the 0x280a write happening with core 3, i.e. PCIE,
active. So, it is indeed probably the PCIE misc configuration
routine. Why it's 0x280a is still a mystery to me, it should be 0x100a
according to the specs.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-28 Thread Gábor Stefanik
On Sun, Feb 28, 2010 at 7:00 PM, William Bourque
william.bour...@polymtl.ca wrote:
 Chris Vine wrote:
 This doesn't help on my netbook, I am afraid.

 I confirm, it still crashes on my notebook as well. However the new
 fallback to PIO behavior introduced earlier do a fine job getting it back
 on track.

 Btw, you are often refering to some documentation that document the register
 for this device, where could I find it? I probably won't be able to do much,
 but I'm curious to see...

 - William

The documentation is available @ bcm-v4.sipsolutions.net - however,
this doesn't yet contain the SSB specs.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-28 Thread Gábor Stefanik
On Sun, Feb 28, 2010 at 7:00 PM, William Bourque
william.bour...@polymtl.ca wrote:
 I confirm, it still crashes on my notebook as well. However the new
 fallback to PIO behavior introduced earlier do a fine job getting it back
 on track.

 Btw, you are often refering to some documentation that document the register
 for this device, where could I find it? I probably won't be able to do much,
 but I'm curious to see...

 - William

Thanks!

New test patch attached.

Please CC linux-wirel...@vger.kernel.org on further e-mails,
bcm43xx-dev appears to be having problems.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)


lpphy-test.patch
Description: Binary data
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-28 Thread Gábor Stefanik
2010/2/28 Nathan Schulte rekl...@gmail.com:
 2010/2/28 Gábor Stefanik netrolller...@gmail.com:
 OK, this dump shows the 0x280a write happening with core 3, i.e. PCIE,
 active. So, it is indeed probably the PCIE misc configuration
 routine. Why it's 0x280a is still a mystery to me, it should be 0x100a
 according to the specs.
 Unless I'm reading the logs wrong, isn't wl setting bit 0x8000 when
 core 1 is mapped (0 indexed cores, 0x18001000 mapped to space 0)?
 And b43 appears to do it when core 0 is mapped (0x1800 mapped to
 space 0).  b43 also reads from 0x100a after writing to 0x280a, and it
 reads as 0x8000 not set (while the 0x280a check show it is set).

 This is when comparing the wl_cold and b43_cold logs.

 -Nate


The latest patch, which is a partial success according to some
testers, writes to core 1 (PCI-E) instead of core 0 (ChipCommon).

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-27 Thread Gábor Stefanik
On Sat, Feb 27, 2010 at 5:37 PM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 02/27/2010 10:08 AM, Michael Buesch wrote:
 On Saturday 27 February 2010 17:05:41 Larry Finger wrote:
 On 02/27/2010 09:20 AM, Michael Buesch wrote:
 On Saturday 27 February 2010 02:41:48 Gábor Stefanik wrote:
 Someone should test the following:
 -Open drivers/ssb/driver_chipcommon_pmu.c
 -In ssb_pmu_init, replace 0x4325 with 0x4312.

 Uh, wait a second. Do _all_ cards that show the behavior have a PMU on the 
 SSB?
 If so, you should really make sure the PMU setup is correct. If the PMU
 cuts power to the device at inappropriate times, it sure does result in 
 DMA errors (and
 silent MMIO errors).

 Yes, all of the LP PHY 14e4:4315 devices have a PMU. Mine shows Found rev 
 1 PMU
 (capabilities 0x02A62F01). As I recall, at least one of the problem devices
 shows the same capabilities.

 *HINT HINT HINT* ;)
 Please make sure the PMU code really is correct.

 Where are the specs that were used to write the original code? I cannot find
 them in either the V3 or V4 pages.

 Larry
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


So, a quick status update, from what I've found yesterday:

1. We get the PMU setup wrong. Bit 0x200 is being set, despite the
PMU being rev1. Also, PMU setup is done too early - at least wl reads
the SPROM before setting up the PMU. A write of 0xcbb to offset 0x618
is also missing - I seem to remember that this change has been tried
already, to no avail; but it may be a prerequisite of the real fix.
2. Just before the SPROM readout, we are missing a Set 0x8000 in
MMIO offset 0x280a. This looks curiously like PCI-E Miscellaneous
Configuration, from http://bcm-v4.sipsolutions.net/PCI-E - and
indeed, the value read out from 0x280a is identical to offset 0xa in
my SPROM. So, the right thing to do here is probably Switch to the
PCIE core, set 0x8000 in MIMO offset 0x80a (or maybe 0x1000a?), switch
back to ChipCommon. I don't know what core is active during this
write, as mmiotrace doesn't catch pci_read/write_config_dword calls.
Larry, do you know a way to monitor PCI config space access in a way
that can be matched (e.g. using timestamps) to the MMIO trace?
3. Right after the SPROM is read, wl writes zeros to MMIO offsets
0x58 and 0x5c (32-bit), then does the PMU setup. These are not valid
registers for ChipCommon and PCIE, but for 802.11, they fall directly
into the DMA area! So, if these writes happened with the 802.11 core
active, they are probably significant.

I second Larry's question: where are the specs for the PMU init code?

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-27 Thread Gábor Stefanik
2010/2/27 Nathan Schulte rekl...@gmail.com:
 I've been following along with the linux-wireless thread, and wanted
 to bring up a few points.

 1) If the report in reference by Gábor: Well, we have a report from
 someone with an Intel T7250, ... is mine, note that my processor is
 actually a T5670 @ 1.8GHz, not a T7250 @ 2.0GHz.  Just for the record.

I was referring to Lucas, he has a T7250 AFAIK.


 2) My BIOS setup has only one option related to the chip: WLAN
 control: enabled/disabled, which just enables or disables the card.

That's basically RFKILL, were it misconfigured, you wouldn't even get
to the point where a DMA error can occur.


 2) In regard to Michael's statement about having someone with the
 hardware who can do some real debug work;  I have the hardware, I like
 to think I've got a fairly good idea of what's going on (I'm able to
 follow along), I can read and understand the src (but as mentioned,
 there is a lot of indirection, I have little idea what is actually
 happening when).  I'm more than willing to help, but learning the ssb
 and b43 drivers in and out is quite a large task.

 Just my thoughts, hope I'm not just getting in the way.

 -Nate


Thanks - but currently I'm still trying to find out how you can trace
PCI config space accesses (pci_config_read/write_(d)word - if you have
an idea on this, please post it). However, I will probably have a few
test patches for you soon.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-27 Thread Gábor Stefanik
2010/2/28 Nathan Schulte rekl...@gmail.com:
 2010/2/27 Gábor Stefanik netrolller...@gmail.com:
 OK, I whipped up a quick test patch with changes found so far
 implemented. Please test if this improves the situation.
 Where can I find this patch?

 -Nate


Oops... yes, I forgot it. Here it is!

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)


lpphy-test.patch
Description: Binary data
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-27 Thread Gábor Stefanik
2010/2/28 Nathan Schulte rekl...@gmail.com:
 2010/2/27 Gábor Stefanik netrolller...@gmail.com:
 Oops... yes, I forgot it. Here it is!
 No luck from me either.

 And by the way, Lucas and I have the exact same hardware, so his is
 indeed a T5670 as well.

 -Nate


Are you sure it is exactly the same? There are usually multiple
configurations of the same laptop model available, e.g. I have an Acer
5720ZG with Pentium E2330, but it is also available with e.g. Pentium
E2370.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-26 Thread Gábor Stefanik
On Fri, Feb 26, 2010 at 8:33 AM, Nathan Schulte rekl...@gmail.com wrote:
 2010/1/25 Gábor Stefanik netrolller...@gmail.com

 A few things to check:

 -Is this on PhoenixBios?
 I have the same laptop as Lucas, a Dell Vostro 1510.  As Lucas has
 mentioned, this is indeed a PhoenixBIOS

 -Does loading wl, doing a warm reboot and loading b43 make b43 work?
 I am running Debian Squeeze with the latest stock kernel (linux 2.6.32-5).
 I cold booted with b43 and ssb blacklisted, and loaded the wl module.
 I confirmed that it operated correctly, unloaded the wl module, and
 loaded b43 (and subsequently required modules).
 This did indeed make b43 work, contrary to Lucas's claim, at least for me.

 -Try updating the firmware to v478. (AFAIK there was someone on the
 list before with a DMA error on a non-ULV, and it was solved by
 updating the firmware. Broadcom's wl.ko uses a v5xx firmware for the
 record.)
 I am using the 4.178.10.4 driver as suggested on the linuxwireless
 page (http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2),
 which it claims is actually 4.174.64.19.
 My logs state -- Loading firmware version 478.104.

The firmware version included in 4.174.64.19 is 478.104 (notice that
is is not 4178.104, but 478.104 - the driver and firmware versions are
not related!).


 snip

 And the Fatal DMA error: 0x400 repeats from there.

 -Nate


Hi!

Could you post an mmiotrace of the following?
 - ssb+b43 failing on cold boot
 - wl loaded on cold boot
 - wl loaded on warm boot (with wl having been loaded prior to reboot)
 - ssb+b43 working on warm boot (same as above)

Thanks,
Gábor

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-26 Thread Gábor Stefanik
On Fri, Feb 26, 2010 at 12:12 PM,  rekl...@gmail.com wrote:
 On Feb 26, 2010 3:23am, Gábor Stefanik netrolller...@gmail.com wrote:
 The firmware version included in 4.174.64.19 is 478.104 (notice that
 is is not 4178.104, but 478.104 - the driver and firmware versions are
 not related!).

 Ah yes, sorry for my confusion.

 Hi!
 Hello there! Thanks for the speedy reply, hopefully I can help get to the
 bottom of this.

 Could you post an mmiotrace of the following?
 Certainly. As the stock Debian kernel doesn't appear to have the MMIO tracer
 enabled, these are from a fresh linux 2.6.33 mainline build (with
 CONFIG_B43_DEBUG=y and CONFIG_B43_FORCE_PIO=n)

 (some time passes)

 Err... I seem to be having issues getting the driver to fail as before. I
 have had the driver fail on a 2.6.33 build just hours ago, but with my new
 configuration, it is not.


Make sure to actually cut power to the system  discharge any stray
voltages by pressing the Power On button with the powrer still cut
before cold boot tests. The effect of wl seems to survive reboots.

 I will test using the stock kernel config with mmiotracer enabled.

 Thanks,
 Gábor

 -Nate



-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-26 Thread Gábor Stefanik
2010/2/26 Nathan Schulte rekl...@gmail.com:
 I apologize for so many messages. I wanted to note that the reasoning
 for lsmod only showing the ntfs module, is due the fact that ntfs (and
 b43 and ssb) are the only drivers compiled as modules.

 When loading b43 without mmiotrace running, I receive a Fatal DMA
 error: 0x800 within a few seconds.
 I receive no other errors following, but I am unable to associate with
 an access point.
 If I then unload b43 and ssb, and reload it, I receive a Fatal DMA
 error: 0x400 (and can generate one for every ifconfig wlan0 down/up I
 perform).

 The archive http://vulcan.ist.unomaha.edu/~nmschulte/traces.tar.bz2
 contains two traces.  The first trace (one) is after a cold boot,
 loading b43, associating with an access point, issuing ifconfig wlan0
 down, ifconfig wlan0 up, and then stopping the trace.  Immediately
 after stopping the trace, I receive a 0x800 error in my logs.  I then
 unloaded b43 and ssb, and started a new mmiotrace (two).  I then
 loaded b43, issued ifconfig wlan0 down, ifconfig wlan0 up, and again
 issued ifconfig wlan0 down/up (preceeded by trace markers denoting
 such), and then stopped the trace.


It is expected that you only get a single DMA error with 2.6.33, as
the driver was modified in 2.6.33 to give up after a single failure.
The controller restart mechanism has yet to show a successful error
recovery for any card, OTOH the repeated retries had nasty side
effects on some machines (including lockups and crashes), so the
entire retry mechanism was removed.

However, you did not do what I requested - before the 2nd mmiotrace,
load and unload wl (the hybrid driver), not b43 - it is wl that
appears to make the card work.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Re: Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-26 Thread Gábor Stefanik
On Fri, Feb 26, 2010 at 4:04 PM,  rekl...@gmail.com wrote:
 On Feb 26, 2010 8:49am, Gábor Stefanik netrolller...@gmail.com wrote:
 However, you did not do what I requested - before the 2nd mmiotrace,
 load and unload wl (the hybrid driver), not b43 - it is wl that
 appears to make the card work.
 Correct, I did not do this. This is because (the current available version
 of) the hybrid driver does not build against 2.6.33. I need to build 2.6.32
 vanilla, or the stock kernel. I will do that now.

 However, I thought it significant that using b43 from a cold boot works, so
 long as one is performing an mmiotrace. This is why I linked the
 tracers.tar.gz.

That's odd... the error only occurs when you stop the mmiotrace?!

BTW no need to load wl and b43 on the same kernel - the effect of
loading wl survives a reboot or a kexec.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-26 Thread Gábor Stefanik
2010/2/26 Larry Finger larry.fin...@lwfinger.net:
 On 02/26/2010 09:27 AM, Gábor Stefanik wrote:
 On Fri, Feb 26, 2010 at 4:13 PM,  rekl...@gmail.com wrote:
 On Feb 26, 2010 9:08am, Gábor Stefanik netrolller...@gmail.com wrote:
 That's odd... the error only occurs when you stop the mmiotrace?!
 Yes, the error only occurs when I stop the mmiotrace with b43 loaded, or if
 I load b43 outside of an mmiotrace.

 BTW no need to load wl and b43 on the same kernel - the effect of
 loading wl survives a reboot or a kexec.
 But then I cannot get you the mmiotrace as you requested. If all you're
 after is the mmiotrace of b43 from cold and b43 from warm with wl magic, I
 can do that now. I don't know how helpful this will be given that b43
 appears to work so long as an mmiotrace is being performed.

 The differences will still be there in the dump, even if something
 related to mmiotrace seemingly works around the bug.
 However, the most helpful logs would be the ones produced by wl
 itself, on a cold boot.

 This thread is most interesting. Thanks for keeping it on the list, even 
 though
 the OP doesn't seem to know about Reply All.

 The fact that the 4315 doesn't get the DMA errors until MMIO tracing is turned
 off suggests some kind of subtle timing difference. I'll look at the Broadcom
 code to see if there are some delay statements in the interrupt handling, or 
 if
 their processing does things in a different order.

 Larry



Note that enabling MMIO trace touches quite a few areas of the kernel
rather hard - for example, it AFAIK disables SMP. I wonder if acpi=off
or blacklisting processor would have an effect here...

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-26 Thread Gábor Stefanik
2010/2/26 Chris Vine ch...@cvine.freeserve.co.uk:
 On Fri, 26 Feb 2010 18:22:26 +0100
 Gábor Stefanik netrolller...@gmail.com wrote:
 Note that enabling MMIO trace touches quite a few areas of the kernel
 rather hard - for example, it AFAIK disables SMP. I wonder if acpi=off
 or blacklisting processor would have an effect here...

 I have reported previously (some months ago) that this delays the onset
 of DMA errors, but it just masks the problem.  It has the same effect as
 the earlier pm_qos patch.  The real issue appears to lie somewhere
 else: it is noise introduced by timing differences.

 Chris

I suspect that timing is not the true reason for the problem, rather,
there is a race condition between PhoenixBIOS and b43, for which wl
probably uses a (firmware?) workaround.

BTW there is an interesting difference in the early init between wl
and b43: b43 sets bit 0x200 in core register 0x600, while wl sets
0x8000 in register 0x280a - an undocumented register. Larry, do you
have any info on this?

--
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-02-26 Thread Gábor Stefanik
Someone should test the following:
-Open drivers/ssb/driver_chipcommon_pmu.c
-In ssb_pmu_init, replace 0x4325 with 0x4312. (This is not the correct
way to fix this, but should be enough for a test. The correct fix
would be special-casing for both 4312 and 4325, at least according to
the MMIO trace produced using wl. Or maybe the if-branch is the
wrong-way around - only Larry can tell.)

BTW does anyone know of a way to trace pci_read/write_config_dword
calls? Mmiotrace doesn't capture these.

2010/2/26 Chris Vine ch...@cvine.freeserve.co.uk:
 On Fri, 26 Feb 2010 23:03:28 +0100
 Gábor Stefanik netrolller...@gmail.com wrote:
 I suspect that timing is not the true reason for the problem, rather,
 there is a race condition between PhoenixBIOS and b43, for which wl
 probably uses a (firmware?) workaround.

 I meant that it is the reason for the masking of the DMA errors, rather
 than their cause.  (That is not to say that your diagnosis of the
 problem may not be right.)

 Chris






-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH V2] ssb: Add PCI ID 0x4322 to PMU handling

2010-02-21 Thread Gábor Stefanik
2010/2/21 Rafał Miłecki zaj...@gmail.com:
 2010/2/20 Larry Finger larry.fin...@lwfinger.net:
 Some of the N PHYs need a revision in the handling of the PMU.

 Signed-off-by: Larry Finger larry.fin...@lwfinger.net
 ---

 John,

 This will be needed for some of the N PHY devices - 2.6.34 amterial.

 Larry
 ---

 V2 - Fix typo in subject line of commit message.

 amterial you say? ;)

Taht's not prat of the cimmot megasse, it is olny a ntoe to Jhon.
Deons't mtater eevn if it is cmolpelety jmulbed up.


 --
 Rafał
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH] ssb: Add PCI ID 0x4322 to PHU handling

2010-02-20 Thread Gábor Stefanik
On Fri, Feb 19, 2010 at 7:02 PM, Larry Finger larry.fin...@lwfinger.net wrote:
 Some of the N PHYs need a revision in the handling of the PMU.

 Signed-off-by: Larry Finger larry.fin...@lwfinger.net
 ---

 John,

 This will be needed for some of the N PHY devices - 2.6.34 amterial.

 Larry
 ---

 Index: wireless-testing/drivers/ssb/driver_chipcommon_pmu.c
 ===
 --- wireless-testing.orig/drivers/ssb/driver_chipcommon_pmu.c
 +++ wireless-testing/drivers/ssb/driver_chipcommon_pmu.c
 @@ -332,6 +332,12 @@ static void ssb_pmu_pll_init(struct ssb_
        case 0x5354:
                ssb_pmu0_pllinit_r0(cc, crystalfreq);
                break;
 +       case 0x4322:
 +               if (cc-pmu.rev == 2) {
 +                       chipco_write32(cc, SSB_CHIPCO_PLLCTL_ADDR, 
 0x000A);
 +                       chipco_write32(cc, SSB_CHIPCO_PLLCTL_DATA, 
 0x380005C0);
 +               }
 +               break;
        default:
                ssb_printk(KERN_ERR PFX
                           ERROR: PLL init unknown for device %04X\n,
 @@ -417,6 +423,7 @@ static void ssb_pmu_resources_init(struc

        switch (bus-chip_id) {
        case 0x4312:
 +       case 0x4322:
                /* We keep the default settings:
                 * min_msk = 0xCBB
                 * max_msk = 0x7
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Typo in title - PHU should be PMU.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [RFC][PATCH] b43: LP-PHY: always adjust gain table on channel switch

2010-02-06 Thread Gábor Stefanik
On Sat, Feb 6, 2010 at 1:06 AM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 02/05/2010 10:27 AM, Gábor Stefanik wrote:
 On Fri, Feb 5, 2010 at 4:24 AM, Larry Finger larry.fin...@lwfinger.net 
 wrote:
 On 02/04/2010 02:57 PM, Rafał Miłecki wrote:
 ---
 Gábor: I think you missed specs here. Could you check whole routine just 
 for
 sure, please? I don't understand whole radio and chanspec magic yet.
 ---
  drivers/net/wireless/b43/phy_lp.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_lp.c 
 b/drivers/net/wireless/b43/phy_lp.c
 index 185219e..61009ee 100644
 --- a/drivers/net/wireless/b43/phy_lp.c
 +++ b/drivers/net/wireless/b43/phy_lp.c
 @@ -2655,8 +2655,8 @@ static int b43_lpphy_op_switch_channel(struct 
 b43_wldev *dev,
               if (err)
                       return err;
               lpphy_set_analog_filter(dev, new_channel);
 -             lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));
       }
 +     lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));

       lpphy-channel = new_channel;
       b43_write16(dev, B43_MMIO_CHANNEL, new_channel);

 Both the lpphy_set_analog_filter() and lpphy_adjust_gain_table() calls 
 should be
 outside the if statement. I changed the spec a little. It used to test 
 radio
 enabled, but I have found that is always true for our driver.

 Larry



 Isn't set_analog_filter() rev0/1-specific?

 The new routines are described in

 http://bcm-v4.sipsolutions.net/802.11/PHY/LP/TxFilterInit

 http://bcm-v4.sipsolutions.net/802.11/PHY/LP/TxDigFiltUcodeRev2

 The revised routines are:

 http://bcm-v4.sipsolutions.net/802.11/PHY/LP/SetChanSpecLPPHY

 http://bcm-v4.sipsolutions.net/802.11/PHY/LP/PR41573

 Larry



Note to implementors: Chanspec is broadcrap, please do NOT use in b43.
Use a struct if you need the extra parameters contained in chanspec.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: test

2010-02-06 Thread Gábor Stefanik
Why would it be misconfigured?

On Sat, Feb 6, 2010 at 8:11 PM, strk s...@keybit.net wrote:
 Is it me or this list is misconfigured ?

 --srrk;
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [RFC][PATCH] b43: LP-PHY: always adjust gain table on channel switch

2010-02-05 Thread Gábor Stefanik
On Fri, Feb 5, 2010 at 4:24 AM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 02/04/2010 02:57 PM, Rafał Miłecki wrote:
 ---
 Gábor: I think you missed specs here. Could you check whole routine just for
 sure, please? I don't understand whole radio and chanspec magic yet.
 ---
  drivers/net/wireless/b43/phy_lp.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_lp.c 
 b/drivers/net/wireless/b43/phy_lp.c
 index 185219e..61009ee 100644
 --- a/drivers/net/wireless/b43/phy_lp.c
 +++ b/drivers/net/wireless/b43/phy_lp.c
 @@ -2655,8 +2655,8 @@ static int b43_lpphy_op_switch_channel(struct 
 b43_wldev *dev,
               if (err)
                       return err;
               lpphy_set_analog_filter(dev, new_channel);
 -             lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));
       }
 +     lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));

       lpphy-channel = new_channel;
       b43_write16(dev, B43_MMIO_CHANNEL, new_channel);

 Both the lpphy_set_analog_filter() and lpphy_adjust_gain_table() calls should 
 be
 outside the if statement. I changed the spec a little. It used to test radio
 enabled, but I have found that is always true for our driver.

 Larry



Isn't set_analog_filter() rev0/1-specific?

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [RFC][PATCH] b43: LP-PHY: always adjust gain table on channel switch

2010-02-05 Thread Gábor Stefanik
On Fri, Feb 5, 2010 at 4:24 AM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 02/04/2010 02:57 PM, Rafał Miłecki wrote:
 ---
 Gábor: I think you missed specs here. Could you check whole routine just for
 sure, please? I don't understand whole radio and chanspec magic yet.
 ---
  drivers/net/wireless/b43/phy_lp.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_lp.c 
 b/drivers/net/wireless/b43/phy_lp.c
 index 185219e..61009ee 100644
 --- a/drivers/net/wireless/b43/phy_lp.c
 +++ b/drivers/net/wireless/b43/phy_lp.c
 @@ -2655,8 +2655,8 @@ static int b43_lpphy_op_switch_channel(struct 
 b43_wldev *dev,
               if (err)
                       return err;
               lpphy_set_analog_filter(dev, new_channel);
 -             lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));
       }
 +     lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));

       lpphy-channel = new_channel;
       b43_write16(dev, B43_MMIO_CHANNEL, new_channel);

 Both the lpphy_set_analog_filter() and lpphy_adjust_gain_table() calls should 
 be
 outside the if statement. I changed the spec a little. It used to test radio
 enabled, but I have found that is always true for our driver.

 Larry



Isn't set_analog_filter() rev0/1-specific?

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH] b43: N-PHY: handle allocation fail in samples generation

2010-02-05 Thread Gábor Stefanik
2010/2/4 Rafał Miłecki zaj...@gmail.com:
 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
  drivers/net/wireless/b43/phy_n.c |    4 
  1 files changed, 4 insertions(+), 0 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_n.c 
 b/drivers/net/wireless/b43/phy_n.c
 index 074b34c..795bb1e 100644
 --- a/drivers/net/wireless/b43/phy_n.c
 +++ b/drivers/net/wireless/b43/phy_n.c
 @@ -1069,6 +1069,10 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev 
 *dev, u32 freq, u16 max,
        }

        samples = kzalloc(len * sizeof(struct b43_c32), GFP_KERNEL);
 +       if (!samples) {
 +               b43err(dev-wl, allocation for samples generation failed\n);
 +               return 0;

return -ENOMEM;

 +       }
        rot = (((freq * 36) / bw)  16) / 100;
        angle = 0;

 --
 1.6.4.2

 --
 To unsubscribe from this list: send the line unsubscribe linux-wireless in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [RFC][PATCH] b43: LP-PHY: always adjust gain table on channel switch

2010-02-05 Thread Gábor Stefanik
On Fri, Feb 5, 2010 at 7:09 PM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 02/05/2010 10:41 AM, Gábor Stefanik wrote:
 On Fri, Feb 5, 2010 at 4:24 AM, Larry Finger larry.fin...@lwfinger.net 
 wrote:
 On 02/04/2010 02:57 PM, Rafał Miłecki wrote:
 ---
 Gábor: I think you missed specs here. Could you check whole routine just 
 for
 sure, please? I don't understand whole radio and chanspec magic yet.
 ---
  drivers/net/wireless/b43/phy_lp.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_lp.c 
 b/drivers/net/wireless/b43/phy_lp.c
 index 185219e..61009ee 100644
 --- a/drivers/net/wireless/b43/phy_lp.c
 +++ b/drivers/net/wireless/b43/phy_lp.c
 @@ -2655,8 +2655,8 @@ static int b43_lpphy_op_switch_channel(struct 
 b43_wldev *dev,
               if (err)
                       return err;
               lpphy_set_analog_filter(dev, new_channel);
 -             lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));
       }
 +     lpphy_adjust_gain_table(dev, channel2freq_lp(new_channel));

       lpphy-channel = new_channel;
       b43_write16(dev, B43_MMIO_CHANNEL, new_channel);

 Both the lpphy_set_analog_filter() and lpphy_adjust_gain_table() calls 
 should be
 outside the if statement. I changed the spec a little. It used to test 
 radio
 enabled, but I have found that is always true for our driver.

 Larry



 Isn't set_analog_filter() rev0/1-specific?

 It was in the 4.174.64.19 driver that I RE'd when you wrote the LP PHY code.
 That as changed in 5.10.56.46, which I am now doing. It will take me a while 
 to
 complete the new routine LP PHY TX Filter Init and a routine that it calls.

 Certainly, there is no hurry that these changes be made. Whenever you or Rafał
 have time. There is no guarantee that these changes will have any effect on 
 the
 LP PHY operations. Hitting a moving target is not easy.

 Larry


Just out of curiosity, is 5.10.56.46 available anywhere (for firmware reasons)?

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH] b43: N-PHY: handle allocation fail in samples generation

2010-02-05 Thread Gábor Stefanik
2010/2/5 Rafał Miłecki zaj...@gmail.com:
 W dniu 5 lutego 2010 18:34 użytkownik Gábor Stefanik
 netrolller...@gmail.com napisał:
 2010/2/4 Rafał Miłecki zaj...@gmail.com:
 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
  drivers/net/wireless/b43/phy_n.c |    4 
  1 files changed, 4 insertions(+), 0 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_n.c 
 b/drivers/net/wireless/b43/phy_n.c
 index 074b34c..795bb1e 100644
 --- a/drivers/net/wireless/b43/phy_n.c
 +++ b/drivers/net/wireless/b43/phy_n.c
 @@ -1069,6 +1069,10 @@ static u16 b43_nphy_gen_load_samples(struct 
 b43_wldev *dev, u32 freq, u16 max,
        }

        samples = kzalloc(len * sizeof(struct b43_c32), GFP_KERNEL);
 +       if (!samples) {
 +               b43err(dev-wl, allocation for samples generation 
 failed\n);
 +               return 0;

 return -ENOMEM;

 Function was somehow designed to return unsigned only. Returning 0
 means error (see place where we call b43_nphy_gen_load_samples, we
 check result for 0 there.

 Is that OK then?

In that case, OK - I thought this could be passed up to userspace handlers.


 +       }
        rot = (((freq * 36) / bw)  16) / 100;
        angle = 0;

 --
 1.6.4.2

 --
 To unsubscribe from this list: send the line unsubscribe linux-wireless in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html




 --
 Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)




 --
 Rafał




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY Fatal DMA error 0x00000800 on non-ULV Core 2 Duo?!?!!??!

2010-01-25 Thread Gábor Stefanik
On Mon, Jan 25, 2010 at 9:15 PM, Lucas Thode ljth...@gmail.com wrote:
 ---start dmesg snippet---
 [17189.121003] b43-pci-bridge :06:00.0: PCI INT A disabled
 [17192.494272] cfg80211: Using static regulatory domain info
 [17192.494279] cfg80211: Regulatory domain: US
 [17192.494283]  (start_freq - end_freq @ bandwidth), (max_antenna_gain,
 max_eirp
 )
 [17192.494292]  (2402000 KHz - 2472000 KHz @ 4 KHz), (600 mBi, 2700 mBm)
 [17192.494299]  (517 KHz - 519 KHz @ 4 KHz), (600 mBi, 2300 mBm)
 [17192.494306]  (519 KHz - 521 KHz @ 4 KHz), (600 mBi, 2300 mBm)
 [17192.494314]  (521 KHz - 523 KHz @ 4 KHz), (600 mBi, 2300 mBm)
 [17192.494321]  (523 KHz - 533 KHz @ 4 KHz), (600 mBi, 2300 mBm)
 [17192.494328]  (5735000 KHz - 5835000 KHz @ 4 KHz), (600 mBi, 3000 mBm)
 [17192.494418] cfg80211: Calling CRDA for country: US
 [17192.658174] b43-pci-bridge :06:00.0: PCI INT A - GSI 19 (level, low)
 -
 IRQ 19
 [17192.658206] b43-pci-bridge :06:00.0: setting latency timer to 64
 [17192.724352] ssb: Sonics Silicon Backplane found on PCI device
 :06:00.0
 [17192.769108] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
 [17192.843094] phy0: Selected rate control algorithm 'minstrel'
 [17192.844206] Registered led device: b43-phy0::tx
 [17192.84] Registered led device: b43-phy0::rx
 [17192.844500] Registered led device: b43-phy0::radio
 [17192.844859] Broadcom 43xx driver loaded [ Features: PMLS, Firmware-ID:
 FW13 ]
 [17196.776755] b43 ssb0:0: firmware: requesting b43/ucode15.fw
 [17196.780967] b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
 [17196.784551] b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
 [17196.921708] b43-phy0: Loading firmware version 410.2160 (2007-05-26
 15:32:10)
 [17202.497881] ADDRCONF(NETDEV_UP): wlan0: link is not ready
 [17202.934136] b43-phy0 ERROR: Fatal DMA error: 0x0800, 0x,
 0x, 0x, 0x, 0x
 [17202.934153] b43-phy0: Controller RESET (DMA error) ...
 [17203.148369] b43-phy0: Loading firmware version 410.2160 (2007-05-26
 15:32:10)
 [17208.681254] b43-phy0: Controller restarted
 [17208.696481] b43-phy0 ERROR: Fatal DMA error: 0x0400, 0x,
 0x, 0x, 0x, 0x
 [17208.696490] b43-phy0: Controller RESET (DMA error) ...
 [17208.914882] b43-phy0: Loading firmware version 410.2160 (2007-05-26
 15:32:10)
 [17214.461361] b43-phy0: Controller restarted
 [17214.461610] b43-phy0 ERROR: Fatal DMA error: 0x0400, 0x,
 0x, 0x, 0x, 0x
 [17214.461626] b43-phy0: Controller RESET (DMA error) ...
 [17214.676285] b43-phy0: Loading firmware version 410.2160 (2007-05-26
 15:32:10)
 ---end dmesg snippet---...and on and on the dma errors go.

 This occured about (sorry, not sure exactly, but I don't think it quite
 matters with this particular error) when I used iwlist scan to search for
 wireless networks after I used the b43-fwcutter from Debian testing to
 install the firmware and re-inserted the driver with 'modprobe -r b43;
 modprobe b43'.

 kb...@kb1rd-mobroost:~$ uname -a
 Linux kb1rd-mobroost 2.6.32-trunk-amd64 #1 SMP Sun Jan 10 22:40:40 UTC 2010
 x86_64 GNU/Linux
 kb...@kb1rd-mobroost:~$ lspci -vvn | grep 43 -A7
 06:00.0 0280: 14e4:4315 (rev 01)
     Subsystem: 1028:000b
     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
 Stepping- SERR+ FastB2B- DisINTx-
     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort-
 MAbort- SERR- PERR- INTx-
     Latency: 0, Cache Line Size: 64 bytes
     Interrupt: pin A routed to IRQ 19
     Region 0: Memory at f400 (64-bit, non-prefetchable) [size=16K]
     Capabilities: access denied
     Kernel driver in use: b43-pci-bridge

 extraneous output having to do with my Ethernet chip snipped
 kb...@kb1rd-mobroost:~$ cat /proc/cpuinfo
 processor    : 0
 vendor_id    : GenuineIntel
 cpu family    : 6
 model        : 15
 model name    : Intel(R) Core(TM)2 Duo CPU T5670  @ 1.80GHz
 stepping    : 13
 cpu MHz        : 800.000
 cache size    : 2048 KB
 physical id    : 0
 siblings    : 2
 core id        : 0
 cpu cores    : 2
 apicid        : 0
 initial apicid    : 0
 fpu        : yes
 fpu_exception    : yes
 cpuid level    : 10
 wp        : yes
 flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
 pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
 constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor
 ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida
 bogomips    : 3590.43
 clflush size    : 64
 cache_alignment    : 64
 address sizes    : 36 bits physical, 48 bits virtual
 power management:

 output for core 1 snipped

 As you can tell, this processor is neither an Atom nor a ULV Core 2 Duo.
 The WLAN card is the Dell Wireless 1395 that came with the laptop (a Vostro
 1510).  I can build a custom kernel based on the Debian kernel sources if
 need be; just tell me 

Re: [PATCH 0/5] b43: more N-PHY stuff

2010-01-22 Thread Gábor Stefanik
2010/1/22 Rafał Miłecki zaj...@gmail.com:
 John, I hope to have patch submission fixed, please let me know if there
 is anything wrong still.

Nope, it is still base64-encoded.

I personally use Thunderbird 2 for patch submission (had weird
problems with Thunderbird 3 beta - not sure about the final version).


 Rafał Miłecki (5):
  b43: check band width
  b43: N-PHY: implement overriding RF control
  b43: N-PHY: add running samples
  b43: N-PHY: add setting power amplifier filters
  b43: N-PHY: add TX tone

  drivers/net/wireless/b43/main.c        |    6 +
  drivers/net/wireless/b43/phy_common.h  |    3 +
  drivers/net/wireless/b43/phy_n.c       |  253 
 ++--
  drivers/net/wireless/b43/tables_nphy.c |   61 
  drivers/net/wireless/b43/tables_nphy.h |   22 +++
  5 files changed, 330 insertions(+), 15 deletions(-)

 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH 2/5 V2] b43: N-PHY: implement and add multi-dimensional table writing

2010-01-18 Thread Gábor Stefanik
You don't even need to mention it, as Git handles offset/fuzzy patches
automatically.

2010/1/18 Rafał Miłecki zaj...@gmail.com:
 W dniu 18 stycznia 2010 01:28 użytkownik Gábor Stefanik
 netrolller...@gmail.com napisał:
 2010/1/18 Rafał Miłecki zaj...@gmail.com:
 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
 V2: updated to apply without fuzz

 Actually, you do not need to do that - offset or fuzzy patches will
 still be applied cleanly AFAIK, without any intervention.
 (John, correct me if I'm wrong here...)

 That's right, it actually did. I just wanted to don't bother John with
 wondering if everything gone correctly. I guess I could just mention
 it instead of sending patch :)

 --
 Rafał
 --
 To unsubscribe from this list: send the line unsubscribe linux-wireless in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH 2/7] b43: N-PHY: implement TX PHY cleanup and setup

2010-01-17 Thread Gábor Stefanik
2010/1/17 Rafał Miłecki zaj...@gmail.com:

 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
  drivers/net/wireless/b43/phy_n.c |  112
 +-
  1 files changed, 110 insertions(+), 2 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_n.c
 b/drivers/net/wireless/b43/phy_n.c
 index 4a1853b..34dd4a2 100644
 --- a/drivers/net/wireless/b43/phy_n.c
 +++ b/drivers/net/wireless/b43/phy_n.c
 @@ -1505,6 +1505,114 @@ static struct nphy_txgains
 b43_nphy_get_tx_gains(struct b43_wldev *dev)
        return target;
  }

 +/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/TxCalPhyCleanup */
 +static void b43_nphy_tx_cal_phy_cleanup(struct b43_wldev *dev)
 +{
 +       u16 *regs = dev-phy.n-tx_rx_cal_phy_saveregs;
 +
 +       if (dev-phy.rev = 3) {
 +               b43_phy_write(dev, B43_NPHY_AFECTL_C1, regs[0]);
 +               b43_phy_write(dev, B43_NPHY_AFECTL_C2, regs[1]);
 +               b43_phy_write(dev, B43_NPHY_AFECTL_OVER1, regs[2]);
 +               b43_phy_write(dev, B43_NPHY_AFECTL_OVER, regs[3]);
 +               b43_phy_write(dev, B43_NPHY_BBCFG, regs[4]);
 +               /* TODO: Write an N PHY Table with ID 8, length 1, offset 3,
 +                       width 16, and data from regs[5] */
 +               /* TODO: Write an N PHY Table with ID 8, length 1, offset
 19,

While you are at it, why aren't you programming these table writes?
The table handling functions are AFAIK already in place...

 +                       width 16, and data from regs[6] */
 +               b43_phy_write(dev, B43_NPHY_RFCTL_INTC1, regs[7]);
 +               b43_phy_write(dev, B43_NPHY_RFCTL_INTC2, regs[8]);
 +               b43_phy_write(dev, B43_NPHY_PAPD_EN0, regs[9]);
 +               b43_phy_write(dev, B43_NPHY_PAPD_EN1, regs[10]);
 +               b43_nphy_reset_cca(dev);
 +       } else {
 +               b43_phy_maskset(dev, B43_NPHY_AFECTL_C1, 0x0FFF, regs[0]);
 +               b43_phy_maskset(dev, B43_NPHY_AFECTL_C2, 0x0FFF, regs[1]);
 +               b43_phy_write(dev, B43_NPHY_AFECTL_OVER, regs[2]);
 +               /* TODO: Write an N PHY Table with ID 8, length 1, offset 2,
 +                       width 16, and data from regs[3] */
 +               /* TODO: Write an N PHY Table with ID 8, length 1, offset
 18,
 +                       width 16, and data from regs[4] */
 +               b43_phy_write(dev, B43_NPHY_RFCTL_INTC1, regs[5]);
 +               b43_phy_write(dev, B43_NPHY_RFCTL_INTC2, regs[6]);
 +       }
 +}
 +
 +/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/TxCalPhySetup */
 +static void b43_nphy_tx_cal_phy_setup(struct b43_wldev *dev)
 +{
 +       u16 *regs = dev-phy.n-tx_rx_cal_phy_saveregs;
 +       u16 tmp;
 +
 +       regs[0] = b43_phy_read(dev, B43_NPHY_AFECTL_C1);
 +       regs[1] = b43_phy_read(dev, B43_NPHY_AFECTL_C2);
 +       if (dev-phy.rev = 3) {
 +               b43_phy_maskset(dev, B43_NPHY_AFECTL_C1, 0xF0FF, 0x0A00);
 +               b43_phy_maskset(dev, B43_NPHY_AFECTL_C2, 0xF0FF, 0x0A00);
 +
 +               tmp = b43_phy_read(dev, B43_NPHY_AFECTL_OVER1);
 +               regs[2] = tmp;
 +               b43_phy_write(dev, B43_NPHY_AFECTL_OVER1, tmp | 0x0600);
 +
 +               tmp = b43_phy_read(dev, B43_NPHY_AFECTL_OVER);
 +               regs[3] = tmp;
 +               b43_phy_write(dev, B43_NPHY_AFECTL_OVER, tmp | 0x0600);
 +
 +               regs[4] = b43_phy_read(dev, B43_NPHY_BBCFG);
 +               b43_phy_mask(dev, B43_NPHY_BBCFG, ~B43_NPHY_BBCFG_RSTRX);
 +
 +               /* TODO: Read an N PHY Table with ID 8, length 1, offset 3,
 +                       width 16, and data pointing to tmp */
 +               regs[5] = tmp;
 +
 +               /* TODO: Write an N PHY Table with ID 8, length 1, offset 3,
 +                       width 16, and data 0 */
 +               /* TODO: Read an N PHY Table with ID 8, length 1, offset 19,
 +                       width 16, and data pointing to tmp */
 +               regs[6] = tmp;
 +
 +               /* TODO: Write an N PHY Table with ID 8, length 1, offset
 19,
 +                       width 16, and data 0 */
 +               regs[7] = b43_phy_read(dev, B43_NPHY_RFCTL_INTC1);
 +               regs[8] = b43_phy_read(dev, B43_NPHY_RFCTL_INTC2);
 +
 +               /* TODO: Call N PHY RF Ctrl Intc Override with 2, 1, 3 */
 +               /* TODO: Call N PHY RF Ctrl Intc Override with 1, 2, 1 */
 +               /* TODO: Call N PHY RF Ctrl Intc Override with 1, 8, 2 */
 +
 +               regs[9] = b43_phy_read(dev, B43_NPHY_PAPD_EN0);
 +               regs[10] = b43_phy_read(dev, B43_NPHY_PAPD_EN1);
 +               b43_phy_mask(dev, B43_NPHY_PAPD_EN0, ~0x0001);
 +               b43_phy_mask(dev, B43_NPHY_PAPD_EN1, ~0x0001);
 +       } else {
 +               b43_phy_maskset(dev, B43_NPHY_AFECTL_C1, 0x0FFF, 0xA000);
 +               b43_phy_maskset(dev, B43_NPHY_AFECTL_C2, 0x0FFF, 0xA000);
 +               tmp = b43_phy_read(dev, B43_NPHY_AFECTL_OVER);
 +               regs[2] = tmp;
 +         

Re: [PATCH 2/5 V2] b43: N-PHY: implement and add multi-dimensional table writing

2010-01-17 Thread Gábor Stefanik
2010/1/18 Rafał Miłecki zaj...@gmail.com:
 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
 V2: updated to apply without fuzz

Actually, you do not need to do that - offset or fuzzy patches will
still be applied cleanly AFAIK, without any intervention.
(John, correct me if I'm wrong here...)

 ---
  drivers/net/wireless/b43/phy_n.c       |   58
 ++--
  drivers/net/wireless/b43/tables_nphy.c |   40 ++
  drivers/net/wireless/b43/tables_nphy.h |    2 +
  3 files changed, 67 insertions(+), 33 deletions(-)

 diff --git a/drivers/net/wireless/b43/phy_n.c
 b/drivers/net/wireless/b43/phy_n.c
 index 16f1f9b..6b200e5 100644
 --- a/drivers/net/wireless/b43/phy_n.c
 +++ b/drivers/net/wireless/b43/phy_n.c
 @@ -1699,8 +1699,7 @@ static void b43_nphy_restore_cal(struct b43_wldev
 *dev)
                loft = nphy-cal_cache.txcal_coeffs_5G[5];
        }

 -       /* TODO: Write an N PHY table with ID 15, length 4, offset 80,
 -               width 16, and data from table */
 +       b43_ntab_write_bulk(dev, B43_NTAB16(15, 80), 4, table);

        for (i = 0; i  4; i++) {
                if (dev-phy.rev = 3)
 @@ -1709,12 +1708,9 @@ static void b43_nphy_restore_cal(struct b43_wldev
 *dev)
                        coef[i] = 0;
        }

 -       /* TODO: Write an N PHY table with ID 15, length 4, offset 88,
 -               width 16, and data from coef */
 -       /* TODO: Write an N PHY table with ID 15, length 2, offset 85,
 -               width 16 and data from loft */
 -       /* TODO: Write an N PHY table with ID 15, length 2, offset 93,
 -               width 16 and data from loft */
 +       b43_ntab_write_bulk(dev, B43_NTAB16(15, 88), 4, coef);
 +       b43_ntab_write_bulk(dev, B43_NTAB16(15, 85), 2, loft);
 +       b43_ntab_write_bulk(dev, B43_NTAB16(15, 93), 2, loft);

        if (dev-phy.rev  2)
                b43_nphy_tx_iq_workaround(dev);
 @@ -1782,8 +1778,8 @@ static int b43_nphy_cal_tx_iq_lo(struct b43_wldev
 *dev,
                b43_nphy_iq_cal_gain_params(dev, i, target, params[i]);
                gain[i] = params[i].cal_gain;
        }
 -       /* TODO: Write an N PHY Table with ID 7, length 2, offset 0x110,
 -               width 16, and data pointer gain */
 +
 +       b43_ntab_write_bulk(dev, B43_NTAB16(7, 0x110), 2, gain);

        b43_nphy_tx_cal_radio_setup(dev);
        b43_nphy_tx_cal_phy_setup(dev);
 @@ -1833,8 +1829,7 @@ static int b43_nphy_cal_tx_iq_lo(struct b43_wldev
 *dev,
                        }
                }

 -               /* TODO: Write an N PHY Table with ID 15, length from above,
 -                       offset 64, width 16, and the data pointer from above
 */
 +               b43_ntab_write_bulk(dev, B43_NTAB16(15, 64), length, table);

                if (full) {
                        if (dev-phy.rev = 3)
 @@ -1902,9 +1897,8 @@ static int b43_nphy_cal_tx_iq_lo(struct b43_wldev
 *dev,
                        /* TODO: Read an N PHY Table with ID 15,
                                length table_length, offset 96, width 16,
                                and data pointer buffer */
 -                       /* TODO: Write an N PHY Table with ID 15,
 -                               length table_length, offset 64, width 16,
 -                               and data pointer buffer */
 +                       b43_ntab_write_bulk(dev, B43_NTAB16(15, 64), length,
 +                                               buffer);

                        if (type == 1 || type == 3 || type == 4)
                                buffer[0] = diq_start;
 @@ -1916,8 +1910,7 @@ static int b43_nphy_cal_tx_iq_lo(struct b43_wldev
 *dev,
                last = (dev-phy.rev  3) ? 6 : 7;

                if (!mphase || nphy-mphase_cal_phase_id == last) {
 -                       /* TODO: Write an N PHY Table with ID 15, length 4,
 -                               offset 96, width 16, and data pointer buffer
 */
 +                       b43_ntab_write_bulk(dev, B43_NTAB16(15, 96), 4,
 buffer);
                        /* TODO: Read an N PHY Table with ID 15, length 4,
                                offset 80, width 16, and data pointer buffer
 */
                        if (dev-phy.rev  3) {
 @@ -1926,14 +1919,14 @@ static int b43_nphy_cal_tx_iq_lo(struct b43_wldev
 *dev,
                                buffer[2] = 0;
                                buffer[3] = 0;
                        }
 -                       /* TODO: Write an N PHY Table with ID 15, length 4,
 -                               offset 88, width 16, and data pointer buffer
 */
 -                       /* TODO: Read an N PHY Table with ID 15, length 2,
 -                               offset 101, width 16, and data pointer
 buffer*/
 -                       /* TODO: Write an N PHY Table with ID 15, length 2,
 -                               offset 85, width 16, and data pointer buffer
 */
 -                       /* TODO: Write an N PHY Table with ID 15, length 2,
 -                      

Re: No probe response from AP address after 500ms, disconnecting.

2010-01-14 Thread Gábor Stefanik
On Fri, Jan 15, 2010 at 2:12 AM, Miklos Vajna vmik...@frugalware.org wrote:
 Hi,

 I tried asking on #bcm-users, then found the wiki where it's suggested
 to report to this list, so I'm doing so. Sorry for the noise on IRC.

 A description of the problem at hand:

 My card works fine when I use it with WPA, however when I try to use it
 without any encryption (actually the provider uses MAC-based filtering,
 but that's not important), then after the iwconfig eth0 essid essid,
 iwconfig shows the MAC of the AP, and after about 5 secs iwconfig
 says it's Not-Associated. If I run iwconfig eth0 essid again, then
 it's usable again for ~5 secs and so on. When the AP goes unassociated,
 I see this in dmesg:

 No probe response from AP 00:12:17:d3:87:f5 after 500ms, disconnecting.

 When it happens:

 It happens only in case not using encryption. An other laptop with
 ipw2200 driver works fine, so I guess this will be a b43 or firmware
 problem. The same card works under Windows XP as well, so I guess it's
 not a hardware problem.

 How to reproduce:

 Run iwconfig eth0 essid essid, wait ~5 secs and run iwconfig
 again. Result: it's unassociated. Expected: to show the MAC of the AP,
 etc.

 $ uname -a
 Linux s12 2.6.32-fw2 #1 SMP PREEMPT Sat Dec 19 13:56:14 CET 2009 x86_64
 GNU/Linux

 $ sudo lspci -vvn|grep 43 -A7
 00:00.4 0600: 1106:4353
        Subsystem: 17aa:3889
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
 Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium TAbort- 
 TAbort- MAbort- SERR- PERR- INTx-
        Latency: 0, Cache Line Size: 32 bytes

 00:00.5 0800: 1106:5353 (prog-if 20 [IO(X)-APIC])
        Subsystem: 17aa:388a
 --
 02:00.0 0280: 14e4:4315 (rev 01)
        Subsystem: 14e4:04b5
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
 Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- 
 TAbort- MAbort- SERR- PERR- INTx-
        Latency: 0, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 28
        Region 0: Memory at f520 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
 --
        Kernel driver in use: b43-pci-bridge
        Kernel modules: ssb

 dmesg: http://frugalware.org/~vmiklos/files/dmesg-s12

 Wlan configuration, authentication/encryption type:

 b43 from vanilla kernel, no encryption. Firmware is installed as
 described at http://linuxwireless.org/en/users/Drivers/b43#fw-b43-lp

 kernel is a distro-packaged vanilla 2.6.32.1.

 Any ideas?

 Thanks!

 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev



14E4:4315 is an LP-PHY (specifically, for most people,, it is the
LP-PHY), for which 2.6.32 contains no calibration support, so
performance/range problems can be expected. 2.6.33 should have
improvements (part of calibration done), and 2.6.34 will (if I have
time to do it) have full calibration support.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH 1/5] b43: N-PHY: implement b43_nphy_stay_in_carrier_search and it's calls (V2)

2010-01-06 Thread Gábor Stefanik
2010/1/6 Gábor Stefanik netrolller...@gmail.com:
 2010/1/6 Rafał Miłecki zaj...@gmail.com:
 V2: fix typo in deaf_count counting, improve b43_mac_[sr] calls,
    rename function. Thanks Michael!

 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
  drivers/net/wireless/b43/phy_n.c |   58
 ++
  drivers/net/wireless/b43/phy_n.h |    3 ++
  2 files changed, 61 insertions(+), 0 deletions(-)

 snip

 Typo in title (it's vs. its)

Note that you don't need to resubmit for this, I posted this so the
committer (John AFAIK) will notice and fix it before committing.

--Gábor



 --
 1.6.4.2

 --
 To unsubscribe from this list: send the line unsubscribe linux-wireless in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html




 --
 Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH 1/5] b43: N-PHY: implement b43_nphy_stay_in_carrier_search and it's calls (V2)

2010-01-06 Thread Gábor Stefanik
2010/1/6 Rafał Miłecki zaj...@gmail.com:
 W dniu 6 stycznia 2010 23:35 użytkownik Gábor Stefanik
 netrolller...@gmail.com napisał:
 2010/1/6 Rafał Miłecki zaj...@gmail.com:
 V2: fix typo in deaf_count counting, improve b43_mac_[sr] calls,
    rename function. Thanks Michael!

 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
  drivers/net/wireless/b43/phy_n.c |   58
 ++
  drivers/net/wireless/b43/phy_n.h |    3 ++
  2 files changed, 61 insertions(+), 0 deletions(-)

 snip

 Typo in title (it's vs. its)

 My gramma is far from perfect, thanks.

I've yet to see a perfect grandmother... :-)


 --
 Rafał




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY: Some fixes, notices

2010-01-06 Thread Gábor Stefanik
On Wed, Jan 6, 2010 at 11:55 PM, Rafał Miłecki zaj...@gmail.com wrote:
 2010/1/6 Rafał Miłecki zaj...@gmail.com:
 I've decided to made LP-PHY init code review for compatibility with specs
 and found some issues.

 We lack some code for higher PHY revisions (up from 2/3) and for some
 specific boards. Also I've found little mistake in specs which Larry just
 corrected.

 Gábor: could you care for this parts of LP-PHY code?

 So far I've only checked
 lpphy_read_band_sprom(dev);
 and
 lpphy_baseband_init(dev);

 I check for all conditions and operations (registers, masks, values). So far
 didn't notice anything more serious than what's exposed by patch, so good
 work Gábor :)

 There was actually one part I wasn't able to understand yesterday (it
 was late) and it still looks weird for me today... Could you verify my
 doubts, please?

 Specs:
 http://bcm-v4.sipsolutions.net/802.11/PHY/LP/ReadBandSrom

 Instead of tmp2 we use ofdmpo (that's totally fine). However we do
 following read: ofdmpo = bus-sprom.ofdm2gpo; before 2 - k
 condition visible in specs.

 So we use sprom.ofdm2gpo for both conditions and we do not care for opo.

 That is fine for rev. 8 as both: ofdm2gpo and opo are 0x142:
 http://bcm-v4.sipsolutions.net/SPROM

 However if we would meet LP-PHY on SSB with lower SPROM we wouldn't
 have ofdm2gpo and we should really use opo then.

 Am I right? Should we add opo reading for SPROM? Or maybe it's
 impossible to find LP-PHY on SSB with lower SPROM and we can keep
 using this work around?

It has been determined that the presence of opo in the LP-PHY part
of the code is Broadcrap resulting from the automated processes
Broadcom uses for generating their driver. There is no LP-PHY with
SPROM v8.


 --
 Rafał




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH 1/5] b43: N-PHY: implement b43_nphy_stay_in_carrier_search and it's calls (V2)

2010-01-06 Thread Gábor Stefanik
On Thu, Jan 7, 2010 at 12:12 AM, Rafał Miłecki zaj...@gmail.com wrote:
 W dniu 6 stycznia 2010 23:59 użytkownik Larry Finger
 larry.fin...@lwfinger.net napisał:
 On 01/06/2010 04:49 PM, Gábor Stefanik wrote:
 2010/1/6 Rafał Miłecki zaj...@gmail.com:
 W dniu 6 stycznia 2010 23:35 użytkownik Gábor Stefanik
 netrolller...@gmail.com napisał:
 2010/1/6 Rafał Miłecki zaj...@gmail.com:
 V2: fix typo in deaf_count counting, improve b43_mac_[sr] calls,
    rename function. Thanks Michael!

 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
  drivers/net/wireless/b43/phy_n.c |   58
 ++
  drivers/net/wireless/b43/phy_n.h |    3 ++
  2 files changed, 61 insertions(+), 0 deletions(-)

 snip

 Typo in title (it's vs. its)

 My gramma is far from perfect, thanks.

 I've yet to see a perfect grandmother... :-)

 My wife thinks she is perfect!

 What a one latter can change ;)

 --
 Rafał


The the impotence of proofreading

Has this ever happened to you?

You work very very horde on a paper for English clash
And you still get a very glow raid on it (like a D or even a D=)
and all because you are the liverwurst spoiler in the whale wide word.
Yes, proofreading your peppers is a matter of the the utmost impotence.

Now, this is a problem that affects manly, manly students, all over the world.
I myself was such a bed spiller once upon a term
that my English torturer in my sophomoric year,
Mrs. Myth, she said that I would never get into a good colleague.
And that's all I wanted, that's all any kid wants at that age,
just to get into a good colleague!
And not just anal community colleague either,
because I am not the kind of guy who would be happy at just anal
community colleague.
I need to be challenged. Challenged, menstrually.
I needed a place that can offer me intellectual simulation.
So I know this probably makes me sound like a stereo,
but I really felt that I could get into an ivory legal colleague.
So if I did not improvement
then gone would be my dream of going to Harvard, Jail, or Prison
(you know, in Prison, New Jersey).

So I got myself a spell checker
and figured I was on Sleazy Street.

But there are several missed aches
that a spell chukker can't can't catch catch.
For instant, if you accidentally leave out word,
your spell checker won't put it in you.
And God for billing purposes only
you should have serial problems with Tori Spelling
your spell Chekhov might replace a word
with one you had absolutely no detention of using.
Because, I mean, what do you want it to douche? You know...
No, it only does what you tell it to douche.
You're the one who's sitting in front of the computer scream,
with your hand on the mouth going clit, clit, clit.
It just goes to show you how embargo
one careless little clit of the mouth can be.

Which reminds me of this one time during my Junior Mint.
The teacher took the paper that I have written on A Sale of Two Titties.
No, I'm cereal, I'm cereal.
She read it out loud in front of all of my assmates.
It was quite possibly one of the most humidifying experiences I've ever had,
being laughed at, like that, pubicly.

So do yourself a flavor and follow these two Pisces of advice:
One: There is no prostitute for careful editing of your own work. No
prostitute, whatsoever.
And three: When it comes to proofreading,
the red penis your friend.

Spank you!

(Credits go to Taylor Mali for this one.)

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43: must set qos=0 on to connect

2010-01-05 Thread Gábor Stefanik
On Wed, Jan 6, 2010 at 12:00 AM, John Daiker daikerj...@gmail.com wrote:
 I have a BCM4312 rev 01 (14e4:4315) card in my HP Mini netbook.  I am having
 troubles connecting to any WEP secured AP.

 I know the trick about having to load with pio=1 for the device to stay
 happy (and forget about using DMA), so no issues there, I hope.

 With qos=1 (by default, IIRC), I am unable to establish a connection with
 said WEP connection, and notice many 'PHY transmission error' messages in my
 dmesg output.

 With qos=1, I can successfully connect to my WEP connection without issue,
 and without any error messages or warnings.

 I have a BCM4318 rev 02 (14e4:4318) in a desktop that works with
 enabled/disabled qos not matter what.  Also, a RT2500-based card works fine
 on the connection as well.

 Both card are using the 478.104 firmware.

 Please advise what steps I should take to further debug this issue.

 Thanks,
 John Daiker
 --
 To unsubscribe from this list: send the line unsubscribe linux-wireless in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


Hi!

Is this the new 4312 (BCM94312HMGB AKA 575920-001), with integrated
Bluetooth? I haven't seen this issue on my machines with a regular
4312, so it is probably related to the DMA error, or maybe it is
specific to the new 4312. If you can, please check whether the actual
model number printed on the card is the new one.

Thanks,
Gábor

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43: must set qos=0 on to connect

2010-01-05 Thread Gábor Stefanik
2010/1/6 John Daiker daikerj...@gmail.com:
 On 01/05/2010 03:48 PM, Gábor Stefanik wrote:

 On Wed, Jan 6, 2010 at 12:00 AM, John Daikerdaikerj...@gmail.com  wrote:

 I have a BCM4312 rev 01 (14e4:4315) card in my HP Mini netbook.  I am
 having
 troubles connecting to any WEP secured AP.

 I know the trick about having to load with pio=1 for the device to stay
 happy (and forget about using DMA), so no issues there, I hope.

 With qos=1 (by default, IIRC), I am unable to establish a connection with
 said WEP connection, and notice many 'PHY transmission error' messages in
 my
 dmesg output.

 With qos=1, I can successfully connect to my WEP connection without
 issue,
 and without any error messages or warnings.

 I have a BCM4318 rev 02 (14e4:4318) in a desktop that works with
 enabled/disabled qos not matter what.  Also, a RT2500-based card works
 fine
 on the connection as well.

 Both card are using the 478.104 firmware.

 Please advise what steps I should take to further debug this issue.

 Thanks,
 John Daiker
 --
 To unsubscribe from this list: send the line unsubscribe linux-wireless
 in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


 Hi!

 Is this the new 4312 (BCM94312HMGB AKA 575920-001), with integrated
 Bluetooth? I haven't seen this issue on my machines with a regular
 4312, so it is probably related to the DMA error, or maybe it is
 specific to the new 4312. If you can, please check whether the actual
 model number printed on the card is the new one.

 Thanks,
 Gábor


 Gábor,

 I just pulled the card, and it's not the chip you mention.  It's a
 BCM94312HMG  (Notice that it doesn't have the B at the end.  I would
 assume that indicates the Bluetooth integration.)

 I've taken few photos of the front and back of the card.  Let me know if you
 want to see them... I can post 'em on my website or flickr for your viewing
 pleasure.

 Thanks,
 John Daiker


Weird... I also have a 94312HMG, and it doesn't show this error (at
least not in DMA mode).

Maybe this is a PIO-specific issue... I'll try to test that.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: The newest Macbook 13.3 wireless

2010-01-04 Thread Gábor Stefanik
2010/1/4 Rafał Miłecki zaj...@gmail.com:
 2010/1/3 Daniel Kuehn enha...@gmail.com:
 I am the (un)lucky owner of a Macbook of late 2009 model, which has a
 Broadcom combo card (BT + WLAN sharing 3 antennas) but neither the b43 or
 broadcom-sta support it, I just get invalid parameters or the interface
 disappears.

 Is there anyway I could help you guys with getting this wlan card to work? I
 could test experimental drivers or try to bash it to work or such, it would
 just be awesome if I could get it to work.

 The chip PCI ID is 14e4:4353 if that helps you any, its a wireless N card as
 I have understod it, but there exist no info that either confirm or discard
 the PCI ID as a WLAN card. I havent been able to get any info of which card
 this is supposed to be from broadcoms sortiment, I cannot find any of the
 cards listen on broadcoms homepage to match with this card.

 Could you check what chipset is it? I think you should see something like:
 b43-phy0: Broadcom 43** WLAN found
 where 43** is number I ask for.

 Gábor: do you have still access to this 14e4:4353 device? If Daniel
 won't able to check chipset, could you do this? I don't think that
 BCM43224 you noted is correct. Could you double check that?

 I just would like to fill table on
 http://wireless.kernel.org/en/users/Drivers/b43 with this device.


The wireless card in the late-2009 MacBook is a BCM943224PCIEBT (as
stated on the exterior shell of the actual MacBook), which is a custom
(but Broadcom-made) BCM43224 (basically a dual-band BCM4322 plus a
BCM2070 for Bluetooth). A picture of the card can be seen at
http://images.weiphone.com/attachments/Day_091021/68_294416_286a2478633560a.jpg
- note that this is an official Apple replacement part, and may look
slightly different from a generic Broadcom version. Pictures of the
Broadcom reference version will be available on FCC's site after
February 20, when the temporary confidentality grant expires.

The description for BCM943224HMB (the same card in a different form
factor) can be viewed at
http://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM943224HMB
(note Broadcom's odd usage of the word SoC, which is used in the
sense single-chip transceiver - the 43224 is not a SOC in the true
sense of the word).

I do not currently have either type of BCM43224 at hand, but the
information found on the web looks convincing.

 --
 Rafał
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: The newest Macbook 13.3 wireless

2010-01-02 Thread Gábor Stefanik
On Sun, Jan 3, 2010 at 3:41 AM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 01/02/2010 08:11 PM, Daniel Kuehn wrote:
 Hi,

 I am the (un)lucky owner of a Macbook of late 2009 model, which has a
 Broadcom combo card (BT + WLAN sharing 3 antennas) but neither the b43
 or broadcom-sta support it, I just get invalid parameters or the
 interface disappears.

 Is there anyway I could help you guys with getting this wlan card to
 work? I could test experimental drivers or try to bash it to work or
 such, it would just be awesome if I could get it to work.

 The chip PCI ID is 14e4:4353 if that helps you any, its a wireless N
 card as I have understod it, but there exist no info that either confirm
 or discard the PCI ID as a WLAN card. I havent been able to get any info
 of which card this is supposed to be from broadcoms sortiment, I cannot
 find any of the cards listen on broadcoms homepage to match with this card.

 The Broadcom 5.10.56.46 that is the basis for my current reverse engineering
 effort supports that card. To the best of my knowledge, it is an 802.11n
 dual-band card. The coding effort to support N PHYs has just started. Of 
 course,
 it could be an SSLPN PHY and the RE for them is not yet started. In any case,
 who knows when any code will be ready. Watch this mailing list for patches.

 Larry
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


It is a BCM43224, N-PHY+Bluetooth. It is not an SSLPN- or QN-PHY.

(BTW, these PHY names are somehow just keep getting longer and
longer... I believe in 2020, we will see the first
ALLURBASERBELONG2US-PHY... though maybe
PSEUDOPNEUMONOULTRAMICROSCOPICSILICOVOLCANOCONIOSIS-PHY is a better
guess.)

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: BCM4312 disconnects on 2.6.32

2009-12-26 Thread Gábor Stefanik
Update your pci.ids file - what you have is a BCM4311/02 ABG.

Also, could you check a few more kernels in-between .29 and .32?

On Sat, Dec 26, 2009 at 8:01 PM,  yha...@yhager.com wrote:
 Hi,

 First, some adminstrativa..

 $ uname -srvmip
 Linux 2.6.29 #4 Fri Aug 28 13:17:05 IDT 2009 i686 VIA C7-M Processor 1600MHz 
 CentaurHauls

 $ lspci -vnn |grep 14e4
 02:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11a/b/g 
 [14e4:4312] (rev 02)
 07:03.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5788 
 Gigabit Ethernet [14e4:169c] (rev 03)

 $ dmesg|grep b43-phy | head -1
 [    7.461364] b43-phy0: Broadcom 4311 WLAN found

 This same machine works fine when I use the 2.6.29 kernel, but when I
 use 2.6.32, I get Carrier lost disconnection after a couple of minutes
 (exact times vary between 30 seconds to about 2-3 minutes).

 Before filling everyone's inbox with large kernel logs, here's a snippet
 from dmesg:
 # dmesg | egrep  b43|wlan|AP
 [    0.00] ACPI: APIC 6feb0390 00060 (v02 HP     APIC2203 20080820 MSFT 
 0097)
 [    0.00]   #5 [008000 - 00f000]          BOOTMAP == 
 [008000 - 00f000]
 [    0.121705] ACPI: Power Resource [APMF] (off)
 [    4.608781] b43-pci-bridge :02:00.0: PCI INT A - Link[LNKH] - GSI 10 
 (level, low) - IRQ 10
 [    4.608809] b43-pci-bridge :02:00.0: setting latency timer to 64
 [    4.807626] b43-phy0: Broadcom 4311 WLAN found (core revision 13)
 [    4.900090] b43-phy0 debug: Found PHY: Analog 4, Type 2, Revision 9
 [    4.900120] b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, 
 Revision 2
 [    4.960151] b43-phy0 debug: DebugFS (CONFIG_DEBUG_FS) not enabled in 
 kernel config
 [    4.966071] Registered led device: b43-phy0::tx
 [    4.966125] Registered led device: b43-phy0::rx
 [    4.966179] Registered led device: b43-phy0::radio
 [    5.048461] fuse init (API version 7.13)
 [   34.990139] b43 ssb0:0: firmware: requesting b43/ucode13.fw
 [   35.080855] b43 ssb0:0: firmware: requesting b43/b0g0initvals13.fw
 [   35.250092] b43-phy0: Loading firmware version 478.104 (2008-07-01 
 00:50:23)
 [   35.360376] b43-phy0 debug: Chip initialized
 [   35.360441] b43-pci-bridge :02:00.0: PCI: Disallowing DAC for device
 [   35.360452] b43-phy0: DMA mask fallback from 64-bit to 32-bit
 [   35.360809] b43-phy0 debug: 64-bit DMA initialized
 [   35.360893] b43-phy0 debug: QoS enabled
 [   35.400721] b43-phy0 debug: Wireless interface started
 [   35.400741] b43-phy0 debug: Adding Interface type 2
 [   45.267169] b43-phy0 debug: Removing Interface type 2
 [   45.267283] b43-phy0 debug: Wireless interface stopped
 [   45.267295] b43-phy0 debug: DMA-64 rx_ring: Used slots 1/64, Failed frames 
 0/0 = 0.0%, Average tries 0.00
 [   45.267421] b43-phy0 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed 
 frames 0/0 = 0.0%, Average tries 0.00
 [   45.280097] b43-phy0 debug: DMA-64 tx_ring_AC_BE: Used slots 0/256, Failed 
 frames 0/0 = 0.0%, Average tries 0.00
 [   45.300151] b43-phy0 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed 
 frames 0/0 = 0.0%, Average tries 0.00
 [   45.320064] b43-phy0 debug: DMA-64 tx_ring_AC_VO: Used slots 2/256, Failed 
 frames 0/22 = 0.0%, Average tries 1.00
 [   45.340060] b43-phy0 debug: DMA-64 tx_ring_mcast: Used slots 0/256, Failed 
 frames 0/0 = 0.0%, Average tries 0.00
 [   45.620280] b43-phy0: Loading firmware version 478.104 (2008-07-01 
 00:50:23)
 [   45.730312] b43-phy0 debug: Chip initialized
 [   45.730374] b43-pci-bridge :02:00.0: PCI: Disallowing DAC for device
 [   45.730383] b43-phy0: DMA mask fallback from 64-bit to 32-bit
 [   45.730623] b43-phy0 debug: 64-bit DMA initialized
 [   45.730703] b43-phy0 debug: QoS enabled
 [   45.770718] b43-phy0 debug: Wireless interface started
 [   45.770732] b43-phy0 debug: Adding Interface type 2
 [   45.858474] wlan0: direct probe to AP 00:22:3f:18:89:5e (try 1)
 [   45.860542] wlan0: direct probe responded
 [   45.860551] wlan0: authenticate with AP 00:22:3f:18:89:5e (try 1)
 [   45.862212] wlan0: authenticated
 [   45.862250] wlan0: associate with AP 00:22:3f:18:89:5e (try 1)
 [   45.864940] wlan0: RX AssocResp from 00:22:3f:18:89:5e (capab=0x401 
 status=0 aid=2)
 [   45.864948] wlan0: associated
 [   45.88] wlan0: deauthenticating from 00:22:3f:18:89:5e by local choice 
 (reason=3)
 [   45.866797] wlan0: direct probe to AP 00:22:3f:18:89:5e (try 1)
 [   45.869397] wlan0: direct probe responded
 [   45.869406] wlan0: authenticate with AP 00:22:3f:18:89:5e (try 1)
 [   45.871106] wlan0: authenticated
 [   45.871141] wlan0: associate with AP 00:22:3f:18:89:5e (try 1)
 [   45.873524] wlan0: RX ReassocResp from 00:22:3f:18:89:5e (capab=0x401 
 status=0 aid=2)
 [   45.873532] wlan0: associated
 [   45.874266] wlan0: deauthenticating from 00:22:3f:18:89:5e by local choice 
 (reason=3)
 [   45.874364] wlan0: direct probe to AP 00:22:3f:18:89:5e (try 1)
 [   45.876965] wlan0: direct probe responded
 [   45.876975] wlan0: 

Re: ssb: ERROR: PLL init unknown for device 4322

2009-12-18 Thread Gábor Stefanik
On Fri, Dec 18, 2009 at 11:53 AM, Erik esi...@gmail.com wrote:
 I just bought a new laptop and installed Gentoo on it:
 # dmesg|grep -i error
 [    4.113200] ssb: ERROR: PLL init unknown for device 4322
 [    4.113201] ssb: ERROR: PMU resource config unknown for device 4322
 [    4.702250] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 8, Type 4,
 Revision 4)
 [    4.702308] b43: probe of ssb0:0 failed with error -95
 # lspci|grep 43
 0e:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n
 Wireless LAN Controller (rev 01)

 Is there anything that I can try or any information that I can provide
 to make it work?

BCM4322 is an N-PHY device, which is not yet supported; it will
probably be the next thing I will implement, once Larry completes the
reverse engineering for this PHY.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Notebooks compatibility with Broadcom cards

2009-12-01 Thread Gábor Stefanik
On Tue, Dec 1, 2009 at 8:11 PM, Peter Stuge pe...@stuge.se wrote:
 Rafał Miłecki wrote:
 I know there were some series of notebooks accepting only one kind of
 wireless cards. Not sure what vendor was that... Dell or HP maybe?

 HP and IBM/Lenovo both have BIOS checks for particular PCI IDs and
 only allow cards with certain IDs to be plugged in.


 Do you have any idea if I should be somehow careful when changing
 wireless card in my Acer?

 Sorry, no idea.

Not sure about the 5024, but the 5720G has freely-interchangeable
wireless cards. (However, it also comes with 2 full miniPCIE slots,
something not many Acers have.)



 Also is this possible my notebook is just too old to handle new
 wireless 802.11n card? Maybe too old mini pcie, or something like
 that?

 Check that the expansion socket is compatible. The 4318 is probably a
 mini-PCI card and .11n cards are usually mini-PCIe which is very
 different and not at all compatible. The card you buy must fit your
 socket. I've bought an Atheros miniPCI .11n card off eBay for my X40:

 http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItemitem=400078624952

 But I haven't received it yet so I can't review. It's supposed to be
 supported by ath9k. I expect that I have to fiddle with the EEPROM on
 this card to get my ThinkPad to boot with it.

 Also check the antenna situation. .11n often uses MIMO so it might
 need an extra antenna to be installed in your laptop. Note how the
 above card has three connectors, and comes shipped with one antenna.
 Also note the MIMO arrangement so that it fits your needs. (In
 simplified terms it can be optimized for receive or transmit.)


 //Peter
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: I need to see some wl output

2009-11-29 Thread Gábor Stefanik
On Sun, Nov 29, 2009 at 9:44 PM, Andrew Benton b3n...@gmail.com wrote:
 On 29/11/09 18:41, Larry Finger wrote:
 It seems that none of the special things that the wl driver does on my
 system has any affect on the DMA errors. I would appreciate if one of
 you would do the following:

 1. Set CONFIG_MMIOTRACE=y in .config.


 I can't find that option. I have

 CONFIG_HAVE_MMIOTRACE_SUPPORT=y

 That's the only instance of MMIO in my .config
 How do I set CONFIG_MMIOTRACE=y?


Do not edit your config directly, use {menu|x|g}config. You need to
enable the tracing framework to see mmiotrace.

 Andy
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: III. Does this help b43 DMA errors?

2009-11-28 Thread Gábor Stefanik
??? This only adds a printk...

On Sun, Nov 29, 2009 at 12:43 AM, Larry Finger
larry.fin...@lwfinger.net wrote:
 Sorry about the problem with the previous try. This one does write the
 PCI configuration the same as wl does.

 Please see if this one helps.

 Larry

 

 Index: wireless-testing/drivers/ssb/pci.c
 ===
 --- wireless-testing.orig/drivers/ssb/pci.c
 +++ wireless-testing/drivers/ssb/pci.c
 @@ -567,6 +567,8 @@ static int sprom_extract(struct ssb_bus
                         const u16 *in, u16 size)
  {
        pci_write_config_dword(bus-host_pci, 0x40, 0x6030001);
 +       printk(KERN_DEBUG ssb: Set PCI Configuration word 0x40 to 
 +                         0x6030001\n);

        memset(out, 0, sizeof(*out));



 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 kills my kernel

2009-11-18 Thread Gábor Stefanik
On Wed, Nov 18, 2009 at 6:15 PM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 11/18/2009 08:34 AM, Oncaphillis wrote:
 The first ioread16 actually succeeds, only the second one fails.
 My lspci -vnn tells me that the memory is:

 Memory at 5710 (64-bit, non-prefetchable) [size=16K]

 Could it be that one has to make a ioread32 here since the
 memory is 64-bit ? I remember very very remotely that
 in older days it was impossible or even forbidden to read
 data from addresses which are not a multiple of 2/4/8 what
 so ever. But that was pre-PCI.

 As long as a 16-bit read is aligned on an even address, it should be OK;
 however, to check completely, please try this patch:

 Index: wireless-testing/drivers/ssb/pci.c
 ===
 --- wireless-testing.orig/drivers/ssb/pci.c
 +++ wireless-testing/drivers/ssb/pci.c
 @@ -251,10 +251,16 @@ static int sprom_check_crc(const u16 *sp
  static int sprom_do_read(struct ssb_bus *bus, u16 *sprom)
  {
        int i;
 +       u32 buf;

 -       for (i = 0; i  bus-sprom_size; i++)
 -               sprom[i] = ioread16(bus-mmio + SSB_SPROM_BASE + (i * 2));
 -
 +       printk(KERN_INFO ssb: Entering %s\n, __func__);
 +       for (i = 0; i  bus-sprom_size; i = i + 2) {

I know this is just a debugging patch, but we use i+=2 or i += 2
in such cases.

 +               buf = ioread32(bus-mmio + SSB_SPROM_BASE + (i * 2));
 +               printk(KERN_INFO ssb: Read 0x%.8X from SPROM\n, buf);
 +               sprom[i] = buf  0x;
 +               sprom[i+1] = (buf  16)  0x;
 +       }
 +       printk(KERN_INFO ssb: Leaving %s\n, __func__);
        return 0;
  }



 Larry

 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 kills my kernel

2009-11-18 Thread Gábor Stefanik
On Thu, Nov 19, 2009 at 12:39 AM, Michael Buesch m...@bu3sch.de wrote:
 Please keep it on-list. This is really important to get this debugged 
 properly.

 On Thursday 19 November 2009 00:23:18 Oncaphillis wrote:
 On 11/18/2009 11:59 PM, Michael Buesch wrote:
  What kind of device is that? Some laptop? I only knew about embedded 
  devices
  using these wireless cards without sprom.
  Is the card connected via (mini)pci? Or is it on-board?
 
  What we need is a way to identify the card so we avoid accessing
  the dangling bus to the sprom. I'd like to avoid the read-the-first-word-
  and-check-if-its-all-ones approach, because accesses a dangling bus.
  That's obviously no good and can hang the CPU due to missing bus acks.
 
  What's the lspci -vvnn output for the card?
 
 
  Note that the chipcommon revision on the card is 0x16. That's a pretty 
  high number.
  I wonder if they changed something and there actually _is_ an sprom on the 
  card,
  but there's just a new way to access it (or the shadow area has to be 
  mapped through
  chipcommon first or something like that)...


 It's an acer aspire one d250 netbook

 Nice. Is it possible to open the device and take a picture of the card?
 It's trivial to find out this way whether it has a SPROM or not, because it's
 a separate chip.

Hmm... this kinda reminds me of when the SPROM died on my Asus 4318,
causing it to display as a 14e4:0008, and freeze immediately upon
any SPROM read/write attempt. Quite possibly we have something similar
here (there is an SPROM, but it's broken - without an SPROM, the card
AFAIK can't even produce a valid PCI ID).


 Is it this device?
 http://hax0rpedia.com/index.php/Disassembeling_the_AAO_D250

 Can you open the lower-right cover shown here:
 http://hax0rpedia.com/index.php/File:Aao_d250_step2.jpg
 and take a closeup picture of the wireless card?
 Also probably a picture of the backside of the card. That'd require removing
 the card, though.

 We really need to find out somehow if there is a SPROM chip on the device
 and if that's the case how to access it.

 You may have a look at the full lspci -vvnn output at:

 Nice, thanks.

 I did a read the first word. Surprisingly it succeeds the first time.
 After that I may still read 32bit words. When the module tries to read
 the sprom the second time looking for a larger sprom the first read16
 fails.

 Well, my guess is that _any_ subsequent 16bit read would fail from then on,
 because it was still waiting for the bus-ack of the first one.
 If the bus really is dangling, we must avoid to access it in the first place.

 Should I try to dump out the full 16k area reported for the device ?

 I don't think that would be useful.

 --
 Greetings, Michael.
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43-phy0 ERROR: Fatal DMA error: 0x00000400

2009-11-13 Thread Gábor Stefanik
On Fri, Nov 13, 2009 at 5:05 PM, Larry Finger larry.fin...@lwfinger.net wrote:
 On 11/13/2009 05:16 AM, Michael Buesch wrote:
 Ok, so my guess is that the DMA allocator simply returned high memory
 that was unusable to the device. My new code explicitly checks for that (and 
 a
 few other things) and retries with GFP_DMA in case the address has illegal 
 bits set.
 That's the same thing we do for the frame buffers, so I don't see anything 
 wrong with it.

 Yeah, the new code is big and scary, but I think it makes a whole lot more 
 sense than
 what we have now. Especially if I add some comments and do more cleanups.

 I agree that the new code makes a lot of sense. I'm also beginning to believe
 that the problem lies outside b43, and that it is merely triggered by some
 interaction with ACPI and/or the BIOS. From what I found in looking back 
 through
 the DMA error reports, most (if not all) people with the problem have netbook
 computers with Intel ATOM processors.

 I am considering posting on LKML and the ACPI mailing lists to see if we can 
 get
 any ideas from those experts. Please comment on the draft text below:

 

 A number of users are experiencing DMA descriptor or data errors using 64-bit
 DMA with the Broadcom BCM4312 wireless device. After careful review and a
 rewrite of the DMA code in the driver, we have not been able to fix the 
 problem,
 but we have determined the following:

 (1) The problem is much more likely to occur on netbook systems. Several of 
 the
 developers have this card in regular notebook systems. None of us have the
 problem, thus it may occur only on netbooks, but several brand/model
 combinations are affected including Dell Inspiron 910 and Acer Aspire One 
 A150.

Linus has also reported this issue on a Core 2 ULV. I suspect that the
key part is deep-sleep support in the CPU.
Also, PhoenixBIOS seems to play part in the problem.


 (2) If CONFIG_ACPI_PROCESSOR is not set on affected systems, the error rate is
 much lower.

 (3) When a DMA descriptor error occurs, a dump of the descriptors does not
 reveal any obvious problems.

 I do not know enough about either the ACPI or DMA code to begin debugging in
 either of those regions. Any suggestions on debugging strategies, or links to
 similar problems would be appreciated.

 

 Larry





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 fatal DMA errors

2009-10-28 Thread Gábor Stefanik
2009/10/28 Linus Torvalds torva...@linux-foundation.org:


 On Sun, 25 Oct 2009, Gábor Stefanik wrote:

 Also, is there any reference to a failed channel switch in the log?

 I've been debugging this some more, and it looks like there are more
 issues at play than just the DMA problem.

 With the b43 driver enabled, I seem to be unable to reliably suspend and
 resume. Sometimes the machine just locks up hard, but sometimes I get
 something like this on the resume path:

        b43-phy0 debug: Resuming...
        b43-phy0 debug: Device resumed.
        ...
        b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
        b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz.
        b43-phy0 debug: RC calib: Failed to switch to channel 7, error = -5
        b43-phy0 debug: Chip initialized
        b43-phy0 debug: PIO initialized
        b43-phy0 debug: QoS disabled
        b43-phy0 debug: Wireless interface started
        b43-phy0 debug: Adding Interface type 2

 and when that happens, it appears that then the _next_ suspend/resume
 cycle will fail with a hard lockup. And sometimes the hard lockup happens
 on the very first resume.

 But maybe that Failed to switch to channel 7 error is entirely unrelated
 to the Locks up hard on resume problem. But the lock-up seems to be tied
 to the b43 driver too - the machine seems stable if I don't load that
 module at all.

 What seems a bit odd is how the b43_lpphy_op_init() seems to try to switch
 to channel 7 _twice_. It does:

        ...
        lpphy_radio_init(dev);
        lpphy_calibrate_rc(dev);
        err = b43_lpphy_op_switch_channel(dev, 7);
        ...

 and that lpphy_calibrate_rc() call will already have done the channel
 switch for the lpphy_rev0_1_rc_calib() case. Maybe it should just switch
 to channel 7 unconditionally before doing the lpphy_calibrate_rc()?

What we do is exactly what the spec calls for - specifically, rev.2+
cards don't switch to channel 7 during RC calibration, while rev.0/1
SoCs can have an NVRAM variable specifying a predetermined RC-Cap
value, in which case the actual RC calibration doesn't even run
(though the latter is not yet implemented). However, just switching to
channel 7 at the beginning looks saner - Larry, what do you think
about it?


 I dunno. I don't know the code, I don't know the hardware, the above is
 just a random musing based on looking at the code around that warning
 case.

                                Linus




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


[PATCH] b43: LP-PHY: Begin implementing calibration software RFKILL support

2009-10-25 Thread Gábor Stefanik
This implements the following calibration functions:
-Set TX IQCC
-Set TX Power by Index
-PR41573 workaround (incomplete, needs PHY reset)
-Calc RX IQ Comp
-PHY Cordic
-Run Samples
-Start/Stop TX Tone
-part of PAPD Cal TX Power
-RX I/Q Calibration
-The basic structure of the periodic calibration wrapper

Software RFKILL (required by calibration) is also implemented in
this round.

Signed-off-by: Gábor Stefanik netrolller...@gmail.com
---
Michael, could you please do the PHY reset part? I can't seem to
understand its relationship to wireless_core_reset... also, it's
heavily ssb-speak, which I am not good at.

 drivers/net/wireless/b43/phy_lp.c |  783 ++---
 drivers/net/wireless/b43/phy_lp.h |   11 +-
 2 files changed, 658 insertions(+), 136 deletions(-)

diff --git a/drivers/net/wireless/b43/phy_lp.c 
b/drivers/net/wireless/b43/phy_lp.c
index 07d9d03..9dcb39c 100644
--- a/drivers/net/wireless/b43/phy_lp.c
+++ b/drivers/net/wireless/b43/phy_lp.c
@@ -67,6 +67,7 @@ static void b43_lpphy_op_prepare_structs(struct b43_wldev 
*dev)
struct b43_phy_lp *lpphy = phy-lp;
 
memset(lpphy, 0, sizeof(*lpphy));
+   lpphy-antenna = B43_ANTENNA_DEFAULT;
 
//TODO
 }
@@ -379,8 +380,6 @@ static void lpphy_save_dig_flt_state(struct b43_wldev *dev)
}
 }
 
-/* lpphy_restore_dig_flt_state is unused but kept as a reference */
-#if 0
 static void lpphy_restore_dig_flt_state(struct b43_wldev *dev)
 {
static const u16 addr[] = {
@@ -401,7 +400,6 @@ static void lpphy_restore_dig_flt_state(struct b43_wldev 
*dev)
for (i = 0; i  ARRAY_SIZE(addr); i++)
b43_phy_write(dev, addr[i], lpphy-dig_flt_state[i]);
 }
-#endif
 
 static void lpphy_baseband_rev2plus_init(struct b43_wldev *dev)
 {
@@ -754,11 +752,17 @@ static void lpphy_clear_deaf(struct b43_wldev *dev, bool 
user)
}
 }
 
+static void lpphy_set_trsw_over(struct b43_wldev *dev, bool tx, bool rx)
+{
+   u16 trsw = (tx  1) | rx;
+   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, trsw);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+}
+
 static void lpphy_disable_crs(struct b43_wldev *dev, bool user)
 {
lpphy_set_deaf(dev, user);
-   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, 0x1);
-   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+   lpphy_set_trsw_over(dev, false, true);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFB);
b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x4);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFF7);
@@ -793,6 +797,60 @@ static void lpphy_restore_crs(struct b43_wldev *dev, bool 
user)
 
 struct lpphy_tx_gains { u16 gm, pga, pad, dac; };
 
+static void lpphy_disable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFFE);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFEF);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFBF);
+   if (dev-phy.rev = 2) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFBFF);
+   b43_phy_mask(dev, B43_PHY_OFDM(0xE5), 0xFFF7);
+   }
+   } else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFDFF);
+   }
+}
+
+static void lpphy_enable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x1);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x10);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x40);
+   if (dev-phy.rev = 2) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x100);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x400);
+   b43_phy_set(dev, B43_PHY_OFDM(0xE5), 0x8);
+   }
+   } else {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x200);
+   }
+}
+
+static void lpphy_disable_tx_gain_override(struct b43_wldev *dev)
+{
+   if (dev-phy.rev  2)
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFF7F);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xBFFF);
+   }
+   b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xFFBF);
+}
+
+static void lpphy_enable_tx_gain_override(struct b43_wldev *dev)
+{
+   if (dev-phy.rev  2)
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x100);
+   else {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x80);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x4000);
+   }
+   b43_phy_set(dev, B43_LPPHY_AFE_CTL_OVR, 0x40);
+}
+
 static struct lpphy_tx_gains lpphy_get_tx_gains(struct b43_wldev *dev)
 {
struct lpphy_tx_gains gains;
@@ -822,6 +880,17 @@ static void

[PATCH] b43: LP-PHY: Begin implementing calibration software RFKILL support

2009-10-25 Thread Gábor Stefanik
This implements the following calibration functions:
-Set TX IQCC
-Set TX Power by Index
-PR41573 workaround (incomplete, needs PHY reset)
-Calc RX IQ Comp
-PHY Cordic
-Run Samples
-Start/Stop TX Tone
-part of PAPD Cal TX Power
-RX I/Q Calibration
-The basic structure of the periodic calibration wrapper

Software RFKILL (required by calibration) is also implemented in
this round.

Signed-off-by: Gábor Stefanik netrolller...@gmail.com
---
(Mail re-sent as my mailer seems to have dropped it; apologies if
you receive it twice.)

Michael, could you please do the PHY reset part? I can't seem to
understand its relationship to wireless_core_reset... also, it's
heavily ssb-speak, which I am not good at.

 drivers/net/wireless/b43/phy_lp.c |  783 ++---
 drivers/net/wireless/b43/phy_lp.h |   11 +-
 2 files changed, 658 insertions(+), 136 deletions(-)

diff --git a/drivers/net/wireless/b43/phy_lp.c 
b/drivers/net/wireless/b43/phy_lp.c
index 07d9d03..9dcb39c 100644
--- a/drivers/net/wireless/b43/phy_lp.c
+++ b/drivers/net/wireless/b43/phy_lp.c
@@ -67,6 +67,7 @@ static void b43_lpphy_op_prepare_structs(struct b43_wldev 
*dev)
struct b43_phy_lp *lpphy = phy-lp;
 
memset(lpphy, 0, sizeof(*lpphy));
+   lpphy-antenna = B43_ANTENNA_DEFAULT;
 
//TODO
 }
@@ -379,8 +380,6 @@ static void lpphy_save_dig_flt_state(struct b43_wldev *dev)
}
 }
 
-/* lpphy_restore_dig_flt_state is unused but kept as a reference */
-#if 0
 static void lpphy_restore_dig_flt_state(struct b43_wldev *dev)
 {
static const u16 addr[] = {
@@ -401,7 +400,6 @@ static void lpphy_restore_dig_flt_state(struct b43_wldev 
*dev)
for (i = 0; i  ARRAY_SIZE(addr); i++)
b43_phy_write(dev, addr[i], lpphy-dig_flt_state[i]);
 }
-#endif
 
 static void lpphy_baseband_rev2plus_init(struct b43_wldev *dev)
 {
@@ -754,11 +752,17 @@ static void lpphy_clear_deaf(struct b43_wldev *dev, bool 
user)
}
 }
 
+static void lpphy_set_trsw_over(struct b43_wldev *dev, bool tx, bool rx)
+{
+   u16 trsw = (tx  1) | rx;
+   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, trsw);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+}
+
 static void lpphy_disable_crs(struct b43_wldev *dev, bool user)
 {
lpphy_set_deaf(dev, user);
-   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, 0x1);
-   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+   lpphy_set_trsw_over(dev, false, true);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFB);
b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x4);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFF7);
@@ -793,6 +797,60 @@ static void lpphy_restore_crs(struct b43_wldev *dev, bool 
user)
 
 struct lpphy_tx_gains { u16 gm, pga, pad, dac; };
 
+static void lpphy_disable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFFE);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFEF);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFBF);
+   if (dev-phy.rev = 2) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFBFF);
+   b43_phy_mask(dev, B43_PHY_OFDM(0xE5), 0xFFF7);
+   }
+   } else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFDFF);
+   }
+}
+
+static void lpphy_enable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x1);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x10);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x40);
+   if (dev-phy.rev = 2) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x100);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x400);
+   b43_phy_set(dev, B43_PHY_OFDM(0xE5), 0x8);
+   }
+   } else {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x200);
+   }
+}
+
+static void lpphy_disable_tx_gain_override(struct b43_wldev *dev)
+{
+   if (dev-phy.rev  2)
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFF7F);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xBFFF);
+   }
+   b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xFFBF);
+}
+
+static void lpphy_enable_tx_gain_override(struct b43_wldev *dev)
+{
+   if (dev-phy.rev  2)
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x100);
+   else {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x80);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x4000);
+   }
+   b43_phy_set(dev, B43_LPPHY_AFE_CTL_OVR, 0x40);
+}
+
 static struct lpphy_tx_gains lpphy_get_tx_gains(struct

Re: [PATCH] b43: LP-PHY: Begin implementing calibration software RFKILL support

2009-10-25 Thread Gábor Stefanik
2009/10/25 Michael Buesch m...@bu3sch.de:
 On Sunday 25 October 2009 16:26:36 Gábor Stefanik wrote:
 Michael, could you please do the PHY reset part? I can't seem to
 understand its relationship to wireless_core_reset... also, it's
 heavily ssb-speak, which I am not good at.

 Where are the specifications?

 --
 Greetings, Michael.


They are @ http://bcm-v4.sipsolutions.net/802.11/PHY/Reset - it shows
some similarity to wireless_core_reset, but it is not an exact match.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 fatal DMA errors

2009-10-25 Thread Gábor Stefanik
On Sun, Oct 25, 2009 at 7:17 PM, Linus Torvalds
torva...@linux-foundation.org wrote:

 Ok, so I got myself (or rather, Patricia) a new Dell 11 inspiron laptop,
 and everything seems to work, except for the wireless. It's a Broadcom
 BCM4312b/g LP-PHY.

 In fact, even the wireless works at least to _some_ degree, because I saw
 the wireless networks listed once (but I can't seem to recreate that now),
 but:

  - I get a _lot_ of noise in dmesg:

        b43-phy0 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
 0x, 0x, 0x
        b43-phy0: Controller RESET (DMA error) ...
        b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
        b43-phy0: Controller restarted

  - the 'phy0' kernel thread seems to spend all its time presumably doing
   that firmware reloading (looks like 20% CPU time in top)

  - the wireless doesn't seem to actually ever succeed in connecting even
   the one time it saw something, and 'rmmod b43' just hangs.

 The network I'm trying to connect to is just a random 128-bit WEP thing.
 But while I once got far enough to see it (I think that was with the
 4.150.10.5 firmware - I started out using the wrong one by mistake), now I
 can't even see the networks, so I doubt that matters.

 Maybe it's all as simple as me just having the wrong firmware version or
 something. But it's the version documented at

        http://linuxwireless.org/en/users/Drivers/b43

 for the LP-PHY case.

 This is with current -git (v2.6.32-rc5-81-g964fe08), and lspci reports

        08:00.0 0280: 14e4:4315 (rev 01)
                Subsystem: 1028:000c
                Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- 
 ParErr- Stepping- SERR- FastB2B- DisINTx-
                Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- 
 TAbort- MAbort- SERR- PERR- INTx-
                Latency: 0, Cache Line Size: 64 bytes
                Interrupt: pin A routed to IRQ 17
                Region 0: Memory at f060 (64-bit, non-prefetchable) 
 [size=16K]
                Capabilities: access denied
                Kernel driver in use: b43-pci-bridge
                Kernel modules: ssb
        00: e4 14 15 43 06 00 10 00 01 00 80 02 10 00 00 00
        10: 04 00 60 f0 00 00 00 00 00 00 00 00 00 00 00 00
        20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 0c 00
        30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 01 00 00

 with dmesg saying

        b43-pci-bridge :08:00.0: PCI INT A - GSI 17 (level, low) - IRQ 17
        b43-pci-bridge :08:00.0: setting latency timer to 64
        ...
        cfg80211: Calling CRDA to update world regulatory domain
        ...
        cfg80211: World regulatory domain updated:
                (start_freq - end_freq @ bandwidth), (max_antenna_gain, 
 max_eirp)
                (2402000 KHz - 2472000 KHz @ 4 KHz), (300 mBi, 2000 mBm)
                (2457000 KHz - 2482000 KHz @ 2 KHz), (300 mBi, 2000 mBm)
                (2474000 KHz - 2494000 KHz @ 2 KHz), (300 mBi, 2000 mBm)
                (517 KHz - 525 KHz @ 4 KHz), (300 mBi, 2000 mBm)
                (5735000 KHz - 5835000 KHz @ 4 KHz), (300 mBi, 2000 mBm)
        b43-phy0: Broadcom 4312 WLAN found (core revision 15)
        ...
        phy0: Selected rate control algorithm 'minstrel'
        Registered led device: b43-phy0::tx
        Registered led device: b43-phy0::rx
        Registered led device: b43-phy0::radio
        Broadcom 43xx driver loaded [ Features: PML, Firmware-ID: FW13 ]
        ...
        cfg80211: Calling CRDA for country: US
        cfg80211: Regulatory domain changed to country: US
                (start_freq - end_freq @ bandwidth), (max_antenna_gain, 
 max_eirp)
                (2402000 KHz - 2472000 KHz @ 4 KHz), (300 mBi, 2700 mBm)
                (517 KHz - 525 KHz @ 4 KHz), (300 mBi, 1700 mBm)
                (525 KHz - 533 KHz @ 4 KHz), (300 mBi, 2000 mBm)
                (549 KHz - 571 KHz @ 4 KHz), (300 mBi, 2000 mBm)
                (5735000 KHz - 5835000 KHz @ 4 KHz), (300 mBi, 3000 mBm)
        ...
        b43 ssb0:0: firmware: requesting b43/ucode15.fw
        b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
        b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
        b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
        ...
        b43-phy0 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
 0x, 0x, 0x
        b43-phy0: Controller RESET (DMA error) ...
        b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
        b43-phy0 ERROR:
        b43-phy0: Fatal DMA error: 0x0400, 0x, 0x, 
 0x, 0x, 0x
        b43-phy0: Controller RESET (DMA error) ...
        Controller restarted
        b43-phy0 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
 0x, 0x, 0x
        b43-phy0: Controller RESET 

Re: b43 fatal DMA errors

2009-10-25 Thread Gábor Stefanik
2009/10/25 Linus Torvalds torva...@linux-foundation.org:


 On Sun, 25 Oct 2009, Gábor Stefanik wrote:

 Could you please test the tag master-2009-08-26 from
 wireless-testing? That one was the first version that worked, and in
 that specific build, my card (exactly the same as yours) worked
 perfectly, leading me to suspect a regression (probably not in the b43
 driver, but in something else interfering with b43).

 Will try. Are you using that same firmware version?

Yes, I have v478 also. However, I tried to build the latest
wireless-testing tree, but I can't reproduce the error here.

One thing I have noticed is that everyone so far with this error
appears to have a HP or Dell laptop - I have tested with a
custom-built desktop with an Asus motherboard. I will test my other
4312 in my Acer laptop later (I don't own a Dell or a HP).

Could you describe the exact HW configuration of your system
(including the BIOS type - my Acer has InsydeH2O, while my desktop is
AMI-based)?

Does the wl_hybrid driver work for you? (If it does work, please try
building the latest compat-wireless for the kernel on which wl_hybrid
worked, and post the results. Try the compat-wireless driver both on a
cold boot and after wl_hybrid has been unloaded.)


 Also try apic=off  acpi=off (IIRC another DMA error victim, but with
 error code 0x0800 had ACPI clobbering his DMA).

 Ok, will try that separately.

 Also, is there any reference to a failed channel switch in the log?

 Nope.

Then it's a different bug than the 0x0800 one, which also caused
channel switching to fail.


                        Linus




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 fatal DMA errors

2009-10-25 Thread Gábor Stefanik
On Sun, Oct 25, 2009 at 10:39 PM, Linus Torvalds
torva...@linux-foundation.org wrote:


 On Sun, 25 Oct 2009, Linus Torvalds wrote:

 Ok, this machine is a 1.3GHz Core 2 Duo, so no Atom crap.

 Oh, and I compile for x86-64, in case anybody cares. But I assume all sane
 developers have long since abandoned 32-bit mode, so I can't imagine that
 there is some 32-vs-64-bit issue.

 Btw, here's the dmesg from a few seconds after loading that driver with
 CONFIG_B43_DEBUG enabled.

 Just for fun, I'll also try what FORCE_PIO results in..

                Linus

0x0400 is DMA PCI Descriptor Error - not sure what it actually means.

BTW your dmidecode reveals that this is a modified PhoenixBIOS
(non-Award) - I wonder if others with this error are also PhoenixBios
users...

Another thing to test: boot into Windows (or any other OS where the
card works), initialize the card, reboot (not cold-boot) into Linux,
try to load b43. If this succeeds, then we are missing something in
the init routine.


 ---
 b43-phy1: Broadcom 4312 WLAN found (core revision 15)
 b43-phy1 debug: Found PHY: Analog 6, Type 5, Revision 1
 b43-phy1 debug: Found Radio: Manuf 0x17F, Version 0x2062, Revision 2
 phy1: Selected rate control algorithm 'minstrel'
 Registered led device: b43-phy1::tx
 Registered led device: b43-phy1::rx
 Registered led device: b43-phy1::radio
 Broadcom 43xx driver loaded [ Features: PML, Firmware-ID: FW13 ]
 b43 ssb0:0: firmware: requesting b43/ucode15.fw
 b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
 b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
 b43-phy1: Loading firmware version 478.104 (2008-07-01 00:50:23)
 b43-phy1 debug: b2062: Using crystal tab entry 19200 kHz.
 b43-phy1 debug: Chip initialized
 b43-phy1 debug: 64-bit DMA initialized
 b43-phy1 debug: QoS enabled
 b43-phy1 debug: Wireless interface started
 b43-phy1 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
 0x, 0x, 0x
 b43-phy1: Controller RESET (DMA error) ...
 b43-phy1 debug: Adding Interface type 2
 b43-phy1 debug: Wireless interface stopped
 b43-phy1 debug: DMA-64 rx_ring: Used slots 0/64, Failed frames 0/0 = 0.0%, 
 Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_BE: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_VO: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_mcast: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1: Loading firmware version 478.104 (2008-07-01 00:50:23)
 b43-phy1 debug: b2062: Using crystal tab entry 19200 kHz.
 b43-phy1 debug: Chip initialized
 b43-phy1 debug: 64-bit DMA initialized
 b43-phy1 debug: QoS enabled
 b43-phy1 debug: Wireless interface started
 b43-phy1: Controller restarted
 b43-phy1 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
 0x, 0x, 0x
 b43-phy1: Controller RESET (DMA error) ...
 b43-phy1 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
 0x, 0x, 0x
 b43-phy1: Controller RESET (DMA error) ...
 b43-phy1 debug: Wireless interface stopped
 b43-phy1 debug: DMA-64 rx_ring: Used slots 0/64, Failed frames 0/0 = 0.0%, 
 Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_BE: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_VO: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_mcast: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1: Loading firmware version 478.104 (2008-07-01 00:50:23)
 b43-phy1 debug: b2062: Using crystal tab entry 19200 kHz.
 b43-phy1 debug: Chip initialized
 b43-phy1 debug: 64-bit DMA initialized
 b43-phy1 debug: QoS enabled
 b43-phy1 debug: Wireless interface started
 b43-phy1 ERROR:
 b43-phy1: Controller restarted
 Fatal DMA error: 0x0400, 0x, 0x, 0x, 0x, 
 0x
 b43-phy1: Controller RESET (DMA error) ...
 b43-phy1 debug: Wireless interface stopped
 b43-phy1 debug: DMA-64 rx_ring: Used slots 0/64, Failed frames 0/0 = 0.0%, 
 Average tries 0.00
 ADDRCONF(NETDEV_UP): wlan0: link is not ready
 b43-phy1 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_BE: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 = 
 0.0%, Average tries 0.00
 b43-phy1 debug: DMA-64 tx_ring_AC_VO: Used slots 0/256, Failed 

Re: b43 fatal DMA errors

2009-10-25 Thread Gábor Stefanik
On Sun, Oct 25, 2009 at 11:08 PM, Linus Torvalds
torva...@linux-foundation.org wrote:


 On Sun, 25 Oct 2009, Chris Vine wrote:

 On Sun, 25 Oct 2009 22:40:50 +0100 Gábor Stefanik  netrolller...@gmail.com 
 suggested:
  Another thing to test: boot into Windows (or any other OS where the [..]

 You already know that this eliminates the DMA errors.  I have reported
 twice that if I boot up with the 2.6.27 kernel and install the broadcom
 b43 driver to intialise the wireless device, and then do a warm reboot
 to 2.6.32-rc5, then b43 works correctly.

 Is there some way to dump all the device registers behind the SSB bridge?
 If so, dumping them for the warm-boot and cold-boot cases, and seeing
 where they are different might be an obvious clue, and point to something
 that isn't initialized correctly.


I don't know of such a method; however I have previously succeeded in
using mmiotrace to find differences between wl and b43, so it might be
of help in this case. However, this might be completely irrelevant, as
I suspect that PhoenixBIOS is interfering with the DMA mappings of the
card, which wl (and the Windows driver) works around somehow. (Is this
PR41573? In that case, it's possible that the calibration patch -
maybe in conjunction with a proper PHY reset - will fix it.)

Larry: what BIOS are you testing on?

 And Chris, just out of interest - does FORCE_PIO work for you too?

                Linus




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 fatal DMA errors

2009-10-25 Thread Gábor Stefanik
2009/10/25 Larry Finger larry.fin...@lwfinger.net:
 On 10/25/2009 05:28 PM, Gábor Stefanik wrote:
 On Sun, Oct 25, 2009 at 11:08 PM, Linus Torvalds
 torva...@linux-foundation.org wrote:


 On Sun, 25 Oct 2009, Chris Vine wrote:

 On Sun, 25 Oct 2009 22:40:50 +0100 Gábor Stefanik  
 netrolller...@gmail.com suggested:
 Another thing to test: boot into Windows (or any other OS where the [..]

 You already know that this eliminates the DMA errors.  I have reported
 twice that if I boot up with the 2.6.27 kernel and install the broadcom
 b43 driver to intialise the wireless device, and then do a warm reboot
 to 2.6.32-rc5, then b43 works correctly.

 Is there some way to dump all the device registers behind the SSB bridge?
 If so, dumping them for the warm-boot and cold-boot cases, and seeing
 where they are different might be an obvious clue, and point to something
 that isn't initialized correctly.


 I don't know of such a method; however I have previously succeeded in
 using mmiotrace to find differences between wl and b43, so it might be
 of help in this case. However, this might be completely irrelevant, as
 I suspect that PhoenixBIOS is interfering with the DMA mappings of the
 card, which wl (and the Windows driver) works around somehow. (Is this
 PR41573? In that case, it's possible that the calibration patch -
 maybe in conjunction with a proper PHY reset - will fix it.)

 Larry: what BIOS are you testing on?

 The splash screen shows it to be a Phoenix BIOS.

Kinda odd - apparently not all Phoenix BIOS versions are affected. (Or
is this Phoenix AwardBIOS, Award Modular BIOS's successor? That would
explain why it doesn't reproduce the error.)

 With dmidecode I see
 the following:

 BIOS Information
        Vendor: Hewlett-Packard
        Version: F.21
        Release Date: 02/28/2008
        Address: 0xE7060
        Runtime Size: 102304 bytes
        ROM Size: 1024 kB
        Characteristics:
                ISA is supported
                PCI is supported
                PC Card (PCMCIA) is supported
                PNP is supported
                APM is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                ESCD support is available
                Boot from CD is supported
                ACPI is supported
                USB legacy is supported
                AGP is supported
                BIOS boot specification is supported
                Targeted content distribution is supported
        BIOS Revision: 15.33
        Firmware Revision: 81.81

Is this all that dmidecode outputs? There is an important element
towards the end of the dump that identifies a PhoenixBIOS, even if it
is cloaked.


 Larry




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43/BCM4312 fails with DMA errors

2009-10-17 Thread Gábor Stefanik
On Sun, Oct 18, 2009 at 1:44 AM, Charles Moschel fre...@carolina.rr.com wrote:
 On Sat, 17 Oct 2009 14:10:19 -0500
 Larry Finger larry.fin...@lwfinger.net wrote:

 On 10/17/2009 01:12 PM, Charles Moschel wrote:
  Also, what I noticed is that everyone with this problem appears to
  have an Intel Atom CPU... weird. Maybe something weird is going on
  with the Atom chipset's DMA handling.
 
 
  No, it's not only Atom.  I see it on Intel T4200 (dual core
  Pentium, 45nm, 800MHz FSB, GL40/GM45 chipset).  Lenovo G530 laptop.

 Is this with the same wireless card moved from computer to computer?

 No, it came with the laptop and has never been removed.  I reported
 earlier that it fails with 2.6.31 (Fedora rawhide kernel) +
 compat-wireless, but works with 2.6.32-rc[12] wireless-testing pulled
 from git:
 [https://lists.berlios.de/pipermail/bcm43xx-dev/2009-October/006132.html]


What happens with 2.6.31-rc[12] + compat-wireless? And with just
2.6.32-rc[12] (without compat-wireless)? (My guess is that it will
fail, but I need to know this before we move on.)

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43/BCM4312 fails with DMA errors

2009-10-16 Thread Gábor Stefanik
On Fri, Oct 16, 2009 at 6:01 PM, Chris Vine ch...@cvine.freeserve.co.uk wrote:
 On Fri, 16 Oct 2009 9:45:40 -0400
 fre...@carolina.rr.com wrote:

 2.6.32-rc? and wireless-compat was thought to work as well as
 wireless-testing ... hmmm

 Ah right.  I had been trying 2.6.32-rc4 by itself and compat-wireless
 with 2.6.31.  If I build compat-wireless on top of 2.6.32-rc.4 the dma
 errors appear to go away but the encryption modules won't load so it
 is not usable.

 I think I will try again in a few months time when things have settled
 down a bit.  (Or possibly pull wireless-testing from git once 2.6.32
 comes out.)

 Chris


 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Could you please try the real wireless-testing tree (as opposed to
compat-wireless)?

Also, what I noticed is that everyone with this problem appears to
have an Intel Atom CPU... weird. Maybe something weird is going on
with the Atom chipset's DMA handling.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Broadcom cards for free

2009-10-09 Thread Gábor Stefanik
Sounds interesting... especially now that N-PHY is actually being
reverse-engineered (or is it?).

The modded 4320 is an attempt to replace the built-in OS and use it
with b43 as a softmac device... am I right?

On 10/9/09, Michael Buesch m...@bu3sch.de wrote:
 Hi,

 I've currently got two Broadcom cards to offer for free.
 http://bu3sch.de/misc/bcmcards.JPG

 The cardbus one is a WPC300N V1 802.11n card.
 It can be used for development of the b43 N-PHY code.

 The USB one is BCM4320 which works over RNDIS-WLAN.
 This device is disassembled and the EEPROM, which contains
 the on-board operating system, is unsoldered and connected through a
 pinheader.
 That means it can be read and/or reprogrammed outside of the device.
 The RF-shield on the RF-side of the board was removed.
 The device should work properly. It properly registers to the kernel, but I
 did
 not try if it works with the rndis-wlan driver.

 --
 Greetings, Michael.
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev



-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Broken patch for b43

2009-10-09 Thread Gábor Stefanik
On Fri, Oct 9, 2009 at 6:22 PM, Michael Buesch m...@bu3sch.de wrote:
 On Friday 09 October 2009 18:17:20 Larry Finger wrote:
 On 10/09/2009 10:41 AM, Gábor Stefanik wrote:
  G-PHY revision =2 is handled by b43legacy, not b43, so it shouldn't
  be a problem.

 That is not true.

 --
 Greetings, Michael.


Oops... yes, I confused the PHY vs. MAC revisions.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: 14e4:4315 DMA Errors (still)

2009-10-06 Thread Gábor Stefanik
2009/10/6 Lance Hepler nlhep...@gmail.com:
 2009/10/6 Gábor Stefanik netrolller...@gmail.com:
 So, this error happens specifically on suspend/resume?

 No, it'll happen pretty frequently the first time I try to connect,
 but always after I suspend+resume. And once the DMA error pops up, It
 just keeps happening.. By far, the rarest occurrence is the device
 actually working.

 Lance


One thing I can see from the log is that you have both wl and ssb
(b43's backend) loaded at the same time. Remember to also unload ssb
when you unload b43.

Also, could you try the real wireless-testing?

(BTW, your card is a Dell 1397, which was one of the development cards
I used; so the problem is not a new variant.)

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: 14e4:4315 DMA Errors (still)

2009-10-05 Thread Gábor Stefanik
On Fri, Oct 2, 2009 at 11:04 PM,  fre...@carolina.rr.com wrote:

 Hi Folks --

 I've read in the archives about DMA errors with the LP-PHY, but there didn't
 seem to be any conclusion.  Any guidance on what I can test to get it working?
 It's reproducable on my Lenovo G530 laptop.  (Yes, I know forcing PIO works 
 for
 others, and it works for me too, but I'd like to help testing if I can).

 Any guidance on which tests would be most likely to work?  AFAIK, options to
 test include:
 * 64bit kernel (and userland?)
 * Hack b43/dma.c to force fallback to 32bit DMA (as a trial datapoint only)

Won't work - LP-PHY only supports 64bit DMA.

 * Boot with Mem=2G.  Currently 4G ram is installed.
 * Firmware 5xx

 Or is this a HW design error in the laptop, and I should just live with 
 forcing PIO?

 My system details:
 * Compat-wireless-2009-09-30 (and also back to 9-21)
 * Fedora Rawhide 32-bit, kernel 2.6.31.1-56.fc12.i686
 * Firmware 478.104
 * Fatal DMA error soon after heavy traffic starts


Try installing a proper wireless-testing kernel (not just
compat-wireless). This issue seems to specifically affect
2.6.31+compat-wireless users (probably something needs to be
backported). 2.6.32-rc1+compat-wireless shoud also work.

 dmesg extract:

 ssb: Sonics Silicon Backplane found on PCI device :04:00.0
 b43-phy0: Broadcom 4312 WLAN found (core revision 15)
 b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1
 b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062, Revision 2
 phy0: Selected rate control algorithm 'minstrel'
 Registered led device: b43-phy0::tx
 Registered led device: b43-phy0::rx
 Registered led device: b43-phy0::radio
 Broadcom 43xx driver loaded [ Features: PML, Firmware-ID: FW13 ]
 b43 ssb0:0: firmware: requesting b43/ucode15.fw
 cfg80211: Calling CRDA for country: US
 cfg80211: Regulatory domain changed to country: US
        (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
        (2402000 KHz - 2472000 KHz @ 4 KHz), (300 mBi, 2700 mBm)
        (517 KHz - 525 KHz @ 4 KHz), (300 mBi, 1700 mBm)
        (525 KHz - 533 KHz @ 4 KHz), (300 mBi, 2000 mBm)
        (549 KHz - 571 KHz @ 4 KHz), (300 mBi, 2000 mBm)
        (5735000 KHz - 5835000 KHz @ 4 KHz), (300 mBi, 3000 mBm)
 b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
 b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
 b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
 b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz.
 b43-phy0 debug: RC calib: Failed to switch to channel 7, error = -5
 b43-phy0 debug: Chip initialized
 b43-phy0 debug: 64-bit DMA initialized
 b43-phy0 debug: QoS enabled
 b43-phy0 debug: Wireless interface started
 b43-phy0 debug: Adding Interface type 2
 ADDRCONF(NETDEV_UP): wlan0: link is not ready
 wlan0: deauthenticating from 00:0c:41:e2:f9:81 by local choice (reason=3)
 wlan0: direct probe to AP 00:0c:41:e2:f9:81 (try 1)
 wlan0: direct probe responded
 wlan0: authenticate with AP 00:0c:41:e2:f9:81 (try 1)
 wlan0: authenticated
 wlan0: associate with AP 00:0c:41:e2:f9:81 (try 1)
 wlan0: RX AssocResp from 00:0c:41:e2:f9:81 (capab=0x411 status=0 aid=2)
 wlan0: associated
 ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
 b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac:
 ff:ff:ff:ff:ff:ff
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 NOHZ: local_softirq_pending 08
 wlan0: no IPv6 routers present
 CE: hpet increasing min_delta_ns to 15000 nsec
 b43-phy0 ERROR: Fatal DMA error: 0x, 0x0400, 0x, 
 0x,
 0x, 0x
 b43-phy0: Controller RESET (DMA error) ...
 b43-phy0 debug: Wireless interface stopped
 b43-phy0 debug: DMA-64 rx_ring: Used slots 8/64, Failed frames 0/0 = 0.0%,
 Average tries 0.00
 b43-phy0 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 =
 0.0%, Average tries 0.00
 b43-phy0 debug: DMA-64 tx_ring_AC_BE: Used slots 256/256, Failed frames 
 0/7742 =
 0.0%, Average tries 1.37
 b43-phy0 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 =
 0.0%, Average tries 0.00
 b43-phy0 debug: DMA-64 tx_ring_AC_VO: Used slots 2/256, Failed frames 0/555 =
 0.0%, Average tries 1.01
 b43-phy0 debug: DMA-64 tx_ring_mcast: Used slots 0/256, Failed frames 0/0 =
 0.0%, Average tries 0.00
 b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
 b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz.
 b43-phy0 debug: Chip initialized
 b43-phy0 debug: 64-bit DMA initialized
 b43-phy0 debug: QoS enabled
 b43-phy0 debug: Wireless interface started
 b43-phy0: Controller restarted
 b43-phy0 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
 0x,
 0x, 0x
 b43-phy0: 

Re: b43 LP PHY status

2009-09-29 Thread Gábor Stefanik
2009/9/29 Ed Spiridonov edo@gmail.com:
 what is current LP PHY status?


Working in 2.6.32-rc1, though no calibration yet; so performance is
probably not on par with wl_hybrid or ndiswrapper.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 LP PHY status

2009-09-29 Thread Gábor Stefanik
2009/9/29 Ed Spiridonov edo@gmail.com:
 2009/9/29 Gábor Stefanik netrolller...@gmail.com:
 2009/9/29 Ed Spiridonov edo@gmail.com:
 what is current LP PHY status?


 Working in 2.6.32-rc1, though no calibration yet; so performance is
 probably not on par with wl_hybrid or ndiswrapper.

 i will use it on bcm5354 (mips cpu + b43), so i cannot use ndiswrapper.

BCM5354 might need some extra fixes from wireless-testing - not sure
if they made into 2.6.32.

 I know nothing about wl_hybrid, it is close-source too?

It's semi-closed-source. (There is an open-source part that handles
the card as if it were a fullmac, while the actual code controlling
the HW is closed-source.)


 now i use 2.4 kernel on my dlink dir-320 (with binary drivers from broadcom).




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 LP PHY status

2009-09-29 Thread Gábor Stefanik
2009/9/29 Ed Spiridonov edo@gmail.com:
 2009/9/29 Gábor Stefanik netrolller...@gmail.com:
 2009/9/29 Ed Spiridonov edo@gmail.com:
 2009/9/29 Gábor Stefanik netrolller...@gmail.com:
 2009/9/29 Ed Spiridonov edo@gmail.com:
 what is current LP PHY status?


 Working in 2.6.32-rc1, though no calibration yet; so performance is
 probably not on par with wl_hybrid or ndiswrapper.

 i will use it on bcm5354 (mips cpu + b43), so i cannot use ndiswrapper.

 BCM5354 might need some extra fixes from wireless-testing - not sure
 if they made into 2.6.32.

 did you need help with testing on bcm5354?


Yes; it's still a WIP.

(BTW, please keep the CC to Broadcom-Wireless.)

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: BCM4322 development status

2009-09-17 Thread Gábor Stefanik
On Thu, Sep 17, 2009 at 1:32 PM, Christian Schoenebeck
c...@users.sf.net wrote:
 Hi!

 What is the current development status for the BCM4322 chip? Is it working
 in the meantime?

 If not, I can also try to hack the b43 driver for supporting it, at least
 if I get the necessary informations.

 CU
 Christian

 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


It is completely unsupported - not even specs are available for it.
(The reverse-engineering team has set a requirement for working LP-PHY
code before they start working on N-PHY cards like 4322; and we have
only gotten LP-PHY to work a few weeks ago.)

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: LP-PHY status?

2009-09-17 Thread Gábor Stefanik
2009/9/17 Thomas Ilnseher il...@gmx.de:
 Am Donnerstag, den 17.09.2009, 18:02 +0200 schrieb Rafał Miłecki:
 Hi,

 I would like to ask about status of LP-PHY status. Could you explain
 to simple end-user what is missing in current implementation? Is this
 just calibration for performance, or something more? Did someone make
 some tests for AP mode? Or is this /stupid/ idea without calibration
 done?

 The LP PHY code works for me since compat-wireless-02-09-09. I can't use
 newer versions because of some IRQ_THREAD stuff.

 Maybe my device crashes here  then, but hat could be due to other stuff
 as well (It's an embedded system, ASUS WL-520gU)

 I have written a (very small) patch that implements proper analog switch
 support for the LP PHY, and that seems to improve throughput on my
 device.

 Stefanik is there change you find some time to finish calibration part
 before .32 merge window? Don't want to rush you, you already have done
 great work, just would like to know.

 I don't know how difficult this calibration stuff is. If it's as simple
 as the analog switch patch (or the other two useless patches I wrote),
 You (Stefanik) can drop me a note that I should do it.

 If you think my patches are crap, and I'm only wasting your time, just
 inform me.



Calibration is quite hard to do; but I have already posted an
incomplete patch about it on the list, which was rejected due to a
huge error, and my VMware installation died next day before I could
fix the patch up. Fixing the remaining issues on that should be easy -
you need to implement PHY reset (and use it instead of
put_phy_into_reset, which should actually be called disable_phy) and
replace the inline implementation of PHY anacore with a proper call
to the switch_analog op. (When I wrote the code, I didn't realize that
PHY anacore actually means switch analog core.) Note that my patch
doesn't contain all 3 calibration routines, only one of them.

BTW your useless patches will probably become useful when writing calibration.

 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH 2/2] b43: Add lpphy_clear_tx_power_offsets to improve TX Power handling

2009-09-16 Thread Gábor Stefanik
You are essentially implementing dead code at this point - this will
only ever be called if hardware-accelerated TX power control is
enabled - and HW TX power control is unsupported, even for G-PHYs.

On Wed, Sep 16, 2009 at 9:37 PM, Thomas Ilnseher il...@gmx.de wrote:
 This patch adds the lpphy_clear_tx_power_offsets to b43.

 Signed-off-by: Thomas Ilnseher il...@gmx.de

 ---
 diff -uNr a/drivers/net/wireless/b43/phy_lp.c 
 b/drivers/net/wireless/b43/phy_lp.c
 --- a/drivers/net/wireless/b43/phy_lp.c 2009-09-16 20:52:17.501318374 +0200
 +++ b/drivers/net/wireless/b43/phy_lp.c 2009-09-16 20:53:36.593319452 +0200
 @@ -1125,6 +1125,18 @@
        dev-phy.lp-tssi_idx = (b43_phy_read(dev, B43_LPPHY_TX_PWR_CTL_STAT) 
  0x7F00)  8;
  }

 +static void lpphy_clear_tx_power_offsets(struct b43_wldev *dev)
 +{
 +       int i;
 +       int id = 7;
 +       if (dev-phy.rev  2)
 +               id = 10;
 +       for (i = 0; i  12; i++)
 +               b43_lptab_write(dev, B43_LPTAB32(id, 0x40 + i), 0);
 +       for (i = 0; i  64; i++)
 +               b43_lptab_write(dev, B43_LPTAB32(id, 0x80 + i), 0);
 +}
 +
  static void lpphy_set_tx_power_control(struct b43_wldev *dev,
                                       enum b43_lpphy_txpctl_mode mode)
  {
 @@ -1139,7 +1151,7 @@

        if (oldmode == B43_LPPHY_TXPCTL_HW) {
                lpphy_update_tx_power_npt(dev);
 -               //TODO Clear all TX Power offsets
 +               lpphy_clear_tx_power_offsets(dev);
        } else {
                if (mode == B43_LPPHY_TXPCTL_HW) {
                        //TODO Recalculate target TX power





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH 2/2] b43: Add lpphy_clear_tx_power_offsets to improve TX Power handling

2009-09-16 Thread Gábor Stefanik
2009/9/16 Thomas Ilnseher il...@gmx.de:
 Am Mittwoch, den 16.09.2009, 21:40 +0200 schrieb Gábor Stefanik:
 You are essentially implementing dead code at this point - this will
 only ever be called if hardware-accelerated TX power control is
 enabled - and HW TX power control is unsupported, even for G-PHYs.
 Then the question remains, why this brings my device to 54 MBit/s ?

 I did double check again with the old driver:

 wlan0     IEEE 802.11bg  ESSID:tommy
          Mode:Managed  Frequency:2.412 GHz  Access Point:
          Bit Rate=9 Mb/s   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=70/70  Signal level=5 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

 Patched driver:

 wlan0     IEEE 802.11bg  ESSID:tommy
          Mode:Managed  Frequency:2.412 GHz  Access Point: XXX
          Bit Rate=54 Mb/s   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=70/70  Signal level=10 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0



  Signed-off-by: Thomas Ilnseher il...@gmx.de
 
  ---
  diff -uNr a/drivers/net/wireless/b43/phy_lp.c 
  b/drivers/net/wireless/b43/phy_lp.c
  --- a/drivers/net/wireless/b43/phy_lp.c 2009-09-16 20:52:17.501318374 +0200
  +++ b/drivers/net/wireless/b43/phy_lp.c 2009-09-16 20:53:36.593319452 +0200
  @@ -1125,6 +1125,18 @@
         dev-phy.lp-tssi_idx = (b43_phy_read(dev, 
  B43_LPPHY_TX_PWR_CTL_STAT)  0x7F00)  8;
   }
 
  +static void lpphy_clear_tx_power_offsets(struct b43_wldev *dev)
  +{
  +       int i;
  +       int id = 7;
  +       if (dev-phy.rev  2)
  +               id = 10;
  +       for (i = 0; i  12; i++)
  +               b43_lptab_write(dev, B43_LPTAB32(id, 0x40 + i), 0);
  +       for (i = 0; i  64; i++)
  +               b43_lptab_write(dev, B43_LPTAB32(id, 0x80 + i), 0);
  +}
  +
   static void lpphy_set_tx_power_control(struct b43_wldev *dev,
                                        enum b43_lpphy_txpctl_mode mode)
   {
  @@ -1139,7 +1151,7 @@
 
         if (oldmode == B43_LPPHY_TXPCTL_HW) {
                 lpphy_update_tx_power_npt(dev);
  -               //TODO Clear all TX Power offsets
  +               lpphy_clear_tx_power_offsets(dev);

Put a printk here to see if this branch is getting hit.

(BTW, are you loading b43 with the hwpctl modparam? That enables
experimental HW TX power control support, which might explain what you
were seeing.)

         } else {
                 if (mode == B43_LPPHY_TXPCTL_HW) {
                         //TODO Recalculate target TX power
 
 








-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: bcm4306 crashes on IPX4XX and works on x86 ?!?

2009-09-14 Thread Gábor Stefanik
On Mon, Sep 14, 2009 at 7:42 PM, Michael Buesch m...@bu3sch.de wrote:
 On Monday 14 September 2009 18:56:08 Daniel Schmitt wrote:
 well, same issue:
 ssb: Sonics Silicon Backplane found on PCI device :00:02.0
 ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x02, vendor 0x4243)
 ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
 ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x01, vendor 0x4243)
 ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)
 ssb: Core 4 found: PCI (cc 0x804, rev 0x07, vendor 0x4243)
 ssb: Core 5 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
 ssb: Ignoring additional 802.11 core
 ssb: Using different timing for ioread 16. udelay(10)
 ssb: Using different timing for ioread 16. udelay(10)
 ssb: WARNING: Invalid SPROM CRC (corrupt SPROM)
 ssb: SPROM revision 91 detected.
 ssb: Unsupported SPROM revision 91 detected. Will extract v1
 ssb: Sonics Silicon Backplane found on PCI device :00:04.0

 I tried udelay(5) and udelay(10).

 Something strange happens there that ssb isn't able to access SPROM ...

 well, are you sure that there actually is an sprom on the card?

Probably, since it is read out perfectly on an x86 machine.


 --
 Greetings, Michael.
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


[PATCH] b43: LP-PHY: Fix analog core switching

2009-09-14 Thread Gábor Stefanik
The generic analog switch routine is not correct for LP-PHY according
to the latest specs. Implement the proper analog core switch routine.

Signed-off-by: Gábor Stefanik netrolller...@gmail.com
---
diff --git a/drivers/net/wireless/b43/phy_lp.c 
b/drivers/net/wireless/b43/phy_lp.c
index 80da9c7..b0e127a 100644
--- a/drivers/net/wireless/b43/phy_lp.c
+++ b/drivers/net/wireless/b43/phy_lp.c
@@ -2160,6 +2160,16 @@ static int lpphy_b2063_tune(struct b43_w
return 0;
 }
 
+static void b43_lpphy_op_switch_analog(struct b43_wldev *dev, bool on)
+{
+   if (on) {
+   b43_phy_set(dev, B43_LPPHY_AFE_CTL_OVRVAL, 0x7);
+   b43_phy_set(dev, B43_LPPHY_AFE_CTL_OVR, 0x7);
+   } else {
+   b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xFFF8);
+   }
+}
+
 static int b43_lpphy_op_switch_channel(struct b43_wldev *dev,
   unsigned int new_channel)
 {
@@ -2239,7 +2249,7 @@ const struct b43_phy_operations b43_phyo
.radio_read = b43_lpphy_op_radio_read,
.radio_write= b43_lpphy_op_radio_write,
.software_rfkill= b43_lpphy_op_software_rfkill,
-   .switch_analog  = b43_phyop_switch_analog_generic,
+   .switch_analog  = b43_lpphy_op_switch_analog,
.switch_channel = b43_lpphy_op_switch_channel,
.get_default_chan   = b43_lpphy_op_get_default_chan,
.set_rx_antenna = b43_lpphy_op_set_rx_antenna,

___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: bcm4306 crashes on IPX4XX and works on x86 ?!?

2009-09-13 Thread Gábor Stefanik
On Sun, Sep 13, 2009 at 7:05 PM, Daniel Schmitt
dan...@schmitt-united.de wrote:
 Hello Group,

 I posted a few days ago my problems with this WLAN minipci card:

 Linux OpenWrt 2.6.28.10 #5 Thu Sep 10 20:36:33 CEST 2009 armv5teb unknown
 00:02.0 0280: 14e4:4325 (rev 02)
          Subsystem: 1414:0004
          Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+
 Stepping- SERR+ FastB2B- DisINTx-
          Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- 
 TAbort-
 MAbort- SERR- PERR- INTx-
          Interrupt: pin A routed to IRQ 27
          Region 0: Memory at 4802 (32-bit, non-prefetchable) [disabled]
 [size=8K]

 If I use them (2 pieces) in a WP188 from compex, I don't get ssb.ko running.
 Here is the dmesg if I try to load ssb.ko and b43legacy.ko
 PCI: enabling device :00:02.0 (0140 - 0142)
 ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x02, vendor 0x4243)
 ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
 ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x01, vendor 0x4243)
 ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)
 ssb: Core 4 found: PCI (cc 0x804, rev 0x07, vendor 0x4243)
 ssb: Core 5 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
 ssb: Ignoring additional 802.11 core
 ssb: WARNING: Invalid SPROM CRC (corrupt SPROM)
 ssb: SPROM revision 251 detected.
 ssb: Unsupported SPROM revision 251 detected. Will extract v1
 ssb: Sonics Silicon Backplane found on PCI device :00:02.0
 PCI: enabling device :00:04.0 (0140 - 0142)
 ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x02, vendor 0x4243)
 ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
 ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x01, vendor 0x4243)
 ssb: Core 3 found: V90 (cc 0x807, rev 0x01, vendor 0x4243)
 ssb: Core 4 found: PCI (cc 0x804, rev 0x07, vendor 0x4243)
 ssb: Core 5 found: IEEE 802.11 (cc 0x812, rev 0x04, vendor 0x4243)
 ssb: Ignoring additional 802.11 core
 ssb: WARNING: Invalid SPROM CRC (corrupt SPROM)
 ssb: SPROM revision 251 detected.
 ssb: Unsupported SPROM revision 251 detected. Will extract v1

What endianness is the IXP4xx?

 ssb: Sonics Silicon Backplane found on PCI device :00:04.0
 cfg80211: Using static regulatory domain info
 cfg80211: Regulatory domain: US
          (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
          (2402000 KHz - 2472000 KHz @ 4 KHz), (600 mBi, 2700 mBm)
          (517 KHz - 519 KHz @ 4 KHz), (600 mBi, 2300 mBm)
          (519 KHz - 521 KHz @ 4 KHz), (600 mBi, 2300 mBm)
          (521 KHz - 523 KHz @ 4 KHz), (600 mBi, 2300 mBm)
          (523 KHz - 533 KHz @ 4 KHz), (600 mBi, 2300 mBm)
          (5735000 KHz - 5835000 KHz @ 4 KHz), (600 mBi, 3000 mBm)
 cfg80211: Calling CRDA for country: US
 b43legacy-phy0: Broadcom 4306 WLAN found
 phy0: Failed to initialize wep: -2
 b43legacy: probe of ssb0:0 failed with error -2

-2 is No such file or directory - maybe some crypto options are
disabled? Does the ARC4 module get built?

 b43legacy-phy1: Broadcom 4306 WLAN found
 phy1: Failed to initialize wep: -2
 b43legacy: probe of ssb1:0 failed with error -2
 Broadcom 43xx-legacy driver loaded [ Features: PLID, Firmware-ID: FW10 ]

 One time I managed it to run for half an hour.
 I think it is a PCI problem of IPX4XX?

 Because running the same cards in my ALIX works without problems!
 cfg80211: Using static regulatory domain info
 cfg80211: Regulatory domain: US
         (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
         (2402000 KHz - 2472000 KHz @ 4 KHz), (600 mBi, 2700 mBm)
         (517 KHz - 519 KHz @ 4 KHz), (600 mBi, 2300 mBm)
         (519 KHz - 521 KHz @ 4 KHz), (600 mBi, 2300 mBm)
         (521 KHz - 523 KHz @ 4 KHz), (600 mBi, 2300 mBm)
         (523 KHz - 533 KHz @ 4 KHz), (600 mBi, 2300 mBm)
         (5735000 KHz - 5835000 KHz @ 4 KHz), (600 mBi, 3000 mBm)
 cfg80211: Calling CRDA for country: US
 b43-pci-bridge :00:0c.0: setting latency timer to 64
 ssb: Sonics Silicon Backplane found on PCI device :00:0c.0
 b43-pci-bridge :00:0e.0: setting latency timer to 64
 ssb: Sonics Silicon Backplane found on PCI device :00:0e.0

Please enable SSB  B43 debugging on this platform, too.

 b43legacy-phy0: Broadcom 4306 WLAN found
 phy0: Selected rate control algorithm 'minstrel'
 b43legacy-phy1: Broadcom 4306 WLAN found
 phy1: Selected rate control algorithm 'minstrel'
 Broadcom 43xx-legacy driver loaded [ Features: PLID, Firmware-ID: FW10 ]
 ip_tables: (C) 2000-2006 Netfilter Core Team
 nf_conntrack version 0.5.0 (4096 buckets, 16384 max)
 Registered led device: alix:1
 Registered led device: alix:2
 Registered led device: alix:3
 via-rhine.c:v1.10-LK1.4.3 2007-03-06 Written by Donald Becker
 via-rhine :00:09.0: setting latency timer to 64
 eth0: VIA Rhine III (Management Adapter) at 0xe000, 00:0d:b9:12:83:b8, 
 IRQ 10.
 eth0: MII PHY 

Re: 5354 + B43 = Instant Crash

2009-09-11 Thread Gábor Stefanik
On Fri, Sep 11, 2009 at 10:54 PM, Thomas Ilnseher il...@gmx.de wrote:
 Hi List,

 I installed the latest version of OpenWRT on a ASUS WL-520GU.
 I compiles a few kernel patches to make the OpenWRT kernel (2.6.28.10)
 compatible with compat wireless.

 Than I patched OpenWRT to build compat-wireless-09-02

 As said, It yields an instant crash:

 cfg80211: World regulatory domain updated:
        (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
        (2402000 KHz - 2472000 KHz @ 4 KHz), (300 mBi, 2000 mBm)
        (2457000 KHz - 2482000 KHz @ 2 KHz), (300 mBi, 2000 mBm)
        (2474000 KHz - 2494000 KHz @ 2 KHz), (300 mBi, 2000 mBm)
        (517 KHz - 525 KHz @ 4 KHz), (300 mBi, 2000 mBm)
        (5735000 KHz - 5835000 KHz @ 4 KHz), (300 mBi, 2000 mBm)
 b43-phy0: Broadcom 5354 WLAN found (core revision 13)
 Decompressing..done == CFE Again, no usefull stuff on teh RS232
 port

 FWIW, I add the patches for the kernel.

These patches are probably not enough - there were more changes to the
ssb module since 2.6.28. You will probably need to compile a new
kernel from wireless-testing or net-next-2.6 (linux-next  linux-2.6
may also work). (God luck doing that in the OpenWRT build system...)



 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: 5354 + B43 = Instant Crash

2009-09-11 Thread Gábor Stefanik
2009/9/12 Gábor Stefanik netrolller...@gmail.com:
 On Fri, Sep 11, 2009 at 10:54 PM, Thomas Ilnseher il...@gmx.de wrote:
 Hi List,

 I installed the latest version of OpenWRT on a ASUS WL-520GU.
 I compiles a few kernel patches to make the OpenWRT kernel (2.6.28.10)
 compatible with compat wireless.

 Than I patched OpenWRT to build compat-wireless-09-02

 As said, It yields an instant crash:

 cfg80211: World regulatory domain updated:
        (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
        (2402000 KHz - 2472000 KHz @ 4 KHz), (300 mBi, 2000 mBm)
        (2457000 KHz - 2482000 KHz @ 2 KHz), (300 mBi, 2000 mBm)
        (2474000 KHz - 2494000 KHz @ 2 KHz), (300 mBi, 2000 mBm)
        (517 KHz - 525 KHz @ 4 KHz), (300 mBi, 2000 mBm)
        (5735000 KHz - 5835000 KHz @ 4 KHz), (300 mBi, 2000 mBm)
 b43-phy0: Broadcom 5354 WLAN found (core revision 13)
 Decompressing..done == CFE Again, no usefull stuff on teh RS232
 port

 FWIW, I add the patches for the kernel.

 These patches are probably not enough - there were more changes to the
 ssb module since 2.6.28. You will probably need to compile a new
 kernel from wireless-testing or net-next-2.6 (linux-next  linux-2.6
 may also work). (God luck doing that in the OpenWRT build system...)

Oops... that was Good's hand. :)




 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev





 --
 Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: bcm4306 rev2 kernel segfault and reboot

2009-09-10 Thread Gábor Stefanik
On Thu, Sep 10, 2009 at 8:43 PM, Daniel Schmitt
dan...@schmitt-united.de wrote:
 Hello bcm43xx developers,

 I have problems using a bcm4306 rev 2 minipci card. I got the card out of
 Microsoft mn700. I also have 2 atheros cards. They work.

 Here is output of
 uname -a: Linux OpenWrt 2.6.28.10 #5 Thu Sep 10 20:36:33 CEST 2009 armv5teb 
 unknown

 lspci -vvn|grep 43 -A7:
 00:02.0 0280: 14e4:4325 (rev 02)
         Subsystem: 1414:0004
         Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+
 Stepping- SERR+ FastB2B- DisINTx-
         Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- 
 TAbort-
 MAbort- SERR- PERR- INTx-
         Interrupt: pin A routed to IRQ 27
         Region 0: Memory at 4802 (32-bit, non-prefetchable) [disabled]
 [size=8K]

 00:03.0 0200: 168c:001b (rev 01)
 --
 00:04.0 0280: 14e4:4325 (rev 02)
         Subsystem: 1414:0004
         Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+
 Stepping- SERR+ FastB2B- DisINTx-
         Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- 
 TAbort-
 MAbort- SERR- PERR- INTx-
         Interrupt: pin A routed to IRQ 25
         Region 0: Memory at 48022000 (32-bit, non-prefetchable) [disabled]
 [size=8K]


 When I use latest trunk openwrt on my Compes WP188 ipx4xx board with latest
 compat-wireless 2009-09-09 and with the ssb.ko inside the compat-wireless I 
 get
 the following kernel panic:

 r...@openwrt:/lib/modules/2.6.28.10# insmod ssb.ko
 PCI: enabling device :00:02.0 (0140 - 0142)
 Bad mode in data abort handler detected
 Internal error: Oops - bad mode: 0 [#1]
 Modules linked in: ssb(+)
 CPU: 0    Not tainted  (2.6.28.10 #2)
 pc : [01fc]    lr : [bf002d94]    psr: a092
 sp : c392bb5c  ip : 0001  fp : c392bbcc
 r10: c0230184  r9 : bf009000  r8 : 
 r7 : c3ad4248  r6 : c393b000  r5 : 0025  r4 : 
 r3 : c48c9048  r2 : c392bba4  r1 : 0001  r0 : 9048
 Flags: NzCv  IRQs off  FIQs on  Mode IRQ_32  ISA ARM  Segment user
 Control: 39ff  Table: 03968000  DAC: 0015
 Process insmod (pid: 1508, stack limit = 0xc392a260)
 Stack: (0xc392bb5c to 0xc392c000)
 bb40:                                                                9048
 bb60: 0001 c392bba4 c48c9048  0025 c393b000 c3ad4248 
 bb80: bf009000 c0230184 c392bbcc 0001 c392bb5c bf002d94 01fc a092
 bba0:  c392bbb0 ffb9 c392bbfc c3ad4200 c393b000 c392bbf4 bf0067c0
 bbc0: c392bbf0 c392bbd0 bf002d94 bf002624 c392bbf4 c393b000 c393b31c 
 bbe0: bf002bdc c392bc98 c392bbf4 bf000eb0 bf002be8   
 bc00:        
 bc20:        
 bc40:        
 bc60:      c3811400  c393b000
 bc80:  c02409cc c0228a60 c392bca8 c392bc9c bf000fd8 bf000ddc c392bcc4
 bca0: c392bcac bf003dfc bf000fb8 bf006634 c3811400  c392bce4 c392bcc8
 bcc0: c0115d30 bf003d70 c3811458 bf006668 bf006668 c012ef64 c392bd08 c392bce8
 bce0: c012ee60 c0115cd4 c3811458 bf006668 c3811504 c012ef64 c39532a0 c392bd24
 bd00: c392bd0c c012eff0 c012edc4  c392bd28 bf006668 c392bd4c c392bd28
 bd20: c012e498 c012ef70 c382d598 c38114a0  bf006668 bf006668 
 bd40: c392bd5c c392bd50 c012ecc8 c012e44c c392bd88 c392bd60 c012e950 c012ecb4
 bd60: bf006328 bf006634 bf006668 bf006668  c392a000 befe9e98 c392bdac
 bd80: c392bd8c c012f198 c012e8b0 bf006634  bf006668  c392a000
 bda0: c392bdc8 c392bdb0 c0115fa4 c012f150  bf0066a0 00075028 c392bdd8
 bdc0: c392bdcc bf003d10 c0115f64 c392bde8 c392bddc bf009080 bf003ce8 c392bdfc
 bde0: c392bdec bf00905c bf009078  c392bf80 c392be00 c00212b0 bf00900c
 be00: c0033640   c38f5c00 c392be5c c392be20 c017de80 c0033620
 be20:   0001   0010 c3a3ec20 0004
 be40:  c02b5700 c022f280 c022f268 c392be80 c392be60 c0067940 c006618c
 be60:  0009 c48b9000 0001 bf0066a0 c392be90 c392be84 c0067a44
 be80: c0067840 c392bea4 c392be94 c3a16ec0 000a c48b9000 c392bec4 c392bea8
 bea0: c007b774 c008466c    c392a000 c392bed4 c392bec8
 bec0: c007b844 c007b6e8 c392bf80 c392bed8 c005d188 c007b820  c392bf50
 bee0: c392bf48 c392bef0 bf0066ac c48bff50  c48bfca8 c48bfbd0 c3a16ca0
 bf00: c48c0c68 0016 0017 000d  00c0 00c0 c48c0068
 bf20: c48c0c58 c012e64c c48c0040 c48c0068 bf006338 0017  
 bf40:   9980 bf0066a0 00075028  9980 bf0066a0
 bf60: 00075028  c0021f84 c392a000 befe9e98 c392bfa4 c392bf84 c005d4c4
 bf80: c0021284 c00864d8 9980 00075028 0002 0080  c392bfa8
 bfa0: c0021de0 c005d440 9980 00075028 00075028 9980 00075018 00075028
 

Re: [PATCH] b43: Add Soft-MAC SDIO device support

2009-09-10 Thread Gábor Stefanik
On Thu, Sep 10, 2009 at 7:34 PM, Michael Buesch m...@bu3sch.de wrote:
 From: Albert Herranz albert_herr...@yahoo.es

 This adds support for Soft-MAC SDIO devices to b43.
 The driver still lacks some fixes for SDIO devices, so it's currently
 marked as BROKEN.

Is it actually completely broken; or already testable, just incomplete?


 Signed-off-by: Albert Herranz albert_herr...@yahoo.es
 Signed-off-by: Michael Buesch m...@bu3sch.de

 ---

 Depends on the SSB SDIO patch.


 Index: wireless-testing/drivers/net/wireless/b43/Kconfig
 ===
 --- wireless-testing.orig/drivers/net/wireless/b43/Kconfig      2009-09-10 
 19:23:09.0 +0200
 +++ wireless-testing/drivers/net/wireless/b43/Kconfig   2009-09-10 
 19:33:24.0 +0200
 @@ -61,11 +61,28 @@ config B43_PCMCIA

          If unsure, say N.

 +config B43_SDIO
 +       bool Broadcom 43xx SDIO device support (EXPERIMENTAL)
 +       depends on B43  SSB_SDIOHOST_POSSIBLE  EXPERIMENTAL  BROKEN
 +       select SSB_SDIOHOST
 +       ---help---
 +         Broadcom 43xx device support for Soft-MAC SDIO devices.
 +
 +         With this config option you can drive Soft-MAC b43 cards with a
 +         Secure Digital I/O interface.
 +         This includes the WLAN daughter card found on the Nintendo Wii
 +         video game console.
 +         Note that this does not support Broadcom 43xx Full-MAC devices.
 +
 +         It's safe to select Y here, even if you don't have a B43 SDIO 
 device.
 +
 +         If unsure, say N.
 +
  # Data transfers to the device via PIO
 -# This is only needed on PCMCIA devices. All others can do DMA properly.
 +# This is only needed on PCMCIA and SDIO devices. All others can do DMA 
 properly.
  config B43_PIO
        bool
 -       depends on B43  (B43_PCMCIA || B43_FORCE_PIO)
 +       depends on B43  (B43_SDIO || B43_PCMCIA || B43_FORCE_PIO)
        select SSB_BLOCKIO
        default y

 Index: wireless-testing/drivers/net/wireless/b43/Makefile
 ===
 --- wireless-testing.orig/drivers/net/wireless/b43/Makefile     2009-09-10 
 19:23:09.0 +0200
 +++ wireless-testing/drivers/net/wireless/b43/Makefile  2009-09-10 
 19:23:20.0 +0200
 @@ -16,6 +16,7 @@ b43-$(CONFIG_B43_PIO)         += pio.o
  b43-y                          += rfkill.o
  b43-$(CONFIG_B43_LEDS)         += leds.o
  b43-$(CONFIG_B43_PCMCIA)       += pcmcia.o
 +b43-$(CONFIG_B43_SDIO)         += sdio.o
  b43-$(CONFIG_B43_DEBUG)                += debugfs.o

  obj-$(CONFIG_B43)              += b43.o
 Index: wireless-testing/drivers/net/wireless/b43/main.c
 ===
 --- wireless-testing.orig/drivers/net/wireless/b43/main.c       2009-09-10 
 19:23:09.0 +0200
 +++ wireless-testing/drivers/net/wireless/b43/main.c    2009-09-10 
 19:23:20.0 +0200
 @@ -8,6 +8,9 @@
   Copyright (c) 2005 Danny van Dyk kugelf...@gentoo.org
   Copyright (c) 2005 Andreas Jaggi andreas.ja...@waterwave.ch

 +  SDIO support
 +  Copyright (c) 2009 Albert Herranz albert_herr...@yahoo.es
 +
   Some parts of the code in this file are derived from the ipw2200
   driver  Copyright(c) 2003 - 2004 Intel Corporation.

 @@ -53,6 +56,8 @@
  #include xmit.h
  #include lo.h
  #include pcmcia.h
 +#include sdio.h
 +#include linux/mmc/sdio_func.h

  MODULE_DESCRIPTION(Broadcom B43 wireless driver);
  MODULE_AUTHOR(Martin Langer);
 @@ -1587,7 +1592,7 @@ static void b43_beacon_update_trigger_wo
        mutex_lock(wl-mutex);
        dev = wl-current_dev;
        if (likely(dev  (b43_status(dev) = B43_STAT_INITIALIZED))) {
 -               if (0 /*FIXME dev-dev-bus-bustype == SSB_BUSTYPE_SDIO*/) {
 +               if (dev-dev-bus-bustype == SSB_BUSTYPE_SDIO) {
                        /* wl-mutex is enough. */
                        b43_do_beacon_update_trigger_work(dev);
                        mmiowb();
 @@ -1905,6 +1910,27 @@ static irqreturn_t b43_interrupt_handler
        return ret;
  }

 +/* SDIO interrupt handler. This runs in process context. */
 +static void b43_sdio_interrupt_handler(struct b43_wldev *dev)
 +{
 +       struct b43_wl *wl = dev-wl;
 +       struct sdio_func *func = dev-dev-bus-host_sdio;
 +       irqreturn_t ret;
 +
 +       if (unlikely(b43_status(dev)  B43_STAT_STARTED))
 +               return;
 +
 +       mutex_lock(wl-mutex);
 +       sdio_release_host(func);
 +
 +       ret = b43_do_interrupt(dev);
 +       if (ret == IRQ_WAKE_THREAD)
 +               b43_do_interrupt_thread(dev);
 +
 +       sdio_claim_host(func);
 +       mutex_unlock(wl-mutex);
 +}
 +
  void b43_do_release_fw(struct b43_firmware_file *fw)
  {
        release_firmware(fw-data);
 @@ -3828,7 +3854,7 @@ redo:

        /* Disable interrupts on the device. */
        b43_set_status(dev, B43_STAT_INITIALIZED);
 -       if (0 /*FIXME dev-dev-bus-bustype == SSB_BUSTYPE_SDIO*/) {
 +       if (dev-dev-bus-bustype == 

Re: b43 dma error

2009-09-08 Thread Gábor Stefanik
Do you have the threaded-IRQ patches applied? Also, what card is this?
(BCM4312?) Try upgrading your firmare (use v478 or the new v5xx one).
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 dma error

2009-09-08 Thread Gábor Stefanik
On Tue, Sep 8, 2009 at 7:50 PM, John Daikerdaikerj...@gmail.com wrote:
 On 09/08/2009 07:54 AM, Larry Finger wrote:

 Michael Buesch wrote:

 On Tuesday 08 September 2009 15:47:32 Dave Young wrote:

 I tested wireless-testing b43 driver, but got Fatal DMA error
 then the controller keep restarting...

 Please tell what I can provide or test, Thanks.

 Is this a regression? If so, please bisect.

 It is something specific to his system as I don't see anything like
 this. In addition, there are some users on the openSUSE forums that
 have implemented the latest compat-wireless and switched away from
 Broadcom wl to b43 on their LP PHY devices. So far, no complaints from
 them.

 Please reboot so that we see the ssb output as well. Use the command

 dmesg | egrep ssb|b43

 That way we will be able to see exactly what kind of device you have
 and what revisions are in it. AFAIK, the testing to date has been
 limited to Rev 1 PHYs and Rev 2 radios.

 Larry


 I can confirm the same issue.  I have a HP Mini 1116NR with a Broadcom 4312.
  Looks to be a PHY 1, Radio 2:

 --snip--
 [  456.165296] b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1
 [  456.165364] b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062,
 Revision 2
 --snip--

 I've attached the output of 'dmesg | egrep ssb|b43', my kernel config, and
 lspci -vv and lspci -nn

 Note: With the dmesg output, I had unloaded the b43 module previous
 'modprobe -r b43' and then loaded it again with debug output: 'modprobe b43
 verbose=3'

 John Daiker


Again, please test with v478 or v5xx firmware.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 dma error

2009-09-08 Thread Gábor Stefanik
On Tue, Sep 8, 2009 at 8:16 PM, Larry Fingerlarry.fin...@lwfinger.net wrote:
 John Daiker wrote:
 On 09/08/2009 07:54 AM, Larry Finger wrote:
 Michael Buesch wrote:
 On Tuesday 08 September 2009 15:47:32 Dave Young wrote:
 I tested wireless-testing b43 driver, but got Fatal DMA error
 then the controller keep restarting...

 Please tell what I can provide or test, Thanks.

 Is this a regression? If so, please bisect.

 It is something specific to his system as I don't see anything like
 this. In addition, there are some users on the openSUSE forums that
 have implemented the latest compat-wireless and switched away from
 Broadcom wl to b43 on their LP PHY devices. So far, no complaints from
 them.

 Please reboot so that we see the ssb output as well. Use the command

 dmesg | egrep ssb|b43

 That way we will be able to see exactly what kind of device you have
 and what revisions are in it. AFAIK, the testing to date has been
 limited to Rev 1 PHYs and Rev 2 radios.

 Larry


 I can confirm the same issue.  I have a HP Mini 1116NR with a Broadcom
 4312.  Looks to be a PHY 1, Radio 2:

 --snip--
 [  456.165296] b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1
 [  456.165364] b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062,
 Revision 2
 --snip--

 I've attached the output of 'dmesg | egrep ssb|b43', my kernel config,
 and lspci -vv and lspci -nn

 Note: With the dmesg output, I had unloaded the b43 module previous
 'modprobe -r b43' and then loaded it again with debug output: 'modprobe
  b43 verbose=3'

 Your PHY and your radio are the same as mine. In fact, the one thing I
 noticed is that you are using i386 architecture, whereas mine is
 x86_64. I have not tested with i386.

 Has anyone run the LP PHY modifications with 32-bit architecture?

Yes, me. (With the exact same card as John.)


 Larry
 --
 To unsubscribe from this list: send the line unsubscribe linux-wireless in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html




-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43 dma error

2009-09-08 Thread Gábor Stefanik
2009/9/8 Larry Finger larry.fin...@lwfinger.net:
 Gábor Stefanik wrote:
 On Tue, Sep 8, 2009 at 8:16 PM, Larry Fingerlarry.fin...@lwfinger.net 
 wrote:
 Your PHY and your radio are the same as mine. In fact, the one thing I
 noticed is that you are using i386 architecture, whereas mine is
 x86_64. I have not tested with i386.

 Has anyone run the LP PHY modifications with 32-bit architecture?

 Yes, me. (With the exact same card as John.)

 Is it a maximum memory issue? How much for you?

 John and Dave: Same question.

 Larry


2GB here.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH] b43: PCMCIA is not experimental anymore

2009-09-06 Thread Gábor Stefanik
2009/9/6 Michael Buesch m...@bu3sch.de:
 On Sunday 06 September 2009 20:42:00 Gábor Stefanik wrote:
 On Sun, Sep 6, 2009 at 2:49 PM, Michael Bueschm...@bu3sch.de wrote:
  PCMCIA support works well and is not experimental anymore.
 
  Signed-off-by: Michael Buesch m...@bu3sch.de
 
  ---
   drivers/net/wireless/b43/Kconfig |    4 ++--
   1 file changed, 2 insertions(+), 2 deletions(-)
 
  --- wireless-testing.orig/drivers/net/wireless/b43/Kconfig
  +++ wireless-testing/drivers/net/wireless/b43/Kconfig
  @@ -42,8 +42,8 @@ config B43_PCICORE_AUTOSELECT
         default y
 
   config B43_PCMCIA
  -       bool Broadcom 43xx PCMCIA device support (EXPERIMENTAL)
  -       depends on B43  SSB_PCMCIAHOST_POSSIBLE  EXPERIMENTAL
  +       bool Broadcom 43xx PCMCIA device support
  +       depends on B43  SSB_PCMCIAHOST_POSSIBLE
         select SSB_PCMCIAHOST
         ---help---
           Broadcom 43xx PCMCIA device support.
 
  --
  Greetings, Michael.
  ___
  Bcm43xx-dev mailing list
  Bcm43xx-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
 

 This should be auto-selected depending on SSB_PCMCIAHOST_POSSIBLE (at
 least if !EMBEDDED). There is no need for a separate config prompt if
 it's not EXPERIMENTAL anymore.


 Patch please

 --
 Greetings, Michael.


I need to fix my virtual machine first. (That's also why LP-PHY
development is stalled - I carelessly installed the VMware 7 beta
build I have been invited to, so that I can use all 4 CPU cores in the
VM - and the new VMware crashes on startup. Again, the VHD was not
lost, but I don't currently have the tools to read it.)

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: b43-fwcutter patch for new firmware versions (508.1107 and 508.102)

2009-09-03 Thread Gábor Stefanik
On Fri, Sep 4, 2009 at 12:02 AM, Daniel Lenskidlen...@gmail.com wrote:
 On Thu, 2009-09-03 at 16:37 -0500, Larry Finger wrote:
 Daniel Lenski wrote:
  Larry,
  I agree on the ridiculously poor packaging... did I mention they're 1gb+
  extracted?

 I didn't look at what is contained within that package, but we
 certainly don't need it.

 It appears to be the complete toolchain used to build the firmware,
 complete with a bunch of random binaries floating around.

  I have not found any other source of these, unfortunately.  I am happy
  to send the extracted firmware to developers off-list if desired.
  Linksys's less-than-helpful GPL source code page gives no indication of
  the age or date of the various files, so it's hard for me to tell which
  might be newer without downloading many Gb and extracting many
  firmwares.  I have half a mind to write a Python script...

 Not necessary to send the extracted software. If and when I want to
 see the new firmware, I'm perfectly happy to download that big file;
 however, it does not make sense for some user who is using the
 openSUSE script to wait through a large download just to install firmware.

 Good point.  I'm not really familiar with the legal intricacies of the
 licensing issues involved.  The LICENSE files strewn throughout the
 tarball *seem* to indicate that it'd be permissible to cut out the
 relevant binaries and distribute them, but I'm in way over my head
 here...

  I notice in your extraction that there are now ucode files for
  revisions 16, 17, 19, 20, and 21.
 
  Yes, indeed.  So are these the source of the FW12/13/14/... numbering?

 No. Michael assigns a new number whenever he releases a new version.
 All the new files are supposed to be listed with that number. At least
 I think that is the way it works. Version 12 is the last one released.

 Hmm... I think we might be talking about two different things.  I'm
 wondering about the source of the .id = FWxx tags in fwcutter_list.h.

They have no source - everytime a new version is added to fwcutter,
it's FWxx ID is incremented. E.g. if the most recent version is FW15,
then adding a new entry should be done as FW16.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Help again please

2009-09-02 Thread Gábor Stefanik
(CCing bcm43xx-dev.)

Could you post the dmesg output when this happens? (Enable debugging
in b43 before taking the log.)

2009/9/2 Brian J. Mc Hugh bjmch...@aya.yale.edu:
 Hi Gábor,

 I seem to remember you explaining there was a bluetooth problem and it
 couldn't coexist. Is that right?

 Brian


 2009/9/2 Brian J. Mc Hugh bjmch...@aya.yale.edu

 sorry. And everything worked. Now it doesn't. Am I missing a command?

 Brian

 2009/9/2 Brian J. Mc Hugh bjmch...@aya.yale.edu

 Hi Stefanik,

 My wireless Broadcom control transmit problem occurs when my Gateway Solo
 9300 experiences a hard sthudown, when it loses power.

 I think you instructed me to issue the following commands:


  sudo modprobe b43 btcoex=0
  sudo /etc/init.d/networking restart





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Appreciate help

2009-09-02 Thread Gábor Stefanik
On Wed, Sep 2, 2009 at 11:57 PM, Brian J. Mc Hughbjmch...@aya.yale.edu wrote:
 Hi Gábor and Broadcom,

 In essense, my card seems to be receiving signal but transmitting none.

 I was appreciate your help,

 Thanks,
 Brian


 Here are the diagnostics;

 #uname -r
 2.6.26-2-686

 #dmesg | grep b43
 [   30.415512] b43-pci-bridge :02:00.0: enabling device ( - 0002)
 [   32.618331] b43-phy0: Broadcom 4318 WLAN found
 [   40.118466] input: b43-phy0 as /class/input/input6
 [   40.204186] firmware: requesting b43/ucode5.fw
 [   40.493492] firmware: requesting b43/pcm5.fw
 [   40.677031] firmware: requesting b43/b0g0initvals5.fw
 [   40.763606] firmware: requesting b43/b0g0bsinitvals5.fw
 [   41.036083] b43-phy0: Loading firmware version 410.2160 (2007-05-26
 15:32:10)
 [   42.308852] Registered led device: b43-phy0::tx
 [   42.308934] Registered led device: b43-phy0::rx
 [   42.309022] Registered led device: b43-phy0::radio

 #lspci -vnn | grep 14e4
 02:00.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce
 One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)

 #lspci -nnv | grep -A1 14e4
 02:00.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce
 One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)
     Subsystem: Linksys WPC54G-EU version 3 [Wireless-G Notebook Adapter]
 [1737:0048]

 #iwlist wlan0 scan
 wlan0 Scan completed :
   Cell 01 - Address: 00:17:9A:52:34:2D
     ESSID:dlink
     Mode:Master
     Channel:11
     Frequency:2.462 GHz (Channel 11)
     Quality=73/100  Signal level=-42 dBm  Noise level=-63
 dBm
     Encryption key:off
     Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
   9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
   48 Mb/s; 54 Mb/s
     Extra:tsf=0017b3fcb180

 #ifdown wlan0
 There is already a pid file /var/run/dhclient.wlan0.pid with pid 1949
 killed old client process, removed PID file
 Internet Systems Consortium DHCP Client V3.1.1
 Copyright 2004-2008 Internet Systems Consortium.
 All rights reserved.
 For info, please visit http://www.isc.org/sw/dhcp/

 wmaster0: unknown hardware address type 801
 wmaster0: unknown hardware address type 801
 Listening on LPF/wlan0/00:18:f8:e2:1c:71
 Sending on   LPF/wlan0/00:18:f8:e2:1c:71
 Sending on   Socket/fallback

 #ifup wlan0
 Internet Systems Consortium DHCP Client V3.1.1
 Copyright 2004-2008 Internet Systems Consortium.
 All rights reserved.
 For info, please visit http://www.isc.org/sw/dhcp/

 wmaster0: unknown hardware address type 801
 wmaster0: unknown hardware address type 801
 Listening on LPF/wlan0/00:18:f8:e2:1c:71
 Sending on   LPF/wlan0/00:18:f8:e2:1c:71
 Sending on   Socket/fallback
 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14
 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 17
 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 18
 No DHCPOFFERS received.
 No working leases in persistent database - sleeping.




What's visible in dmesg after dhclient?

Also, to rule out hardware failures - does the card work under
Windows? (4318s break rather easily.)


-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Appreciate help

2009-09-02 Thread Gábor Stefanik
2009/9/3 Brian J. Mc Hugh bjmch...@aya.yale.edu:
 I went in the file /var/log/dmesg and didn't find dhclient.

 Does that signify failure?

You don't need to find dhclient in dmesg - the question is, what shows
up in dmesg after ifup calls dhclient?

About the Windows machine problem - try the Windows driver in ndiswrapper.



 2009/9/2 Gábor Stefanik netrolller...@gmail.com

 On Wed, Sep 2, 2009 at 11:57 PM, Brian J. Mc Hughbjmch...@aya.yale.edu
 wrote:
  Hi Gábor and Broadcom,
 
  In essense, my card seems to be receiving signal but transmitting none.
 
  I was appreciate your help,
 
  Thanks,
  Brian
 
 
  Here are the diagnostics;
 
  #uname -r
  2.6.26-2-686
 
  #dmesg | grep b43
  [   30.415512] b43-pci-bridge :02:00.0: enabling device ( -
  0002)
  [   32.618331] b43-phy0: Broadcom 4318 WLAN found
  [   40.118466] input: b43-phy0 as /class/input/input6
  [   40.204186] firmware: requesting b43/ucode5.fw
  [   40.493492] firmware: requesting b43/pcm5.fw
  [   40.677031] firmware: requesting b43/b0g0initvals5.fw
  [   40.763606] firmware: requesting b43/b0g0bsinitvals5.fw
  [   41.036083] b43-phy0: Loading firmware version 410.2160 (2007-05-26
  15:32:10)
  [   42.308852] Registered led device: b43-phy0::tx
  [   42.308934] Registered led device: b43-phy0::rx
  [   42.309022] Registered led device: b43-phy0::radio
 
  #lspci -vnn | grep 14e4
  02:00.0 Network controller [0280]: Broadcom Corporation BCM4318
  [AirForce
  One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)
 
  #lspci -nnv | grep -A1 14e4
  02:00.0 Network controller [0280]: Broadcom Corporation BCM4318
  [AirForce
  One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)
      Subsystem: Linksys WPC54G-EU version 3 [Wireless-G Notebook Adapter]
  [1737:0048]
 
  #iwlist wlan0 scan
  wlan0 Scan completed :
    Cell 01 - Address: 00:17:9A:52:34:2D
      ESSID:dlink
      Mode:Master
      Channel:11
      Frequency:2.462 GHz (Channel 11)
      Quality=73/100  Signal level=-42 dBm  Noise
  level=-63
  dBm
      Encryption key:off
      Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
    9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
    48 Mb/s; 54 Mb/s
      Extra:tsf=0017b3fcb180
 
  #ifdown wlan0
  There is already a pid file /var/run/dhclient.wlan0.pid with pid 1949
  killed old client process, removed PID file
  Internet Systems Consortium DHCP Client V3.1.1
  Copyright 2004-2008 Internet Systems Consortium.
  All rights reserved.
  For info, please visit http://www.isc.org/sw/dhcp/
 
  wmaster0: unknown hardware address type 801
  wmaster0: unknown hardware address type 801
  Listening on LPF/wlan0/00:18:f8:e2:1c:71
  Sending on   LPF/wlan0/00:18:f8:e2:1c:71
  Sending on   Socket/fallback
 
  #ifup wlan0
  Internet Systems Consortium DHCP Client V3.1.1
  Copyright 2004-2008 Internet Systems Consortium.
  All rights reserved.
  For info, please visit http://www.isc.org/sw/dhcp/
 
  wmaster0: unknown hardware address type 801
  wmaster0: unknown hardware address type 801
  Listening on LPF/wlan0/00:18:f8:e2:1c:71
  Sending on   LPF/wlan0/00:18:f8:e2:1c:71
  Sending on   Socket/fallback
  DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
  DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
  DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14
  DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 17
  DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 18
  No DHCPOFFERS received.
  No working leases in persistent database - sleeping.
 
 
 

 What's visible in dmesg after dhclient?

 Also, to rule out hardware failures - does the card work under
 Windows? (4318s break rather easily.)


 --
 Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: Is there a b43 dev who needs an N-PHY card?

2009-09-02 Thread Gábor Stefanik
On Thu, Sep 3, 2009 at 1:55 AM, Alex Elsayedeternal...@gmail.com wrote:
 I just recently got a new laptop with an Intel 5350, which means my
 4328 [PCI-ID] (4321 official Broadcom designation) is not in use any
 longer. I am in the Seattle area, but can send it by post if needed.
 ___
 Bcm43xx-dev mailing list
 Bcm43xx-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


We are still not ready to actually start implementing N-PHY support
(the specs are incomplete), so unless someone in the
reverse-engineering team needs one, then probably noone will be able
to use it at this point. However, it will be useful at a later time.

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: same problem with card

2009-09-02 Thread Gábor Stefanik
On Thu, Sep 3, 2009 at 2:37 AM, Brian J. Mc Hughbjmch...@aya.yale.edu wrote:
 Hi Larry and Gabor,

 Here is the file. Sorry about contacting both of you independently

 Brian



Hmm, this SPROM has the BT coexistence bit unset - in that case, BT is
not the reason behind the bug.

Do you know the exact kernel that introduced this bug?


 On Wed, Sep 2, 2009 at 7:08 PM, Larry Finger larry.fin...@lwfinger.net
 wrote:

 Brian J. Mc Hugh wrote:
  Hi Larry,
 
  I just did a clean install and have the same problem you help me solve
  before.
 
  DIdn't you recommend that I issue:
 
     sudo modprobe b43?

 I don't remember the circumstances; however, your driver b43 is
 already loaded and this command would do nothing.

 There is a possibility that your board suffers from a Bluetooth
 coexistence problem as does one other 4318. The only way to tell would
 be to rewrite the SPROM data. As I read the code, the btcoex module
 parameter does not accomplish the same thing.

 If you want to try that approach and are not using Bluetooth on that
 computer, do the following commands:

 SSB_SPROM=$(find /sys/devices -name ssb_sprom)
 echo $SSB_SPROM
 sudo cat $SSB_SPROM  ssb_sprom_copy

 The echo command should list only a single line. If it does, E-mail me
 the file ssb_sprom_copy, and I will modify it and mail it back.

 BTW, I have been following the thread with Gabor. It is bad form to
 open a second interchange on the same problem.

 Larry





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: same problem with card

2009-09-02 Thread Gábor Stefanik
2009/9/3 Brian J. Mc Hugh bjmch...@aya.yale.edu:
 I use Debian. Etch was 2.18. Lenny is 2.26.

  But I did already issue the commands to disable the bluetooth, i.e.,

    #sudo modprobe -rv b43
    #sudo modprobe -v b43 btcoex=0
    #sudo /etc/init.d/networking restart

 Unfortunately, I still don't have wireless.

 Brian

Could you try compiling equivalent kernels from Kernel.org? Just so
that we can rule out a Debian bug (e.g. in a distro-specific kernel
patch).



 2009/9/2 Gábor Stefanik netrolller...@gmail.com

 On Thu, Sep 3, 2009 at 2:37 AM, Brian J. Mc Hughbjmch...@aya.yale.edu
 wrote:
  Hi Larry and Gabor,
 
  Here is the file. Sorry about contacting both of you independently
 
  Brian
 
 

 Hmm, this SPROM has the BT coexistence bit unset - in that case, BT is
 not the reason behind the bug.

 Do you know the exact kernel that introduced this bug?

 
  On Wed, Sep 2, 2009 at 7:08 PM, Larry Finger larry.fin...@lwfinger.net
  wrote:
 
  Brian J. Mc Hugh wrote:
   Hi Larry,
  
   I just did a clean install and have the same problem you help me
   solve
   before.
  
   DIdn't you recommend that I issue:
  
      sudo modprobe b43?
 
  I don't remember the circumstances; however, your driver b43 is
  already loaded and this command would do nothing.
 
  There is a possibility that your board suffers from a Bluetooth
  coexistence problem as does one other 4318. The only way to tell would
  be to rewrite the SPROM data. As I read the code, the btcoex module
  parameter does not accomplish the same thing.
 
  If you want to try that approach and are not using Bluetooth on that
  computer, do the following commands:
 
  SSB_SPROM=$(find /sys/devices -name ssb_sprom)
  echo $SSB_SPROM
  sudo cat $SSB_SPROM  ssb_sprom_copy
 
  The echo command should list only a single line. If it does, E-mail me
  the file ssb_sprom_copy, and I will modify it and mail it back.
 
  BTW, I have been following the thread with Gabor. It is bad form to
  open a second interchange on the same problem.
 
  Larry
 
 



 --
 Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)





-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH v2] b43: LP-PHY: Begin implementing calibration software RFKILL support

2009-08-31 Thread Gábor Stefanik
On Mon, Aug 31, 2009 at 9:17 PM, Michael Bueschm...@bu3sch.de wrote:
 On Monday 31 August 2009 19:53:31 John W. Linville wrote:
 On Sun, Aug 30, 2009 at 05:55:40PM +0200, Michael Buesch wrote:
  On Sunday 30 August 2009 17:10:23 Larry Finger wrote:
   Michael Buesch wrote:
On Sunday 30 August 2009 02:15:55 Gábor Stefanik wrote:
 static void lpphy_pr41573_workaround(struct b43_wldev *dev)
 {
       struct b43_phy_lp *lpphy = dev-phy.lp;
@@ -1357,28 +1488,440 @@ static void lpphy_pr41573_workaround(struct 
b43_wldev *dev)
               b43_lptab_read_bulk(dev, B43_LPTAB32(7, 0x140),
                                   saved_tab_size, saved_tab);
       }
+      b43_put_phy_into_reset(dev);
   
Are you sure you really want this?
This function completely disables the PHY on the backplane and keeps 
the physical
PHY reset pin asserted (even after return from the function).
So the PHY will physically be powered down from this point on. The 
following
PHY accesses could even hang the machine, because the PHY won't 
respond to
register accesses anymore.
   
We currently only use this function on A/G Multi-PHY devices to 
permanently
hard-disable the PHY that's not used.
  
   The PHY reset routine in
   http://bcm-v4.sipsolutions.net/802.11/PHY/Reset, which I just updated
   for the latest N PHY changes, appears to be a different routine than
   b43_put_phy_into_reset(). The names are confusing.
 
  b43_put_phy_into_reset() is opencoded in the specifications in various init
  routines. There's no separate specs page for that function.
  But I think the code is straightforward and easy to understand.

 So is this patch right or not?  Should I hold onto it for 2.6.33
 (i.e. after the 2.6.32 merge window)?

 I'm pretty sure it's incorrect.

 --
 Greetings, Michael.


Do we have the correct reset routine implemented somewhere, or is it a
new routine to add?

-- 
Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-)
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Test message, please ignore.

2009-08-31 Thread Gábor Stefanik
I suspect that this will trigger a response from a spambot.

reset
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


[PATCH] b43: LP-PHY: Begin implementing calibration software RFKILL support

2009-08-29 Thread Gábor Stefanik
This implements the following calibration functions:
-Set TX IQCC
-Set TX Power by Index
-PR41573 workaround
-Calc RX IQ Comp
-PHY Cordic
-Run Samples
-Start/Stop TX Tone
-part of PAPD Cal TX Power
-RX I/Q Calibration
-The basic structure of the periodic calibration wrapper

Software RFKILL (required by calibration) is also implemented in
this round.

Signed-off-by: Gábor Stefanik netrolller...@gmail.com
---
Larry, please check if I got the math in PHY Cordic right!

 drivers/net/wireless/b43/main.c   |2 +-
 drivers/net/wireless/b43/main.h   |2 +
 drivers/net/wireless/b43/phy_lp.c |  684 -
 drivers/net/wireless/b43/phy_lp.h |   11 +-
 4 files changed, 611 insertions(+), 88 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index f2c5b2d..59bee02 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -3345,7 +3345,7 @@ static void b43_op_set_tsf(struct ieee80211_hw *hw, u64 
tsf)
mutex_unlock(wl-mutex);
 }
 
-static void b43_put_phy_into_reset(struct b43_wldev *dev)
+void b43_put_phy_into_reset(struct b43_wldev *dev)
 {
struct ssb_device *sdev = dev-dev;
u32 tmslow;
diff --git a/drivers/net/wireless/b43/main.h b/drivers/net/wireless/b43/main.h
index 0406e06..fdbea9a 100644
--- a/drivers/net/wireless/b43/main.h
+++ b/drivers/net/wireless/b43/main.h
@@ -129,6 +129,8 @@ void b43_wireless_core_reset(struct b43_wldev *dev, u32 
flags);
 
 void b43_controller_restart(struct b43_wldev *dev, const char *reason);
 
+void b43_put_phy_into_reset(struct b43_wldev *dev);
+
 #define B43_PS_ENABLED (1  0)/* Force enable hardware power saving */
 #define B43_PS_DISABLED(1  1)/* Force disable hardware power 
saving */
 #define B43_PS_AWAKE   (1  2)/* Force device awake */
diff --git a/drivers/net/wireless/b43/phy_lp.c 
b/drivers/net/wireless/b43/phy_lp.c
index 5fff30a..60e8f6f 100644
--- a/drivers/net/wireless/b43/phy_lp.c
+++ b/drivers/net/wireless/b43/phy_lp.c
@@ -67,6 +67,7 @@ static void b43_lpphy_op_prepare_structs(struct b43_wldev 
*dev)
struct b43_phy_lp *lpphy = phy-lp;
 
memset(lpphy, 0, sizeof(*lpphy));
+   lpphy-antenna = B43_ANTENNA_DEFAULT;
 
//TODO
 }
@@ -751,11 +752,17 @@ static void lpphy_clear_deaf(struct b43_wldev *dev, bool 
user)
}
 }
 
+static void lpphy_set_trsw_over(struct b43_wldev *dev, bool tx, bool rx)
+{
+   u16 trsw = (tx  1) | rx;
+   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, trsw);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+}
+
 static void lpphy_disable_crs(struct b43_wldev *dev, bool user)
 {
lpphy_set_deaf(dev, user);
-   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, 0x1);
-   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+   lpphy_set_trsw_over(dev, false, true);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFB);
b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x4);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFF7);
@@ -790,6 +797,60 @@ static void lpphy_restore_crs(struct b43_wldev *dev, bool 
user)
 
 struct lpphy_tx_gains { u16 gm, pga, pad, dac; };
 
+static void lpphy_disable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFFE);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFEF);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFBF);
+   if (dev-phy.rev = 2) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFBFF);
+   b43_phy_mask(dev, B43_PHY_OFDM(0xE5), 0xFFF7);
+   }
+   } else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFDFF);
+   }
+}
+
+static void lpphy_enable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x1);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x10);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x40);
+   if (dev-phy.rev = 2) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x100);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x400);
+   b43_phy_set(dev, B43_PHY_OFDM(0xE5), 0x8);
+   }
+   } else {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x200);
+   }
+}
+
+static void lpphy_disable_tx_gain_override(struct b43_wldev *dev)
+{
+   if (dev-phy.rev  2)
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFF7F);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xBFFF);
+   }
+   b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xFFBF);
+}
+
+static void

[PATCH v2] b43: LP-PHY: Begin implementing calibration software RFKILL support

2009-08-29 Thread Gábor Stefanik
This implements the following calibration functions:
-Set TX IQCC
-Set TX Power by Index
-PR41573 workaround
-Calc RX IQ Comp
-PHY Cordic
-Run Samples
-Start/Stop TX Tone
-part of PAPD Cal TX Power
-RX I/Q Calibration
-The basic structure of the periodic calibration wrapper

Software RFKILL (required by calibration) is also implemented in
this round.

Signed-off-by: Gábor Stefanik netrolller...@gmail.com
---
V2: Fix a mistake I made in the PHY Cordic routine.

 drivers/net/wireless/b43/main.c   |2 +-
 drivers/net/wireless/b43/main.h   |2 +
 drivers/net/wireless/b43/phy_lp.c |  686 -
 drivers/net/wireless/b43/phy_lp.h |   11 +-
 4 files changed, 613 insertions(+), 88 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index f2c5b2d..59bee02 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -3345,7 +3345,7 @@ static void b43_op_set_tsf(struct ieee80211_hw *hw, u64 
tsf)
mutex_unlock(wl-mutex);
 }
 
-static void b43_put_phy_into_reset(struct b43_wldev *dev)
+void b43_put_phy_into_reset(struct b43_wldev *dev)
 {
struct ssb_device *sdev = dev-dev;
u32 tmslow;
diff --git a/drivers/net/wireless/b43/main.h b/drivers/net/wireless/b43/main.h
index 0406e06..fdbea9a 100644
--- a/drivers/net/wireless/b43/main.h
+++ b/drivers/net/wireless/b43/main.h
@@ -129,6 +129,8 @@ void b43_wireless_core_reset(struct b43_wldev *dev, u32 
flags);
 
 void b43_controller_restart(struct b43_wldev *dev, const char *reason);
 
+void b43_put_phy_into_reset(struct b43_wldev *dev);
+
 #define B43_PS_ENABLED (1  0)/* Force enable hardware power saving */
 #define B43_PS_DISABLED(1  1)/* Force disable hardware power 
saving */
 #define B43_PS_AWAKE   (1  2)/* Force device awake */
diff --git a/drivers/net/wireless/b43/phy_lp.c 
b/drivers/net/wireless/b43/phy_lp.c
index 5fff30a..c13385b 100644
--- a/drivers/net/wireless/b43/phy_lp.c
+++ b/drivers/net/wireless/b43/phy_lp.c
@@ -67,6 +67,7 @@ static void b43_lpphy_op_prepare_structs(struct b43_wldev 
*dev)
struct b43_phy_lp *lpphy = phy-lp;
 
memset(lpphy, 0, sizeof(*lpphy));
+   lpphy-antenna = B43_ANTENNA_DEFAULT;
 
//TODO
 }
@@ -751,11 +752,17 @@ static void lpphy_clear_deaf(struct b43_wldev *dev, bool 
user)
}
 }
 
+static void lpphy_set_trsw_over(struct b43_wldev *dev, bool tx, bool rx)
+{
+   u16 trsw = (tx  1) | rx;
+   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, trsw);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+}
+
 static void lpphy_disable_crs(struct b43_wldev *dev, bool user)
 {
lpphy_set_deaf(dev, user);
-   b43_phy_maskset(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFC, 0x1);
-   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x3);
+   lpphy_set_trsw_over(dev, false, true);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFFB);
b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x4);
b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_VAL_0, 0xFFF7);
@@ -790,6 +797,60 @@ static void lpphy_restore_crs(struct b43_wldev *dev, bool 
user)
 
 struct lpphy_tx_gains { u16 gm, pga, pad, dac; };
 
+static void lpphy_disable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFFE);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFEF);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_0, 0xFFBF);
+   if (dev-phy.rev = 2) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFBFF);
+   b43_phy_mask(dev, B43_PHY_OFDM(0xE5), 0xFFF7);
+   }
+   } else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFDFF);
+   }
+}
+
+static void lpphy_enable_rx_gain_override(struct b43_wldev *dev)
+{
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x1);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x10);
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_0, 0x40);
+   if (dev-phy.rev = 2) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x100);
+   if (b43_current_band(dev-wl) == IEEE80211_BAND_2GHZ) {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x400);
+   b43_phy_set(dev, B43_PHY_OFDM(0xE5), 0x8);
+   }
+   } else {
+   b43_phy_set(dev, B43_LPPHY_RF_OVERRIDE_2, 0x200);
+   }
+}
+
+static void lpphy_disable_tx_gain_override(struct b43_wldev *dev)
+{
+   if (dev-phy.rev  2)
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFEFF);
+   else {
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xFF7F);
+   b43_phy_mask(dev, B43_LPPHY_RF_OVERRIDE_2, 0xBFFF);
+   }
+   b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xFFBF);
+}
+
+static void

[PATCH] b43: Refactor and update antenna diversity for A/G-PHY

2009-08-28 Thread Gábor Stefanik
-Make use of the b43_phy_set/mask/maskset helpers.
-Fix a few errors in the code.
-Make the code more readable.

Signed-off-by: Gábor Stefanik netrolller...@gmail.com
---
The phy-analog == 3 to phy-rev == 3 change in A-PHY is intentional,
it's a bugfix/spec conformance fix.

 drivers/net/wireless/b43/phy_a.c |   48 ++--
 drivers/net/wireless/b43/phy_g.c |   55 +++--
 2 files changed, 37 insertions(+), 66 deletions(-)

diff --git a/drivers/net/wireless/b43/phy_a.c b/drivers/net/wireless/b43/phy_a.c
index 809ec97..d90217c 100644
--- a/drivers/net/wireless/b43/phy_a.c
+++ b/drivers/net/wireless/b43/phy_a.c
@@ -518,58 +518,40 @@ static unsigned int b43_aphy_op_get_default_chan(struct 
b43_wldev *dev)
 static void b43_aphy_op_set_rx_antenna(struct b43_wldev *dev, int antenna)
 {//TODO
struct b43_phy *phy = dev-phy;
-   u64 hf;
u16 tmp;
int autodiv = 0;
 
if (antenna == B43_ANTENNA_AUTO0 || antenna == B43_ANTENNA_AUTO1)
autodiv = 1;
 
-   hf = b43_hf_read(dev);
-   hf = ~B43_HF_ANTDIVHELP;
-   b43_hf_write(dev, hf);
+   b43_hf_write(dev, b43_hf_read(dev)  ~B43_HF_ANTDIVHELP);
 
-   tmp = b43_phy_read(dev, B43_PHY_BBANDCFG);
-   tmp = ~B43_PHY_BBANDCFG_RXANT;
-   tmp |= (autodiv ? B43_ANTENNA_AUTO1 : antenna)
-B43_PHY_BBANDCFG_RXANT_SHIFT;
-   b43_phy_write(dev, B43_PHY_BBANDCFG, tmp);
+   b43_phy_maskset(dev, B43_PHY_BBANDCFG, ~B43_PHY_BBANDCFG_RXANT,
+   (autodiv ? B43_ANTENNA_AUTO1 : antenna) 
+   B43_PHY_BBANDCFG_RXANT_SHIFT);
 
if (autodiv) {
tmp = b43_phy_read(dev, B43_PHY_ANTDWELL);
-   if (antenna == B43_ANTENNA_AUTO0)
+   if (antenna == B43_ANTENNA_AUTO1)
tmp = ~B43_PHY_ANTDWELL_AUTODIV1;
else
tmp |= B43_PHY_ANTDWELL_AUTODIV1;
b43_phy_write(dev, B43_PHY_ANTDWELL, tmp);
}
-   if (phy-rev  3) {
-   tmp = b43_phy_read(dev, B43_PHY_ANTDWELL);
-   tmp = (tmp  0xFF00) | 0x24;
-   b43_phy_write(dev, B43_PHY_ANTDWELL, tmp);
-   } else {
-   tmp = b43_phy_read(dev, B43_PHY_OFDM61);
-   tmp |= 0x10;
-   b43_phy_write(dev, B43_PHY_OFDM61, tmp);
-   if (phy-analog == 3) {
-   b43_phy_write(dev, B43_PHY_CLIPPWRDOWNT,
- 0x1D);
-   b43_phy_write(dev, B43_PHY_ADIVRELATED,
- 8);
+   if (phy-rev  3)
+   b43_phy_maskset(dev, B43_PHY_ANTDWELL, 0xFF00, 0x24);
+   else {
+   b43_phy_set(dev, B43_PHY_OFDM61, 0x10);
+   if (phy-rev == 3) {
+   b43_phy_write(dev, B43_PHY_CLIPPWRDOWNT, 0x1D);
+   b43_phy_write(dev, B43_PHY_ADIVRELATED, 8);
} else {
-   b43_phy_write(dev, B43_PHY_CLIPPWRDOWNT,
- 0x3A);
-   tmp =
-   b43_phy_read(dev,
-B43_PHY_ADIVRELATED);
-   tmp = (tmp  0xFF00) | 8;
-   b43_phy_write(dev, B43_PHY_ADIVRELATED,
- tmp);
+   b43_phy_write(dev, B43_PHY_CLIPPWRDOWNT, 0x3A);
+   b43_phy_maskset(dev, B43_PHY_ADIVRELATED, 0xFF00, 8);
}
}
 
-   hf |= B43_HF_ANTDIVHELP;
-   b43_hf_write(dev, hf);
+   b43_hf_write(dev, b43_hf_read(dev) | B43_HF_ANTDIVHELP);
 }
 
 static void b43_aphy_op_adjust_txpower(struct b43_wldev *dev)
diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c
index c6d639d..4b6154b 100644
--- a/drivers/net/wireless/b43/phy_g.c
+++ b/drivers/net/wireless/b43/phy_g.c
@@ -2638,65 +2638,54 @@ static unsigned int b43_gphy_op_get_default_chan(struct 
b43_wldev *dev)
 static void b43_gphy_op_set_rx_antenna(struct b43_wldev *dev, int antenna)
 {
struct b43_phy *phy = dev-phy;
-   u64 hf;
u16 tmp;
int autodiv = 0;
 
if (antenna == B43_ANTENNA_AUTO0 || antenna == B43_ANTENNA_AUTO1)
autodiv = 1;
 
-   hf = b43_hf_read(dev);
-   hf = ~B43_HF_ANTDIVHELP;
-   b43_hf_write(dev, hf);
-
-   tmp = b43_phy_read(dev, B43_PHY_BBANDCFG);
-   tmp = ~B43_PHY_BBANDCFG_RXANT;
-   tmp |= (autodiv ? B43_ANTENNA_AUTO1 : antenna)
-B43_PHY_BBANDCFG_RXANT_SHIFT;
-   b43_phy_write(dev, B43_PHY_BBANDCFG, tmp);
+   b43_hf_write(dev, b43_hf_read(dev)  ~B43_HF_ANTDIVHELP);
 
+   b43_phy_maskset(dev, B43_PHY_BBANDCFG, ~B43_PHY_BBANDCFG_RXANT,
+   (autodiv ? B43_ANTENNA_AUTO1 : antenna) 
+   B43_PHY_BBANDCFG_RXANT_SHIFT

  1   2   >