[rt2x00-users] [PATCH 1/4] rt2x00: new beaconing interface for rt2x00pci

Helmut Schaa helmut.schaa at googlemail.com
Thu Jul 1 21:46:41 AEST 2010


Am Mittwoch 30 Juni 2010 schrieb Helmut Schaa:
> Am Mittwoch 30 Juni 2010 schrieb Helmut Schaa:
> > This patch adds a new beaconing interface for use in pci drivers. Differences
> > to the previous implementation in rt2x00lib are:
> > 
> > Buffered broadcast and multicast frames are sent out after DTIM beacons
> > in a tasklet to maintain low latency. Since USB devices are not able to
> > report when the beacon was sent out we just implement this for pci/soc
> > devices.
> > 
> > Allow drivers to make use of pre tbtt interrupts to update the beacon.
> > Introduce a new hw flag DRIVER_SUPPORT_PRE_TBTT_INTERRUPT to indicate if a
> > driver updates the beacon prior to the tbtt or now. If no pre_tbtt interrupt
> > is available we still stick to the set_tim callback to update the beacon
> > when the TIM changes.
> > 
> > Nevertheless, if a driver does not support pre tbtt interrupts the DTIM
> > count will be incorrect under some circumstances (DTIM period > 1). Devices
> > that support pre tbtt interrupts the beacon is updated directly prior to
> > transmission and thus does not need to update the beacon in set_tim anymore.
> > Resulting in a correct TIM and a correct DTIM count in the beacon.
> 
> And btw. in the pre tbtt case the beacon is updated in hard irq context as
> otherwise we would need a much larger delay. Even when using a tasklet it
> can happen that the tasklet is executed in the next tick which can simply be
> something around 10ms (CONFIG_HZ=100).

Hmm, maybe that's not the best idea as rt2x00queue_update_beacon acquires a
mutex.

Just thought about switching to threaded interrupts. Maybe I'll test that
soon.

Helmut




More information about the users mailing list