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

Ivo Van Doorn ivdoorn at gmail.com
Thu Jul 1 22:47:54 AEST 2010


On Thu, Jul 1, 2010 at 1:46 PM, Helmut Schaa
<helmut.schaa at googlemail.com> wrote:
> 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.

Hm, ok. I'll revert the patches from the experimental tree then.

Ivo




More information about the users mailing list