aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt61pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt61pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index edddbf35bbab..15191d6581b1 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -1764,7 +1764,8 @@ static void rt61pci_txdone(struct rt2x00_dev *rt2x00dev)
1764 "TX status report missed for entry %d\n", 1764 "TX status report missed for entry %d\n",
1765 entry_done->entry_idx); 1765 entry_done->entry_idx);
1766 1766
1767 txdesc.status = TX_FAIL_OTHER; 1767 txdesc.flags = 0;
1768 __set_bit(TXDONE_UNKNOWN, &txdesc.flags);
1768 txdesc.retry = 0; 1769 txdesc.retry = 0;
1769 1770
1770 rt2x00pci_txdone(rt2x00dev, entry_done, &txdesc); 1771 rt2x00pci_txdone(rt2x00dev, entry_done, &txdesc);
@@ -1774,7 +1775,17 @@ static void rt61pci_txdone(struct rt2x00_dev *rt2x00dev)
1774 /* 1775 /*
1775 * Obtain the status about this packet. 1776 * Obtain the status about this packet.
1776 */ 1777 */
1777 txdesc.status = rt2x00_get_field32(reg, STA_CSR4_TX_RESULT); 1778 txdesc.flags = 0;
1779 switch (rt2x00_get_field32(reg, STA_CSR4_TX_RESULT)) {
1780 case 0: /* Success, maybe with retry */
1781 __set_bit(TXDONE_SUCCESS, &txdesc.flags);
1782 break;
1783 case 6: /* Failure, excessive retries */
1784 __set_bit(TXDONE_EXCESSIVE_RETRY, &txdesc.flags);
1785 /* Don't break, this is a failed frame! */
1786 default: /* Failure */
1787 __set_bit(TXDONE_FAILURE, &txdesc.flags);
1788 }
1778 txdesc.retry = rt2x00_get_field32(reg, STA_CSR4_RETRY_COUNT); 1789 txdesc.retry = rt2x00_get_field32(reg, STA_CSR4_RETRY_COUNT);
1779 1790
1780 rt2x00pci_txdone(rt2x00dev, entry, &txdesc); 1791 rt2x00pci_txdone(rt2x00dev, entry, &txdesc);