Well, first thing is that I do think there is a reason Broadcom removed hw TKIP support from their drivers. ;) But well, let's look at the patch. > + /* FIXME this is the wrong offset : it goes in tkip rx phase1 shm */ > +#if 0 > b43_write_probe_resp_plcp(dev, 0x31A, size, &b43_b_ratetable[0]); > b43_write_probe_resp_plcp(dev, 0x32C, size, &b43_b_ratetable[1]); > b43_write_probe_resp_plcp(dev, 0x33E, size, &b43_b_ratetable[2]); > b43_write_probe_resp_plcp(dev, 0x350, size, &b43_b_ratetable[3]); > +#endif This looks interesting. Care to find out the correct offsets and submit this fix as a separate patch? > + if (algorithm == B43_SEC_ALGO_TKIP) { > + /* > + * We should provide an initial iv32, phase1key pair. > + * We could start with iv32=0 and compute the corresponding > + * phase1key, but this mean calling ieee80211_get_tkip_key > + * with a fake skb (or export other tkip function). > + * Because we are lazy we hope iv32 won't start with > + * 0xffff and let's b43_mac_update_tkip_key provide a > + * correct pair. > + */ > + rx_tkip_phase1_write(dev, index, 0xffff, (u16*)buf); > + } else /* clear it */ > + rx_tkip_phase1_write(dev, index, 0, (u16*)buf); Why do you write phase1, if TKIP is not used? > + /* FIXME : for b43_new_kidx_api, there can be 54 key > + * instead of 50 in RCMTA and TKIPTSCTTAK. > + */ I don't understand this comment. > - if (algorithm == B43_SEC_ALGO_TKIP) { > - /* FIXME: No TKIP hardware encryption for now. */ > + if (algorithm == B43_SEC_ALGO_TKIP && > + (!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE) || > + key->flags & IEEE80211_KEY_FLAG_WMM_STA )) { > + /* We support only one rx queue (no QOS) and pairwise key */ This comment doesn't really make sense to me, too. What does QoS have to do with the RX queue? Next time please inline the patch ;) -- Greetings, Michael. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html