[PATCH] staging: rtl8192u: replace printk with natdev_ statements in ieee80211

2020-01-15 Thread Paulo Miguel Almeida
Checkpatch reports 'WARNING: printk() should include KERN_ facility level'. Fix this by specifying a relevant KERN_ value for each line in which it was missing. Once they are fixed, checkpatch reports 'WARNING: Prefer [subsystem eg: netdev]_dbg([subsystem]dev, ... then dev_dbg(dev, ... then

[PATCH 01/65] staging: wfx: revert unexpected change in debugfs output

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It appears that commit 8c7128c4cf4e ("staging: align to fix warnings of line over 80 characters") do slightly more than what is explained in commit log. Especially, it changes the output of the file rx_stats from debugfs. From some point of view, this file can be

[PATCH 23/65] staging: wfx: drop wvif->enable_beacon

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It seems that current code try to save calls to hif_beacon_transmit() by keeping a copy of the previous value of bss_conf->enable_beacon. However, hif_beacon_transmit() does not cost so much and mac80211 already take care to not send useless events. Signed-off-by: Jérôme

[PATCH 00/65] Simplify and improve the wfx driver

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Hello all, This pull request is finally bigger than I expected, sorry. It contains 2 main topics: - Simplify handling of stations in power save mode. Most of the work was redundant with mac80211. I have saved plenty of lines of code by using the mac80211 API

[PATCH 56/65] staging: wfx: simplify wfx_suspend_resume_mc()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Indeed, it is not necessary to pass whole hif_ind_suspend_resume_tx to wfx_suspend_resume_mc(). In add, the structure hif_ind_suspend_resume_tx come from hardware API. It is not intended to be manipulated in upper layers of the driver. Signed-off-by: Jérôme Pouiller ---

[PATCH 35/65] staging: wfx: simplify hif_set_mac_addr_condition()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_mac_addr_data_frame_condition come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_mac_addr_condition() is too dumb. It should pack data with hardware representation instead of

[PATCH 30/65] staging: wfx: simplify hif_set_association_mode()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_set_association_mode come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_association_mode() is too dumb. It should pack data with hardware representation instead of leaving all

[PATCH 32/65] staging: wfx: simplify hif_mib_uc_mc_bc_data_frame_condition

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The current API defines bitfields. It is not very convenient. Prefer to use bitmasks. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_mib.h | 14 -- drivers/staging/wfx/hif_tx_mib.h | 9 +++-- drivers/staging/wfx/sta.c | 4 ++--

[PATCH 34/65] staging: wfx: simplify hif_set_data_filtering()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_set_data_filtering come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_data_filtering() is too dumb. It should pack data with hardware representation instead of leaving all work

[PATCH 36/65] staging: wfx: simplify hif_set_config_data_filter()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_config_data_filter come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_config_data_filter() is too dumb. It should pack data with hardware representation instead of leaving all

[PATCH 31/65] staging: wfx: simplify hif_set_uc_mc_bc_condition()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_uc_mc_bc_data_frame_condition come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_uc_mc_bc_condition() is too dumb. It should pack data with hardware representation instead of

[PATCH 14/65] staging: wfx: drop wdev->output_power

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller mac80211 and the device are both able to control tx power per vif. But, the current code retrieve tx power from wfx_config(). So, it does not allow to setup the tx power independently for each vif. Driver just has to rely on bss_conf->txpower to get the correct information.

[PATCH 05/65] staging: wfx: simplify hif_set_tx_rate_retry_policy() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_set_tx_rate_retry_policy come from hardware API. It is not intended to be manipulated in upper layers of the driver. So, this patch relocate handling of this structure to hif_set_tx_rate_retry_policy() (the low level function). Signed-off-by: Jérôme

[PATCH 06/65] staging: wfx: simplify hif_set_output_power() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Hardware API use 10th of dBm for output power unit. Upper layers should use same units than mac80211 and the conversion should be done by low level layer of the driver (hif_set_output_power()) In add, current code of hif_set_output_power() use a __le32 while the device API

[PATCH 07/65] staging: wfx: simplify hif_set_rcpi_rssi_threshold() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_rcpi_rssi_threshold come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_rcpi_rssi_threshold() is dumb. It should pack data using the hardware representation instead of leaving

[PATCH 17/65] staging: wfx: simplify wfx_upload_ap_templates()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller This function built probe response from data retrieved in beacon. Yet, this job can be done with ieee80211_proberesp_get(). So, we can simplify that code (and fix bugs like inclusion of TIM in probe responses). Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c

[PATCH 29/65] staging: wfx: simplify hif_join()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_req_join come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_join() is too dumb. It should pack data with hardware representation instead of leaving all work to the caller.

[PATCH 15/65] staging: wfx: simplify wfx_config()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Now that wfx_config() only handles IEEE80211_CONF_CHANGE_PS, it can be simplified. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 13 ++--- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wfx/sta.c

[PATCH 57/65] staging: wfx: simplify handling of IEEE80211_TX_CTL_SEND_AFTER_DTIM

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller When mac80211 ask for a frame to be sent after a DTIM, driver should: 1. Update TIM with multicast bit set (using update_ie). This function can be called whenever. 2. Keep buffered all frames marked "after dtim" 3. When it receive a suspend_resume indication (see

[PATCH 38/65] staging: wfx: simplify wfx_update_filtering()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_update_filtering() has no reason to instantiate a struct hif_mib_bcn_filter_enable. Drop it and simplify the code. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 31 +-- 1 file changed, 13 insertions(+), 18 deletions(-)

[PATCH 37/65] staging: wfx: simplify wfx_set_mcast_filter()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller HIF functions return only serious errors (OOM or device freeze). The current handling of errors in wfx_set_mcast_filter() does not bring anything. Finally it may disturb the developer more than it helps. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 30

[PATCH 43/65] staging: wfx: fix case where RTS threshold is 0

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller If RTS threshold is 0, it currently disables RTS. It should mean "enabled for every frames". Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx_mib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wfx/hif_tx_mib.h

[PATCH 44/65] staging: wfx: fix possible overflow on jiffies comparaison

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is recommended to use function time_*() to compare jiffies. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c | 14 +- 1 file changed, 5

[PATCH 64/65] staging: wfx: simplify hif_multi_tx_confirm()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Usage of the "buf_loc" variable does not simplify the function. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_rx.c | 11 +++ 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wfx/hif_rx.c b/drivers/staging/wfx/hif_rx.c

[PATCH 65/65] staging: wfx: update TODO

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Some work has been done :) Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/TODO | 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/staging/wfx/TODO b/drivers/staging/wfx/TODO index 6b1cdd24afc9..efcb7c6a5aa7 100644 ---

[PATCH 45/65] staging: wfx: remove handling of "early_data"

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It seems that purpose of "early_data" was to prevent sending data to mac80211 before station was completely associated. It is a useless precaution. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_rx.c | 17 + drivers/staging/wfx/data_tx.c | 3

[PATCH 63/65] staging: wfx: simplify wfx_tx_queue_get_num_queued()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_tx_queue_get_num_queued() can take advantage of BIT() instead of maintaining one variable for a counter and another for a mask. In add, wfx_tx_queue_get_num_queued() has no real reason to return a size_t instead of an int. Signed-off-by: Jérôme Pouiller ---

[PATCH 53/65] staging: wfx: pspoll_mask make no sense

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller pspoll_mask is here to send data buffered in driver. But since station is marked buffered, TIM for this station is 1 and mac80211 will call sta_notify when a ps-poll is received. So pspoll_mask is useless and sta_alseep_mask is sufficient. Signed-off-by: Jérôme Pouiller

[PATCH v2 62/65] staging: wfx: simplify hif_handle_tx_data()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Since enum action has now only two cases, it can be dropped. Then hif_handle_tx_data() can be simplified. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 40 ++--- 1 file changed, 15 insertions(+), 25 deletions(-) diff

[PATCH v2 61/65] staging: wfx: remove check for interface state

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Obviously, the value of wvif->state as no reason to be wrong. At least, if it the case, dropping the frame is probably not the bast thing to do. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 50 + 1 file changed, 12

Re: [PATCH RFC v3 6/9] staging: most: change storage class of struct mostcore

2020-01-15 Thread Greg KH
On Tue, Jan 14, 2020 at 04:57:55PM +0100, Christian Gromm wrote: > This patch allocated the mostcore structure dynamically and releases > the memory in the dedicated release function. > > Signed-off-by: Christian Gromm > --- > v3: > This patch has been added to the series. > >

Re: [PATCH RFC v3 0/9] staging: most: move core module out of staging

2020-01-15 Thread Greg KH
On Tue, Jan 14, 2020 at 04:57:49PM +0100, Christian Gromm wrote: > The MOST driver was pushed to the staging area with kernel 4.3. Since then > it has encountered many refinements by the community and should be ready > for an upstream audit and to be moved out of the staging area. Since the >

[PATCH 18/65] staging: wfx: simplify wfx_update_beaconing()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Remove most of indentation of wfx_update_beaconing() by reworking the error handling. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 28 +++- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/drivers/staging/wfx/sta.c

[PATCH 21/65] staging: wfx: simplify update of DTIM period

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Current code parse the TIM and retrieve the DTIM period. It is far easier to rely on bss_info_changed() for this job. It is no more necessary to run task asynchronously. So set_beacon_wakeup_period_work is now useless. Signed-off-by: Jérôme Pouiller ---

[PATCH 04/65] staging: wfx: send rate policies one by one

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Rate policies (aka. tx_rate_retry_policy in hardware API) are sent to device asynchronously from tx requests. So, the device maintains a list of active rate policies and the tx requests only reference an existent rate policy. The device API allows to send multiple rate

[PATCH 08/65] staging: wfx: simplify hif_set_arp_ipv4_filter() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_arp_ip_addr_table come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_arp_ipv4_filter() is too dumb. It should pack data using the hardware representation instead of leaving all

[PATCH 28/65] staging: wfx: simplify hif_update_ie()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller hif_update_ie() is only called to change the beacon template. So, specialize this function and simplify the way to call it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx.c | 5 ++--- drivers/staging/wfx/hif_tx.h | 3 +-- drivers/staging/wfx/sta.c|

[PATCH 54/65] staging: wfx: sta and dtim

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_ps_notify() is called for any changes in the TIM. However, association ID 0 is a very special case that should be handled independently. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 33 +++-- 1 file changed, 15

[PATCH 39/65] staging: wfx: simplify wfx_scan_complete()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_scan_complete() do nothing with argument hif_ind_scan_cmpl. In add, hif_ind_scan_cmpl come from hardware API and is not expected to be used with upper layers of the driver. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_rx.c | 3 +--

[PATCH v2 13/65] staging: wfx: drop struct wfx_ht_info

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller This struct is no more used. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 18 +++--- drivers/staging/wfx/sta.h | 6 -- drivers/staging/wfx/wfx.h | 1 - 3 files changed, 3 insertions(+), 22 deletions(-) diff --git

[PATCH v2 03/65] staging: wfx: add missing PROBE_RESP_OFFLOAD feature

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Some userspace tools (hostapd) rely on probe_resp_offload fields for certain features. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/main.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c index

[PATCH v2 04/65] staging: wfx: send rate policies one by one

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Rate policies (aka. tx_rate_retry_policy in hardware API) are sent to device asynchronously from tx requests. So, the device maintains a list of active rate policies and the tx requests only reference an existent rate policy. The device API allows to send multiple rate

[PATCH v2 01/65] staging: wfx: revert unexpected change in debugfs output

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It appears that commit 8c7128c4cf4e ("staging: align to fix warnings of line over 80 characters") do slightly more than what is explained in commit log. Especially, it changes the output of the file rx_stats from debugfs. From some point of view, this file can be

[PATCH v2 00/65] Simplify and improve the wfx driver

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Hello all, This pull request is finally bigger than I expected, sorry. It contains 2 main topics: - Simplify handling of stations in power save mode. Most of the work was redundant with mac80211. I have saved plenty of lines of code by using the mac80211 API

[PATCH v2 16/65] staging: wfx: rename wfx_upload_beacon()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller In fact, wfx_upload_beacon() uploads beacon and probe response. So, rename it in wfx_upload_ap_templates(). The call to wfx_fwd_probe_req() has nothing to do with template uploading, so relocate it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 6 +++---

[PATCH v2 12/65] staging: wfx: retrieve greenfield mode from sta->ht_cap and bss_conf

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wvif->ht_info contains useless copies of sta->ht_cap and bss_conf->ht_operation_mode. Prefer to retrieve information from the original structs instead of rely on wvif->ht_info. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 18 ++ 1 file

[PATCH v2 26/65] staging: wfx: drop wfx_set_cts_work()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_bss_info_changed() is not called from atomic contexts. So, it is not necessary to raise an asynchronous work to change ERP. Thus wfx_set_cts_work() become useless. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 40

[PATCH v2 11/65] staging: wfx: retrieve ampdu_density from sta->ht_cap

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wvif->ht_info.ht_cap is a useless copy of sta->ht_cap. It makes no sense to rely on it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 10 ++ 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wfx/sta.c

[PATCH v2 23/65] staging: wfx: drop wvif->enable_beacon

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It seems that current code try to save calls to hif_beacon_transmit() by keeping a copy of the previous value of bss_conf->enable_beacon. However, hif_beacon_transmit() does not cost so much and mac80211 already take care to not send useless events. Signed-off-by: Jérôme

[PATCH v2 29/65] staging: wfx: simplify hif_join()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_req_join come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_join() is too dumb. It should pack data with hardware representation instead of leaving all work to the caller.

[PATCH v2 34/65] staging: wfx: simplify hif_set_data_filtering()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_set_data_filtering come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_data_filtering() is too dumb. It should pack data with hardware representation instead of leaving all work

[PATCH v2 30/65] staging: wfx: simplify hif_set_association_mode()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_set_association_mode come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_association_mode() is too dumb. It should pack data with hardware representation instead of leaving all

[PATCH v2 10/65] staging: wfx: use specialized structs for HIF arguments

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Most of the commands that are sent to device should take struct in argument. In the current code, when this struct is binary compatible with a __le32, the driver use a __le32. This behavior is error prone. This patch fixes that and uses the specialized structs instead.

[PATCH v2 06/65] staging: wfx: simplify hif_set_output_power() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Hardware API use 10th of dBm for output power unit. Upper layers should use same units than mac80211 and the conversion should be done by low level layer of the driver (hif_set_output_power()) In add, current code of hif_set_output_power() use a __le32 while the device API

[PATCH v2 17/65] staging: wfx: simplify wfx_upload_ap_templates()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller This function built probe response from data retrieved in beacon. Yet, this job can be done with ieee80211_proberesp_get(). So, we can simplify that code (and fix bugs like inclusion of TIM in probe responses). Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c

[PATCH v2 31/65] staging: wfx: simplify hif_set_uc_mc_bc_condition()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_uc_mc_bc_data_frame_condition come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_uc_mc_bc_condition() is too dumb. It should pack data with hardware representation instead of

[PATCH v2 20/65] staging: wfx: simplify wfx_flush()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Current code of wfx_flush() force to drop packets in some contexts. However, there is no obvious reasons to do that. It looks like a workaround for a bug with the old implementation of __wfx_flush(). Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 12

[PATCH v2 24/65] staging: wfx: drop wvif->cqm_rssi_thold

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Current code keeps a copy of bss_conf->cqm_rssi_thold in wfx_vif. There is no sane reason for that. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 6 ++ drivers/staging/wfx/wfx.h | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git

[PATCH v2 02/65] staging: wfx: make hif_scan() usage clearer

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller hif_scan() return max number of jiffies to wait before the completion indication. However, if this value is negative, an error has occurred. Reword the code to reflect that behavior. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/scan.c | 7 +++ 1 file

[PATCH v2 07/65] staging: wfx: simplify hif_set_rcpi_rssi_threshold() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_rcpi_rssi_threshold come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_rcpi_rssi_threshold() is dumb. It should pack data using the hardware representation instead of leaving

[PATCH v2 08/65] staging: wfx: simplify hif_set_arp_ipv4_filter() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_mib_arp_ip_addr_table come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_set_arp_ipv4_filter() is too dumb. It should pack data using the hardware representation instead of leaving all

[PATCH v2 19/65] staging: wfx: fix __wfx_flush() when drop == false

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_tx_queues_clear() only clear not yet sent requests. So, it always necessary to wait for tx_queue_stats.wait_link_id_empty whatever the value of "drop" argument. In add, it is not necessary to return with tx queue locked since all calls to __wfx_flush() unlock the tx

[PATCH v2 27/65] staging: wfx: SSID should be provided to hif_start() even if hidden

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller SSID is hidden in beacon but firmware has to know to which probe requests it has to answer. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wfx/hif_tx.c

[PATCH v2 25/65] staging: wfx: drop wvif->setbssparams_done

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller setbssparams_done was here to ensure that the firmware does not enable powersave before to get the first beacon. However, mac80211 already ensures it gets a beacon before to associate to the BSS. And even, if it won't, the firmware wake up at least on every DTIM, which is

[PATCH v2 15/65] staging: wfx: simplify wfx_config()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Now that wfx_config() only handles IEEE80211_CONF_CHANGE_PS, it can be simplified. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 13 ++--- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/staging/wfx/sta.c

[PATCH v2 09/65] staging: wfx: simplify hif_start() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_req_start come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_start() is too dumb. It should pack data with hardware representation instead of leaving all work to the caller.

[PATCH v2 18/65] staging: wfx: simplify wfx_update_beaconing()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Remove most of indentation of wfx_update_beaconing() by reworking the error handling. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 28 +++- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/drivers/staging/wfx/sta.c

[PATCH v2 28/65] staging: wfx: simplify hif_update_ie()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller hif_update_ie() is only called to change the beacon template. So, specialize this function and simplify the way to call it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx.c | 5 ++--- drivers/staging/wfx/hif_tx.h | 3 +-- drivers/staging/wfx/sta.c|

[PATCH v2 21/65] staging: wfx: simplify update of DTIM period

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Current code parse the TIM and retrieve the DTIM period. It is far easier to rely on bss_info_changed() for this job. It is no more necessary to run task asynchronously. So set_beacon_wakeup_period_work is now useless. Signed-off-by: Jérôme Pouiller ---

[PATCH v2 14/65] staging: wfx: drop wdev->output_power

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller mac80211 and the device are both able to control tx power per vif. But, the current code retrieve tx power from wfx_config(). So, it does not allow to setup the tx power independently for each vif. Driver just has to rely on bss_conf->txpower to get the correct information.

[PATCH v2 22/65] staging: wfx: drop wvif->dtim_period

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It is not necessary to keep a copy of dtim_period in wfx_vif. Prefer to just rely on bss_conf->dtim_period. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 20 drivers/staging/wfx/wfx.h | 1 - 2 files changed, 4 insertions(+), 17

Re: [PATCH RFC v3 5/9] staging: most: usb: check for NULL device

2020-01-15 Thread Greg KH
On Tue, Jan 14, 2020 at 04:57:54PM +0100, Christian Gromm wrote: > Check if the dci structer has been allocated before trying to release it. > > Signed-off-by: Christian Gromm > --- > v3: > This patch has been added to the series. > > drivers/staging/most/usb/usb.c | 6 -- > 1 file

[PATCH 60/65] staging: wfx: remove unused do_probe

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The identifier do_probe is unused since "staging: wfx: remove workaround to send probe requests" Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/wfx/queue.c b/drivers/staging/wfx/queue.c

[PATCH 33/65] staging: wfx: simplify hif_mib_set_data_filtering

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The field "default_filter" was not obvious. In add, explicitly declare that fields default_filter and enable are booleans. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_mib.h | 8 +--- drivers/staging/wfx/sta.c | 3 +-- 2 files changed, 6

[PATCH 51/65] staging: wfx: check that no tx is pending before release sta

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Just for sanity. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/staging/wfx/sta.c b/drivers/staging/wfx/sta.c index 84853aa90f4b..eebbd3292b1b 100644 --- a/drivers/staging/wfx/sta.c +++

[PATCH 41/65] staging: wfx: with multiple vifs, force PS only if channels differs

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller When multiple vif are in use (the only supported configuration is one station and one AP), the driver force power save flag on station. This behavior allows the station to leave the station channel and make its business on AP channel. However, this has a big impact on

[PATCH 49/65] staging: wfx: simplify wfx_set_tim_impl()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Argument provided to wfx_set_tim_impl() is always wvif->aid0_bit_set and there is no reason to provide another argument. Also rename wfx_set_tim_impl() into wfx_update_tim() to reflect the new behavior. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 18

[PATCH 62/65] staging: wfx: simplify hif_handle_tx_data()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Since enum action has now only two cases, it can be dropped. Then hif_handle_tx_data() can be simplified. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 40 ++--- 1 file changed, 15 insertions(+), 25 deletions(-) diff

[PATCH 50/65] staging: wfx: simplify the link-id allocation

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The "link-id" is a slot number provided to the chip. A link-id is allocated to every station associated with the chip (mainly when the chip is in AP mode). It is more or less the same thing than the association ID, but it is limited to 14 values. Firmware uses the link-id

[PATCH 26/65] staging: wfx: drop wfx_set_cts_work()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_bss_info_changed() is not called from atomic contexts. So, it is not necessary to raise an asynchronous work to change ERP. Thus wfx_set_cts_work() become useless. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 40

[PATCH 25/65] staging: wfx: drop wvif->setbssparams_done

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller setbssparams_done was here to ensure that the firmware does not enable powersave before to get the first beacon. However, mac80211 already ensures it gets a beacon before to associate to the BSS. And even, if it won't, the firmware wake up at least on every DTIM, which is

[PATCH 24/65] staging: wfx: drop wvif->cqm_rssi_thold

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Current code keeps a copy of bss_conf->cqm_rssi_thold in wfx_vif. There is no sane reason for that. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 6 ++ drivers/staging/wfx/wfx.h | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git

[PATCH 02/65] staging: wfx: make hif_scan() usage clearer

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller hif_scan() return max number of jiffies to wait before the completion indication. However, if this value is negative, an error has occurred. Reword the code to reflect that behavior. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/scan.c | 7 +++ 1 file

[PATCH 48/65] staging: wfx: fix RCU usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Indeed, sta was used after call to rcu_unlock() Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wfx/sta.c b/drivers/staging/wfx/sta.c index 80a2a9e8256f..d50b583af187

[PATCH 42/65] staging: wfx: do not update uapsd if not necessary

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_conf_tx() is called for each queue. On every call, the function updates UAPSD mask and PM mode for all queues. It is a pity since the UAPSD configuration very rarely changes and it makes exchanges between the host and the chip more difficult to track. This patch avoid

[PATCH 27/65] staging: wfx: SSID should be provided to hif_start() even if hidden

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller SSID is hidden in beacon but firmware has to know to which probe requests it has to answer. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/wfx/hif_tx.c

[PATCH 13/65] staging: wfx: drop struct wfx_ht_info

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller This struct is no more used. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 18 +++--- drivers/staging/wfx/sta.h | 6 -- drivers/staging/wfx/wfx.h | 1 - 3 files changed, 3 insertions(+), 22 deletions(-) diff --git

[PATCH 03/65] staging: wfx: add missing PROBE_RESP_OFFLOAD feature

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Some userspace tools (hostapd) rely on probe_resp_offload fields for certain features. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/main.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c index

[PATCH 46/65] staging: wfx: relocate "buffered" information to sta_priv

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It simplify the code if field buffered is hosted in the struct sta_priv instead of in the struct wfx_link_entry. More globally, struct wfx_link_entry has no real reasons to exist and should be dropped soon. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c

[PATCH 59/65] staging: wfx: ensure that packet_id is unique

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller In current code, packet_id is derivated from mac802.11 packet sequence number, but this number is only unique for a station. It is not sufficient. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c | 8 ++-- drivers/staging/wfx/wfx.h | 1 + 2 files

[PATCH 16/65] staging: wfx: rename wfx_upload_beacon()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller In fact, wfx_upload_beacon() uploads beacon and probe response. So, rename it in wfx_upload_ap_templates(). The call to wfx_fwd_probe_req() has nothing to do with template uploading, so relocate it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 6 +++---

[PATCH 20/65] staging: wfx: simplify wfx_flush()

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Current code of wfx_flush() force to drop packets in some contexts. However, there is no obvious reasons to do that. It looks like a workaround for a bug with the old implementation of __wfx_flush(). Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 12

[PATCH 61/65] staging: wfx: remove check for interface state

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Obviously, the value of wvif->state as no reason to be wrong. At least, if it the case, dropping the frame is probably not the bast thing to do. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 50 + 1 file changed, 12

[PATCH 40/65] staging: wfx: update power-save per interface

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller mac80211 and the device are both able to control power-save per vif. But, the current code retrieve power-save from wfx_config(). So, it does not allow to setup power-save independently for each vif. Driver just has to rely on wfx_bss_info_changed() instead of wfx_config().

[PATCH 22/65] staging: wfx: drop wvif->dtim_period

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller It is not necessary to keep a copy of dtim_period in wfx_vif. Prefer to just rely on bss_conf->dtim_period. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 20 drivers/staging/wfx/wfx.h | 1 - 2 files changed, 4 insertions(+), 17

[PATCH 47/65] staging: wfx: fix bss_loss

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_tx_confirm_cb() retrieves the station associated with a frame using the MAC address from the 802.11 header. In the other side wfx_tx() retrieves the station using sta field from the ieee80211_tx_control argument. In wfx_cqm_bssloss_sm(), wfx_tx() was called directly

[PATCH 10/65] staging: wfx: use specialized structs for HIF arguments

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller Most of the commands that are sent to device should take struct in argument. In the current code, when this struct is binary compatible with a __le32, the driver use a __le32. This behavior is error prone. This patch fixes that and uses the specialized structs instead.

[PATCH 11/65] staging: wfx: retrieve ampdu_density from sta->ht_cap

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wvif->ht_info.ht_cap is a useless copy of sta->ht_cap. It makes no sense to rely on it. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/sta.c | 10 ++ 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/wfx/sta.c

[PATCH 19/65] staging: wfx: fix __wfx_flush() when drop == false

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller wfx_tx_queues_clear() only clear not yet sent requests. So, it always necessary to wait for tx_queue_stats.wait_link_id_empty whatever the value of "drop" argument. In add, it is not necessary to return with tx queue locked since all calls to __wfx_flush() unlock the tx

[PATCH 09/65] staging: wfx: simplify hif_start() usage

2020-01-15 Thread Jérôme Pouiller
From: Jérôme Pouiller The structure hif_req_start come from hardware API. It is not intended to be manipulated in upper layers of the driver. In add, current code for hif_start() is too dumb. It should pack data with hardware representation instead of leaving all work to the caller.

  1   2   >