Thread (11 messages) 11 messages, 5 authors, 2006-11-01

Re: [PATCH] wireless-2.6 zd1211rw check against regulatory domain rather than hardcoded value of 11

From: Uli Kunitz <hidden>
Date: 2006-10-30 22:59:34
Also in: lkml

Johannes Berg wrote:
quoted
I'm not so sure about this. This patching might be US-specific and we 
cannot simply apply the setting for top channel of another domain 
instead of channel 11. One option would be to set the value only under 
the US regulatory domain.
??
What the patch does is replace the top channel which is hardcoded to 11
by the top channel given by the current regulatory domain. How can that
be wrong? Except that you may want to init the regulatory domain from
the EEPROM but I'm not sure how the ieee80211 code works wrt. that.

johannes
The problem is not so much that I don't trust the geo code, but whether
setting the register to that band-edge value for a higher channel is
the right thing to do. It looks like that this is a hack for FFC
compliance. Therefore I suggest to patch CR128 only
for the US regulatory domain.

Here is the code from the GPL vendor driver (zdhw.c):

    if (pObj->HWFeature & BIT_21)  //6321 for FCC regulation, enabled HWFeature 6M band edge bit (for AL2230, AL2230S)
     {
         if (ChannelNo == 1 || ChannelNo == 11)  //MARK_003, band edge, these may depend on PCB layout
         {
             pObj->SetReg(reg, ZD_CR128, 0x12);
             pObj->SetReg(reg, ZD_CR129, 0x12);
             pObj->SetReg(reg, ZD_CR130, 0x10);
             pObj->SetReg(reg, ZD_CR47, 0x1E);
         }
         else //(ChannelNo 2 ~ 10, 12 ~ 14)
         {
             pObj->SetReg(reg, ZD_CR128, 0x14);
             pObj->SetReg(reg, ZD_CR129, 0x12);
             pObj->SetReg(reg, ZD_CR130, 0x10);
             pObj->SetReg(reg, ZD_CR47, 0x1E);
         }
     }

The patch from Holden would set ZD_CR128 to 0x12 for the highest channel,
which would not reflect the logic of the vendor driver.

Kind regards,

Uli

-- 
Uli Kunitz (kune@deine-taler.de)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help