OLD | NEW |
1 /* | 1 /* |
2 * Common code for mac80211 Prism54 drivers | 2 * Common code for mac80211 Prism54 drivers |
3 * | 3 * |
4 * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net> | 4 * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net> |
5 * Copyright (c) 2007-2009, Christian Lamparter <chunkeey@web.de> | 5 * Copyright (c) 2007-2009, Christian Lamparter <chunkeey@web.de> |
6 * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> | 6 * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> |
7 * | 7 * |
8 * Based on: | 8 * Based on: |
9 * - the islsm (softmac prism54) driver, which is: | 9 * - the islsm (softmac prism54) driver, which is: |
10 * Copyright 2004-2006 Jean-Baptiste Note <jbnote@gmail.com>, et al. | 10 * Copyright 2004-2006 Jean-Baptiste Note <jbnote@gmail.com>, et al. |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 } else if (count > 0) { | 439 } else if (count > 0) { |
440 info->status.rates[idx].count = count; | 440 info->status.rates[idx].count = count; |
441 count = 0; | 441 count = 0; |
442 } else { | 442 } else { |
443 info->status.rates[idx].idx = -1; | 443 info->status.rates[idx].idx = -1; |
444 info->status.rates[idx].count = 0; | 444 info->status.rates[idx].count = 0; |
445 } | 445 } |
446 } | 446 } |
447 | 447 |
448 if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) && | 448 if (!(info->flags & IEEE80211_TX_CTL_NO_ACK) && |
449 » (!payload->status)) | 449 » !(payload->status & P54_TX_FAILED)) |
450 info->flags |= IEEE80211_TX_STAT_ACK; | 450 info->flags |= IEEE80211_TX_STAT_ACK; |
451 if (payload->status & P54_TX_PSM_CANCELLED) | 451 if (payload->status & P54_TX_PSM_CANCELLED) |
452 info->flags |= IEEE80211_TX_STAT_TX_FILTERED; | 452 info->flags |= IEEE80211_TX_STAT_TX_FILTERED; |
453 info->status.ack_signal = p54_rssi_to_dbm(priv, | 453 info->status.ack_signal = p54_rssi_to_dbm(priv, |
454 (int)payload->ack_rssi); | 454 (int)payload->ack_rssi); |
455 | 455 |
456 /* Undo all changes to the frame. */ | 456 /* Undo all changes to the frame. */ |
457 switch (entry_data->key_type) { | 457 switch (entry_data->key_type) { |
458 case P54_CRYPTO_TKIPMICHAEL: { | 458 case P54_CRYPTO_TKIPMICHAEL: { |
459 u8 *iv = (u8 *)(entry_data->align + pad + | 459 u8 *iv = (u8 *)(entry_data->align + pad + |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 { | 533 { |
534 struct p54_hdr *hdr = (struct p54_hdr *) skb->data; | 534 struct p54_hdr *hdr = (struct p54_hdr *) skb->data; |
535 struct p54_trap *trap = (struct p54_trap *) hdr->data; | 535 struct p54_trap *trap = (struct p54_trap *) hdr->data; |
536 u16 event = le16_to_cpu(trap->event); | 536 u16 event = le16_to_cpu(trap->event); |
537 u16 freq = le16_to_cpu(trap->frequency); | 537 u16 freq = le16_to_cpu(trap->frequency); |
538 | 538 |
539 switch (event) { | 539 switch (event) { |
540 case P54_TRAP_BEACON_TX: | 540 case P54_TRAP_BEACON_TX: |
541 break; | 541 break; |
542 case P54_TRAP_RADAR: | 542 case P54_TRAP_RADAR: |
543 » » wiphy_info(priv->hw->wiphy, "radar (freq:%d mhz)\n", freq); | 543 » » wiphy_info(priv->hw->wiphy, "radar (freq:%d MHz)\n", freq); |
544 break; | 544 break; |
545 case P54_TRAP_NO_BEACON: | 545 case P54_TRAP_NO_BEACON: |
546 if (priv->vif) | 546 if (priv->vif) |
547 ieee80211_beacon_loss(priv->vif); | 547 ieee80211_beacon_loss(priv->vif); |
548 break; | 548 break; |
549 case P54_TRAP_SCAN: | 549 case P54_TRAP_SCAN: |
550 break; | 550 break; |
551 case P54_TRAP_TBTT: | 551 case P54_TRAP_TBTT: |
552 break; | 552 break; |
553 case P54_TRAP_TIMER: | 553 case P54_TRAP_TIMER: |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
861 txhdr->align[0] = padding; | 861 txhdr->align[0] = padding; |
862 | 862 |
863 hdr->len = cpu_to_le16(len); | 863 hdr->len = cpu_to_le16(len); |
864 /* modifies skb->cb and with it info, so must be last! */ | 864 /* modifies skb->cb and with it info, so must be last! */ |
865 p54info = (void *) info->rate_driver_data; | 865 p54info = (void *) info->rate_driver_data; |
866 p54info->extra_len = extra_len; | 866 p54info->extra_len = extra_len; |
867 | 867 |
868 p54_tx(priv, skb); | 868 p54_tx(priv, skb); |
869 return NETDEV_TX_OK; | 869 return NETDEV_TX_OK; |
870 } | 870 } |
OLD | NEW |