Commit Graph

169 Commits

Author SHA1 Message Date
chao.an
9a4f494da2 wireless/bcm43xxx: fix memory leak if tx fail
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 21:33:16 +08:00
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
96192eac55 wireless/bcm43xxx: filter out the bssi with same ssid name
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 19:39:23 +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
5ce7b35020 wireless/bcm43xxx: replace private queue implement to list_node
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
752e48eb34 wireless/bcm43xxx: remove flowctrl check
remove flowctrl check since credit is enough to check flow control status

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 17:34:56 +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
bd713d6431 wireless/bcm43xxx: country code should terminating with null
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-02 14:13:21 +08:00
chao.an
bc6b3f34c8 wireless/bcm43xxx: enable tx flow control to improve performance
RX/TX shared free queue on bcmf implementation, if TX occupies the
free queue completely, RX will trigger read abort because it cannot
alloc buffer successfully from the shared free queue. This commit will
limit the sending entries of tx and prevent rx triggering abort

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-29 09:06:57 +03:00
chao.an
b5e9409880 Revert "wireless/bcm43xxx: remove unused tx_queue_count"
This reverts commit c3b84b9b3b.

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-29 09:06:57 +03:00
chao.an
c3b84b9b3b wireless/bcm43xxx: remove unused tx_queue_count
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-26 16:06:20 +08:00
chao.an
43497df78b wireless/bcm43xxx: add dynamic kso control support
1. PMU control by KeepSdioOn(KSO) if firmware support save restore
2. Remove watchdog timer

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-25 19:52:13 +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
2772efc862 wireless/bcm43xxx: remove small chunks to improve clm download speed
Chunk length is fine as long as it does not exceed 1400

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-19 23:12:10 +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
47ebec34e3 wireless/bcm43xxx: merge frame send to once to improve the performance
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-19 20:59:50 +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
0ec74ec6dd wireless/bcm43xxx: remove global variable for bcmf_sdio_thread
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-19 11:43:25 +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
e498e5308a wireless/bcm43xxx: handle disassoc correctly
1. use WLC_DISASSOC to deal disconnect event
2. carrier net device status

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-18 19:43:13 +08:00
chao.an
e6a23e7b8a wireless/bcm43xxx: sort scan result by rssi
1. Replace SCAN_RESULT_SIZE to SCAN_RESULT_ENTRIES
2. filter scan result with better rssi
3. Sort scan result by rssi

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-18 19:42:30 +08:00
Xiang Xiao
0de089e2e8 wireless/bcm43xxx: Don't call bcmf_board_setup_oob_irq in bcmf_sdio_thread
since oob irq is already setup in bcmf_bus_setup_interrupts, it waste
time and energy to do the same thing repeatly in the work thread.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-06-17 20:12:41 +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
9c68064024 wireless/bcm43xxx: add status print on bcmf_wl_auth_event_handler()
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-17 16:17:01 +08:00
chao.an
e2c154dffe wireless/bcm43xxx: configurable buffer size of escan result
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-16 23:36:40 +08:00
chao.an
29dd12283c wireless/bcm43xxx: replace all busy delay to nxsig_usleep
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-16 23:02:09 +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
chao.an
6d85e9b320 wireless/bcm43xx: replace sem_wait to uninterruptible version
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-16 02:44:47 +08:00
chao.an
0951d859d3 wireless/bcm43xxx: configurable schedule priority of daemon thread
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-16 01:41:50 +08:00
chao.an
4712307ecc wireless/bcm43xxx: fix typo sq_init() -> dq_init()
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-16 01:40:41 +08:00
chao.an
e75c88df5b wireless/bcm43xxx: load nvram from file system
added an option to load nvram from file system, which will help developers
easily to tuning the firmware parameters without compile firmware.

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-15 22:19:02 +08:00
chao.an
f6b8cc1407 wireless/bcm430xx: rename chip minor id to 'x'
rename 4301x chip minor id to 'x' to compatible more versions of variant of bcm430xx

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-15 02:01:37 +08:00
chao.an
4659e00fac wireless/bcm43xxx: add extended join parameters
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-15 00:56:31 +08:00
chao.an
28b46bd381 wirless/sdio: frame length should with guard bound
some SDIO device will return the larger frames out of bound

error log:
bcmf_sdpcm_readframe: Frame is too large, cancel 1544 1536
bcmf_sdpcm_readframe: Frame is too large, cancel 1544 1536
bcmf_sdpcm_readframe: Frame is too large, cancel 1544 1536

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-14 18:31:22 +03:00
chao.an
c7fd1a113f wireless/bcm43xxx: add support of bcm43013 chip
Reference:
https://www.broadcom.cn/bcm43013

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-13 21:03:05 +08:00
Xiang Xiao
f1236da21c fs: Make the binary(no process) mode as the default
POSIX require file system shouldn't enable the \r and \n conversion by default
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-06-07 20:22:26 +03:00
zhanghongyu
035d925864 devif: remove all devif_timer
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2022-06-02 20:11:50 -03:00
Xiang Xiao
816ce73ab4 Replace nxsem_timedwait with nxsem_tickwait
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-05-15 13:55:58 +03:00
Petro Karashchenko
68902d8732 pid_t: unify usage of special task IDs
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-03-22 21:22:32 +08:00
Alexander Lunev
a597e66070 bcm43xxx: fixed several warnings:
warning: ISO C forbids 'return' with expression, in function returning void [-Wpedantic]
warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'uint8_t * {aka unsigned char *}' [-Wformat=]
warning: too many arguments for format [-Wformat-extra-args]
2022-02-04 15:26:42 -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
Petro Karashchenko
8d3bf05fd2 include: fix double include pre-processor guards
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-16 11:11:14 -03:00
Xiang Xiao
828f04f0e5 sdio: Move sdio utils functions to drivers/mmcsd
so all sdio client driver can reuse them

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-01-04 17:44:24 +01:00
Alexander Lunev
76bb5f5a61 bcm43xxx: supported ARM CR4 core and bcm43455 chip in particular 2021-12-30 01:33:13 +08:00