Commit Graph

31 Commits

Author SHA1 Message Date
chao.an
f424bb32aa wireless/bcm43xxx: only break out the send loop if no data
only break out the continuous send if IP stack has no data to send to avoid
tx being constantly interrupted by RX

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 19:39:49 +08:00
chao.an
ba3e859aa5 wireless/bcm43xxx: allocate tx frame with nonblock mode
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 19:24:34 +08:00
chao.an
14f1519d1e wireless/bcm43xxx: discard auth event if netdev down
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 17:39:52 +08:00
chao.an
fe2231989b wireless/bcm43xxx: mac address does not need to be updated in ifup
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 16:14:54 +08:00
chao.an
2eb1124db5 wireless/bcm43xxx: correct the return value
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-25 16:45:34 +08:00
chao.an
15864ff109 wireless/bcm43xxx: add get country code support
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-23 21:48:08 +08:00
chao.an
442e75575e wireless/bcm43xxx: add set country code support
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-23 00:08:10 +08:00
chao.an
04fcbb5cb8 wireless/bcm43xxx: add auto power saving support
switch firmware power mode between PM_MAX/PM_FAST

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-21 02:33:18 +08:00
chao.an
2e3ed3ae67 wireless/bcm43xxx: prefer HPWORK if bcmf task has higher priority than HPWORK
Use high priority queue if the bcmf daemon task has a higher priority
than HPWORK, which will bring better performance especially on devices
that focus on real-time of network.

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-19 23:11:52 +08:00
chao.an
fa6ea23101 wireless/bcm43xxx: enable power saving on netdev up/down
Move sdio/firmware de/initialize to ifup/down

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-19 19:08:00 +08:00
chao.an
fbddae8813 wireless/bcm43xxx: add customized MAC address support
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-19 10:13:23 +08:00
chao.an
2992b10fbb wireless/bcm43xxx: add more ioctl command support
Support command:
  SIOCGIWFREQ
  SIOCGIWMODE
  SIOCSIWAP
  SIOCGIWAP
  SIOCGIWESSID
  SIOCGIWRATE
  SIOCGIWTXPOW
  SIOCGIWSENS
  SIOCGIWRANGE

Before:                                    After:
 cp> wapi show wlan0                          cp> wapi show wlan0
 wlan0 Configuration:                         wlan0 Configuration:
        IP: 192.168.31.202                           IP: 192.168.31.202
   NetMask: 255.255.255.0                       NetMask: 255.255.255.0
 ioctl(SIOCGIWFREQ): 88                       Frequency: 5785
 ERROR: wapi_get_freq() failed: -88                Flag: WAPI_FREQ_AUTO
 ioctl(SIOCGIWESSID): 88                        Channel: 157
 ERROR: wapi_get_essid() failed: -88          Frequency: 5785
 ioctl(SIOCGIWMODE): 88                           ESSID: archer5
 ERROR: wapi_get_mode() failed: -88                Flag: WAPI_ESSID_ON
 ioctl(SIOCGIWAP): 88                              Mode: WAPI_MODE_MANAGED
 ERROR: wapi_get_ap() failed: -88                    AP: ec:41:18:e0:76:7f
 ioctl(SIOCGIWRATE): 88                         BitRate: 58500
 ERROR: wapi_get_bitrate() failed: -88             Flag: WAPI_BITRATE_FIXED
 ioctl(SIOCGIWTXPOW): 88                        TxPower: 31
 ERROR: wapi_get_txpower() failed: -88             Flag: WAPI_TXPOWER_DBM
 ioctl(SIOCGIWSENS): 25                           Sense: -17

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-17 18:27:12 +08:00
chao.an
b33a709213 wireless/bcm43xxx: improve throughput of net driver
1. Wake up tx if there is data alreay to sent after rx update
2. Try tx queue again after every data frame sent

iperf test:

```
TCP RX  4M->16M
⁣TCP TX  2M->14M
⁣UDP RX 18M->26M
UDP TX  2M->18M
```

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-16 21:08:28 +09:00
Xiang Xiao
f75f100954 bcm43xxx: Remove bcmf_txavail_work and resue bcmf_tx_poll_work
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-06-16 09:13:16 +03:00
zhanghongyu
035d925864 devif: remove all devif_timer
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2022-06-02 20:11:50 -03:00
Petro Karashchenko
08043fb5bc net: unify FAR keyword usage for all net buffer memory mapped buffers
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-20 01:42:56 +08:00
Petro Karashchenko
9551de7115 net: use HTONS, NTOHS, HTONL, NTOHL macro in kernel code
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-18 10:59:47 +01:00
Alexander Lunev
df40531a07 bcm43xxx: fixed an issue with wrong devif_timer() invocations
on bcmf_netdev_notify_tx_done events
that provoked massive TCP spurious retransmissions;

bcm43xxx: fixed an issue with sporadic stalls of TX poll timer.
2021-10-03 17:36:09 -03:00
Alin Jerpelea
08e5378b11 NuttX: Gregory Nutt: update licenses to Apache
Several licenses were missed in the initial work

David Sidrane has submitted the ICLA and we can migrate the licenses
 to Apache.

Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-04-03 04:20:31 -07:00
Gustavo Henrique Nihei
330eff36d7 sourcefiles: Fix relative path in file header 2021-03-09 23:18:28 +08:00
chao.an
84daee1f76 drivers/netdev: try tcp timer in every txavail call
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-12-18 14:16:11 +09:00
YAMAMOTO Takashi
5a57f10b9c drivers/wireless/ieee80211/bcm43xxx/bcmf_netdev.c: Fix a syslog format 2020-12-05 08:13:32 -06:00
Xiang Xiao
acca9fcc3b sched/wdog: Remove MAX_WDOGPARMS and related stuff
since the variable arguments are error prone and seldom used.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-14 08:19:50 -06:00
Xiang Xiao
a0ce81d659 sched/wdog: Don't dynamically allocate wdog_s
to save the preserved space(1KB) and also avoid the heap overhead

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025
2020-08-11 12:28:55 -06:00
Xiang Xiao
f618de9c97 Fix nxstyle warning
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-08 17:30:26 -03:00
Xiang Xiao
4c706771c3 sched/wdog: Replace all callback argument from uint32_t to wdparm_t
and alwasy cast the argument of wd_start to wdparm_t

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-08 17:30:26 -03:00
Juha Niskanen
f3490e42c3 Fix typos in comments 2020-03-03 09:11:57 -06:00
Xiang Xiao
926a41feba bcm43xxx: correct typo error to fix build break in photon board (#45)
Change-Id: I340b8d6d939b5049d25789d04c4a334bc97b1067
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-01-07 07:12:08 -03:00
Xiang Xiao
6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
Xiang Xiao
87cf5c58ae Correct some problems with network timed events when there are multiple network devices in the configuration.
Squashed commit of the following:

Author: Gregory Nutt <gnutt@nuttx.org>

    Ran nxstyle against many of the affected files.  But this job was too big for today.  Many of the network drivers under arch are highly non-compiant and generate many, many faults from nxstyle.  Those will have to be visited again another day.

Author: Xiang Xiao <xiaoxiang@xiaomi.com>

    This effects all network drivers as well as timing related portions of net/: devif_poll_tcp_timer shouldn't be skipped in the multiple card case.  devif_timer will be called multiple time in one period if the multiple card exist, the elapsed time calculated for the first callback is right, but the flowing callback in the same period is wrong(very short) because the global variable g_polltimer is used in the calculation.  So let's pass the delay time to devif_timer and remove g_polltimer.
2019-12-24 10:37:30 -06:00
Xiang Xiao
3a32937b9b drivers/wireless/ieee80211/bcm43xxx: Move drivers/wireless/ieee80211/ to drivers/wireless/ieee80211/bcm43xxx/
since the directory only contains only BCM43362 and BCM43438 related code.
2019-11-05 15:38:01 -06:00