Re: [PATCH RFT/RFC] b43: Add QOS support

2008-02-13 Thread Johannes Berg

 Hm, it seems there are two other variables in SHM we should probably write:
  0x000E  EDCF Status Offset

I'll have to double-check that.

  0x0030  TXF Current Index

I don't think we need to write that, it's used internally by the ucode
to manage the queues.

johannes


signature.asc
Description: This is a digitally signed message part
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH RFT/RFC] b43: Add QOS support

2008-02-13 Thread Michael Buesch
On Wednesday 13 February 2008 13:07:53 Johannes Berg wrote:
 
  +   if (queue = ARRAY_SIZE(wl-qos_params)) {
  +   /* Queue not available or don't support setting
  +* params on this queue. Return success to not
  +* confuse mac80211. */
  +   return 0;
  +   }
 
 Is that really necessary? If so, I'll probably remove it when doing the
 QoS rework, it shouldn't be, imho you should return an error if mac80211
 tries to configure a queue = hw.queues.

Yep, mac80211 walks the whole queue array without looking at hw-queues.
I think this needs fixing in mac80211.

-- 
Greetings Michael.
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH RFT/RFC] b43: Add QOS support

2008-02-13 Thread Johannes Berg

On Wed, 2008-02-13 at 13:14 +0100, Michael Buesch wrote:
 On Wednesday 13 February 2008 13:07:53 Johannes Berg wrote:
  
   + if (queue = ARRAY_SIZE(wl-qos_params)) {
   + /* Queue not available or don't support setting
   +  * params on this queue. Return success to not
   +  * confuse mac80211. */
   + return 0;
   + }
  
  Is that really necessary? If so, I'll probably remove it when doing the
  QoS rework, it shouldn't be, imho you should return an error if mac80211
  tries to configure a queue = hw.queues.
 
 Yep, mac80211 walks the whole queue array without looking at hw-queues.
 I think this needs fixing in mac80211.

Ah. Yeah I already fixed that in my WIP QoS patch.

johannes


signature.asc
Description: This is a digitally signed message part
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH RFT/RFC] b43: Add QOS support

2008-02-13 Thread Johannes Berg

 Hm, it seems there are two other variables in SHM we should probably write:
  0x000E  EDCF Status Offset

Ok already mentioned this on IRC but for the record: this is set by the
initial value upload.

johannes


signature.asc
Description: This is a digitally signed message part
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH RFT/RFC] b43: Add QOS support

2008-02-12 Thread Michael Buesch
On Tuesday 12 February 2008 22:05:42 Michael Buesch wrote:
 This patch adds QOS support for b43.
 Please comment on this and test this.
 This patch depends on Johannes' burst time - txop patch being _not_ 
 applied.
 One can trivially fix that, though.

Hm, it seems there are two other variables in SHM we should probably write:
 0x000E  EDCF Status Offset
 0x0030  TXF Current Index

The status offset is the offset of the status field in the QOS data structure
for a queue?
What is the TXF Current Index?

-- 
Greetings Michael.
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [PATCH RFT/RFC] b43: Add QOS support

2008-02-12 Thread Michael Buesch
On Tuesday 12 February 2008 22:05:42 Michael Buesch wrote:
 This patch adds QOS support for b43.
 Please comment on this and test this.
 This patch depends on Johannes' burst time - txop patch being _not_ 
 applied.
 One can trivially fix that, though.
 + for (i = 0; i  ARRAY_SIZE(wl-qos_params); i++) {
 + params = (wl-qos_params[i]);
 + if (params-need_hw_update) {
 + b43_qos_params_upload(dev, (params-p),
 +   qos_shm_offsets[i]);
 + params-need_hw_update = 1;

Whoopsy, needs to be:
params-need_hw_update = 0;

 + }
 + }
 +
 + spin_unlock_irqrestore(wl-irq_lock, flags);
 + b43_mac_enable(dev);
 +}

 +/* Initialize the core's QOS capabilities */
 +static void b43_qos_init(struct b43_wldev *dev)
 +{
 + /* Upload the current QOS parameters. */

And here we need a loop setting all need_hw_update to 1.

 + b43_qos_update(dev);
 + /* Enable QOS support. */
 + b43_hf_write(dev, b43_hf_read(dev) | B43_HF_EDCF);
 + b43_write16(dev, B43_MMIO_IFSCTL,
 + b43_read16(dev, B43_MMIO_IFSCTL)
 + | B43_MMIO_IFSCTL_USE_EDCF);
 +}

-- 
Greetings Michael.
___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev