Gábor Stefanik a écrit :
> On Mon, Feb 15, 2010 at 8:33 AM, Benoit Papillault
> <benoit.papilla...@free.fr> wrote:
>   
>> Both changes allow for proper TSF synchronisation in STA and IBSS mode.
>>
>> v2: Fix error handling logic
>>
>> Signed-off-by: Benoit Papillault <benoit.papilla...@free.fr>
>> ---
>>  drivers/net/wireless/zd1211rw/zd_chip.c |   21 ++++++++++++++++++++-
>>  drivers/net/wireless/zd1211rw/zd_chip.h |    1 +
>>  drivers/net/wireless/zd1211rw/zd_mac.c  |    8 +++++---
>>  3 files changed, 26 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/wireless/zd1211rw/zd_chip.c 
>> b/drivers/net/wireless/zd1211rw/zd_chip.c
>> index 7ca95c4..f525459 100644
>> --- a/drivers/net/wireless/zd1211rw/zd_chip.c
>> +++ b/drivers/net/wireless/zd1211rw/zd_chip.c
>> @@ -397,6 +397,25 @@ int zd_write_mac_addr(struct zd_chip *chip, const u8 
>> *mac_addr)
>>        return r;
>>  }
>>
>> +int zd_write_bssid(struct zd_chip *chip, const u8 *bssid)
>> +{
>> +       struct zd_ioreq32 ioreqs[] = {
>> +               { CR_BSSID_P1, 0 },
>> +               { CR_BSSID_P2, 0 }
>> +       };
>> +
>> +       if (bssid) {
>> +               ioreqs[0].value = (bssid[3] << 24)
>> +                               | (bssid[2] << 16)
>> +                               | (bssid[1] <<  8)
>> +                               |  bssid[0];
>> +               ioreqs[1].value = (bssid[5] <<  8)
>> +                               |  bssid[4];
>> +       }
>> +
>> +       return zd_iowrite32a(chip, ioreqs, ARRAY_SIZE(ioreqs));
>> +}
>> +
>>  int zd_read_regdomain(struct zd_chip *chip, u8 *regdomain)
>>  {
>>        int r;
>> @@ -806,7 +825,7 @@ static int hw_init_hmac(struct zd_chip *chip)
>>                { CR_AFTER_PNP,                 0x1 },
>>                { CR_WEP_PROTECT,               0x114 },
>>                { CR_IFS_VALUE,                 IFS_VALUE_DEFAULT },
>> -               { CR_CAM_MODE,                  MODE_AP_WDS},
>> +               { CR_CAM_MODE,                  MODE_IBSS},
>>        };
>>
>>        ZD_ASSERT(mutex_is_locked(&chip->mutex));
>> diff --git a/drivers/net/wireless/zd1211rw/zd_chip.h 
>> b/drivers/net/wireless/zd1211rw/zd_chip.h
>> index f8bbf7d..7b0c58c 100644
>> --- a/drivers/net/wireless/zd1211rw/zd_chip.h
>> +++ b/drivers/net/wireless/zd1211rw/zd_chip.h
>> @@ -881,6 +881,7 @@ static inline u8 _zd_chip_get_channel(struct zd_chip 
>> *chip)
>>  u8  zd_chip_get_channel(struct zd_chip *chip);
>>  int zd_read_regdomain(struct zd_chip *chip, u8 *regdomain);
>>  int zd_write_mac_addr(struct zd_chip *chip, const u8 *mac_addr);
>> +int zd_write_bssid(struct zd_chip *chip, const u8 *bssid);
>>  int zd_chip_switch_radio_on(struct zd_chip *chip);
>>  int zd_chip_switch_radio_off(struct zd_chip *chip);
>>  int zd_chip_enable_int(struct zd_chip *chip);
>> diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c 
>> b/drivers/net/wireless/zd1211rw/zd_mac.c
>> index 9cb6cbc..0de176b 100644
>> --- a/drivers/net/wireless/zd1211rw/zd_mac.c
>> +++ b/drivers/net/wireless/zd1211rw/zd_mac.c
>> @@ -913,13 +913,13 @@ static int zd_op_config(struct ieee80211_hw *hw, u32 
>> changed)
>>                 */
>>                u32 cr_sniffer = !!(conf->flags & IEEE80211_CONF_MONITOR);
>>                ret = zd_iowrite32(&mac->chip, CR_SNIFFER_ON, cr_sniffer);
>> -               if (!ret)
>> +               if (ret)
>>                        return ret;
>>        }
>>     
>
>
> Crosstalk from your other patch?
>
>   
Oops .. I did something wrong with git rebase I guess. Will resent.

Regards,
Benoit


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Zd1211-devs mailing list - http://zd1211.wiki.sourceforge.net/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Reply via email to