On Sat, 30 Dec 2023 04:51:51 +0000 Rahul Rameshbabu <sergeantsagara@xxxxxxxxxxxxxx> wrote: > bcm4331 appears to lack QoS support. I think that's rather unlikely. The firmware probably is just too old for this device. > +static const u16 b43_no_qos_chip_ids[] = { > + BCMA_CHIP_ID_BCM4331, > + 0, > +}; > + > +static bool b43_qos_not_supported(struct b43_wldev *dev) > +{ > + int idx; > + > + for (idx = 0; b43_no_qos_chip_ids[idx]; idx++) > + if (dev->dev->chip_id == b43_no_qos_chip_ids[idx]) > + return true; > + > + return false; > +} > + > static void b43_wireless_core_exit(struct b43_wldev *dev); > static int b43_wireless_core_init(struct b43_wldev *dev); > static struct b43_wldev * b43_wireless_core_stop(struct b43_wldev *dev); > @@ -2587,7 +2603,7 @@ static void b43_request_firmware(struct work_struct *work) > > start_ieee80211: > wl->hw->queues = B43_QOS_QUEUE_NUM; > - if (!modparam_qos || dev->fw.opensource) > + if (!modparam_qos || dev->fw.opensource || b43_qos_not_supported(wl->current_dev)) This looks a bit over-engineered to me. Can we just instead do it like this, please? if (!modparam_qos || dev->fw.opensource || dev->dev->chip_id == BCMA_CHIP_ID_BCM4331) > wl->hw->queues = 1; > > err = ieee80211_register_hw(wl->hw); -- Michael Büsch https://bues.ch/
Attachment:
pgpcwwACpvt0D.pgp
Description: OpenPGP digital signature