On Monday 30 November 2009, Benoit Papillault wrote:
> From: Benoit PAPILLAULT <[email protected]>
>
> RX aggregation is a way to receive multiple 802.11 frames in one RX buffer.
> However, we don't know yet how to handle this case in rt2800usb_fill_rxdone
> and this has probably no impact on RX performance as well, so we disable it
>
> Signed-off-by: Benoit Papillault <[email protected]>
> ---
> drivers/net/wireless/rt2x00/rt2800usb.c | 4 +---
> 1 files changed, 1 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
> index af85d18..ed31763 100644
> --- a/drivers/net/wireless/rt2x00/rt2800usb.c
> +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
> @@ -295,9 +295,7 @@ static int rt2800usb_enable_radio(struct rt2x00_dev *rt2x00dev)
>
> rt2800_register_read(rt2x00dev, USB_DMA_CFG, ®);
> rt2x00_set_field32(®, USB_DMA_CFG_PHY_CLEAR, 0);
> - /* Don't use bulk in aggregation when working with USB 1.1 */
> - rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN,
> - (rt2x00dev->rx->usb_maxpacket == 512));
> + rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN, 0);
> rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_TIMEOUT, 128);
> /*
> * Total room for RX frames in kilobytes, PBF might still exceed
Are you sure this works? I think Luis tried this 2 weeks ago and it didn't
disable the aggregation... (Luis, please confirm that this was indeed the change you made...)
Ivo
On Tue, Dec 1, 2009 at 19:17, Ivo van Doorn <[email protected]> wrote:
> On Monday 30 November 2009, Benoit Papillault wrote:
>> From: Benoit PAPILLAULT <[email protected]>
>>
>> RX aggregation is a way to receive multiple 802.11 frames in one RX buffer.
>> However, we don't know yet how to handle this case in rt2800usb_fill_rxdone
>> and this has probably no impact on RX performance as well, so we disable it
>>
>> Signed-off-by: Benoit Papillault <[email protected]>
>> ---
>> ?drivers/net/wireless/rt2x00/rt2800usb.c | ? ?4 +---
>> ?1 files changed, 1 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
>> index af85d18..ed31763 100644
>> --- a/drivers/net/wireless/rt2x00/rt2800usb.c
>> +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
>> @@ -295,9 +295,7 @@ static int rt2800usb_enable_radio(struct rt2x00_dev *rt2x00dev)
>>
>> ? ? ? rt2800_register_read(rt2x00dev, USB_DMA_CFG, ®);
>> ? ? ? rt2x00_set_field32(®, USB_DMA_CFG_PHY_CLEAR, 0);
>> - ? ? /* Don't use bulk in aggregation when working with USB 1.1 */
>> - ? ? rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN,
>> - ? ? ? ? ? ? ? ? ? ? ? ?(rt2x00dev->rx->usb_maxpacket == 512));
>> + ? ? rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN, 0);
>> ? ? ? rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_TIMEOUT, 128);
>> ? ? ? /*
>> ? ? ? ?* Total room for RX frames in kilobytes, PBF might still exceed
>
>
> Are you sure this works? I think Luis tried this 2 weeks ago and it didn't
> disable the aggregation... (Luis, please confirm that this was indeed the change you made...)
Yes, it was one of the changes I made.
However, I wouldn't say that it didn't disable aggregation, it just
didn't fix the problem I was pursuing (receiving 11n beacon frames).
So I guess that for now, we could just go with it disabled and try
later on to enable it when the driver is more useable.
Luis Correia
Luis Correia a ?crit :
> On Tue, Dec 1, 2009 at 19:17, Ivo van Doorn <[email protected]> wrote:
>> On Monday 30 November 2009, Benoit Papillault wrote:
>>> From: Benoit PAPILLAULT <[email protected]>
>>>
>>> RX aggregation is a way to receive multiple 802.11 frames in one RX buffer.
>>> However, we don't know yet how to handle this case in rt2800usb_fill_rxdone
>>> and this has probably no impact on RX performance as well, so we disable it
>>>
>>> Signed-off-by: Benoit Papillault <[email protected]>
>>> ---
>>> drivers/net/wireless/rt2x00/rt2800usb.c | 4 +---
>>> 1 files changed, 1 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
>>> index af85d18..ed31763 100644
>>> --- a/drivers/net/wireless/rt2x00/rt2800usb.c
>>> +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
>>> @@ -295,9 +295,7 @@ static int rt2800usb_enable_radio(struct rt2x00_dev *rt2x00dev)
>>>
>>> rt2800_register_read(rt2x00dev, USB_DMA_CFG, ®);
>>> rt2x00_set_field32(®, USB_DMA_CFG_PHY_CLEAR, 0);
>>> - /* Don't use bulk in aggregation when working with USB 1.1 */
>>> - rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN,
>>> - (rt2x00dev->rx->usb_maxpacket == 512));
>>> + rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN, 0);
>>> rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_TIMEOUT, 128);
>>> /*
>>> * Total room for RX frames in kilobytes, PBF might still exceed
>>
>> Are you sure this works? I think Luis tried this 2 weeks ago and it didn't
>> disable the aggregation... (Luis, please confirm that this was indeed the change you made...)
>
> Yes, it was one of the changes I made.
>
> However, I wouldn't say that it didn't disable aggregation, it just
> didn't fix the problem I was pursuing (receiving 11n beacon frames).
>
> So I guess that for now, we could just go with it disabled and try
> later on to enable it when the driver is more useable.
>
> Luis Correia
>
Without this patch, the driver is receiving several 802.11 frames inside
the same buffer and only one is sent to mac80211, so this patch is a
quick fix for that issue.
Regards,
Benoit