On Monday 05 February 2007 14:11, Johannes Berg wrote:
> On Mon, 2007-02-05 at 13:55 +0100, Michael Buesch wrote:
> 
> > -#define BCM43xx_TXSTAT_FLAG_ACK            0x01
> > -//TODO #define BCM43xx_TXSTAT_FLAG_???     0x02
> > -//TODO #define BCM43xx_TXSTAT_FLAG_???     0x04
> > -//TODO #define BCM43xx_TXSTAT_FLAG_???     0x08
> > -//TODO #define BCM43xx_TXSTAT_FLAG_???     0x10
> > -#define BCM43xx_TXSTAT_FLAG_IGNORE 0x20
> > -//TODO #define BCM43xx_TXSTAT_FLAG_???     0x40
> > -//TODO #define BCM43xx_TXSTAT_FLAG_???     0x80
> > +#define BCM43xx_TXSTAT_FLAG_AMPDU  0x20
> > +#define BCM43xx_TXSTAT_FLAG_INTER  0x40
> 
> That's wrong. You see, in the specs we say:
> 
> 0x0040  intermediate status notification
> 0x0020 status is for an AMPDU (afterburner) 
> 0x001C suppression reason 
> 0x0002 ack received 
> 0x0001 valid bit 
> 
> But in the v3 code this whole stuff was shifted down by one as you can
> see by the code you removed:
> #define BCM43xx_TXSTAT_FLAG_ACK               0x01
> 
> johannes


Ok, so what about that?

Change mail subject to:

[PATCH] bcm43xx: Ignore ampdu status reports


Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c       
2007-01-28 15:33:39.000000000 +0100
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c    2007-02-05 
13:46:38.000000000 +0100
@@ -1453,12 +1453,10 @@ static void handle_irq_transmit_status(s
 
                bcm43xx_debugfs_log_txstat(bcm, &stat);
 
-               if (stat.flags & BCM43xx_TXSTAT_FLAG_IGNORE)
+               if (stat.flags & BCM43xx_TXSTAT_FLAG_AMPDU)
+                       continue;
+               if (stat.flags & BCM43xx_TXSTAT_FLAG_INTER)
                        continue;
-               if (!(stat.flags & BCM43xx_TXSTAT_FLAG_ACK)) {
-                       //TODO: packet was not acked (was lost)
-               }
-               //TODO: There are more (unknown) flags to test. see 
bcm43xx_main.h
 
                if (bcm43xx_using_pio(bcm))
                        bcm43xx_pio_handle_xmitstatus(bcm, &stat);
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h       
2007-01-28 13:59:51.000000000 +0100
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_xmit.h    2007-02-05 
14:22:18.000000000 +0100
@@ -137,14 +137,8 @@ struct bcm43xx_xmitstatus {
        u16 unknown; //FIXME
 };
 
-#define BCM43xx_TXSTAT_FLAG_ACK                0x01
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x02
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x04
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x08
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x10
-#define BCM43xx_TXSTAT_FLAG_IGNORE     0x20
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x40
-//TODO #define BCM43xx_TXSTAT_FLAG_??? 0x80
+#define BCM43xx_TXSTAT_FLAG_AMPDU      0x10
+#define BCM43xx_TXSTAT_FLAG_INTER      0x20
 
 u8 bcm43xx_plcp_get_ratecode_cck(const u8 bitrate);
 u8 bcm43xx_plcp_get_ratecode_ofdm(const u8 bitrate);


-- 
Greetings Michael.
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to