low throughputs with 14e4:4353

francesco.gringoli at ing.unibs.it francesco.gringoli at ing.unibs.it
Thu Dec 8 06:06:19 EST 2011


On Dec 8, 2011, at 10:34 AM, Rafał Miłecki wrote:

> W dniu 8 grudnia 2011 10:21 użytkownik
> <francesco.gringoli at ing.unibs.it> napisał:
>> 
>> On Dec 7, 2011, at 1:01 PM, Rafał Miłecki wrote:
>> 
>>> W dniu 5 grudnia 2011 21:39 użytkownik Rafał Miłecki <zajec5 at gmail.com> napisał:
>>>> W dniu 29 listopada 2011 22:36 użytkownik Rafał Miłecki
>>>> <zajec5 at gmail.com> napisał:
>>>>> I'll give it a rest and will try in next days again.
>>>> 
>>>> It really seems it's something spur avoidance related (and so most
>>>> probably CC PLL related). After applying my patch implementing SPUR
>>>> avoidance, card stops receiving anything. I'll dig more around it.
>>> 
>>> I've found bug in my implementation and fixed it. Today evening I'll
>>> test if my patch fixes performance anyhow (I need physical access).
>> Rafal,
>> 
>> I did some mmio traces and checked what happens when changing txpower.
>> 
>> 1) values in N-PHY tables 0x1A and 0x1B are changed, e.g., for txpower 5 and txpower 10 they are the same, for txpower 15 they are different so I guess there exist thresholds. Unfortunately I don't even know what these tables are.
>> 
>> 2) value in PHY register 0x1ea is changed according to the configured power value. As I can read in specs this is the TX power control target power for both radios: e.g., for txpower 5 => 0x2020, for txpower 10 => 0x2c2c, for txpower 15 => 0x3c3c.
>> 
>> Then I switched to b43 and load a custom firmware to analyze how register 0x1ea is setup and it holds always 0x0000. I forced it to be 0x2c2c and magically the throughput increased to ~ 3Mb/s. Unfortunately when I try 0x3c3c (corresponding to txpower 15) I get only phy-transmission errors.
> 
> I can see a lot of differences between wl and b43, a lot to validate&test.
> 
> Do you have some magic scripts for parsing MMIO dumps? I hope you do,
> otherwise it's impossible to analyze that ;)
No, I don't have yet. But I can ask some wizard to write some perl stuff. I will report his answer later ;-)

> You can try adding
> nphy->txpwrctrl = true;
> in function b43_nphy_op_prepare_structs if you wish test something
> right now. I've noticed this missing part today morning, but won't
> able to test until evening.
No improvement. But I believe that when that is set up it's the firmware to change the power levels but the firmware does not change the tables. Maybe it does by rewriting the power mask in the tx transmission control field overwriting what written by the kernel driver.

-Francesco

> 
> -- 
> Rafał




More information about the b43-dev mailing list