platform/kernel/linux-rpi.git
2 years agostaging: wfx: ensure IRQ is ready before enabling it
Jérôme Pouiller [Mon, 13 Sep 2021 13:02:03 +0000 (15:02 +0200)]
staging: wfx: ensure IRQ is ready before enabling it

Since commit 5561770f80b1 ("staging: wfx: repair external IRQ for
SDIO"), wfx_sdio_irq_subscribe() enforce the device to use IRQs.
However, there is currently a race in this code. An IRQ may happen
before the IRQ has been registered.

The problem has observed during debug session when the device crashes
before the IRQ set up:

    [ 1.546] wfx-sdio mmc0:0001:1: started firmware 3.12.2 "WF200_ASIC_WFM_(Jenkins)_FW3.12.2" (API: 3.7, keyset: C0, caps: 0x00000002)
    [ 2.559] wfx-sdio mmc0:0001:1: time out while polling control register
    [ 3.565] wfx-sdio mmc0:0001:1: chip is abnormally long to answer
    [ 6.563] wfx-sdio mmc0:0001:1: chip did not answer
    [ 6.568] wfx-sdio mmc0:0001:1: hardware request CONFIGURATION (0x09) on vif 2 returned error -110
    [ 6.577] wfx-sdio mmc0:0001:1: PDS bytes 0 to 12: chip didn't reply (corrupted file?)
    [ 6.585] Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [ 6.592] pgd = c0004000
    [ 6.595] [00000000] *pgd=00000000
    [ 6.598] Internal error: Oops - BUG: 17 [#1] THUMB2
    [ 6.603] Modules linked in:
    [ 6.606] CPU: 0 PID: 23 Comm: kworker/u2:1 Not tainted 3.18.19 #78
    [ 6.612] Workqueue: kmmcd mmc_rescan
    [ 6.616] task: c176d100 ti: c0e50000 task.ti: c0e50000
    [ 6.621] PC is at wake_up_process+0xa/0x14
    [ 6.625] LR is at sdio_irq+0x61/0x250
    [ 6.629] pc : [<c001e8ae>] lr : [<c00ec5bd>] psr: 600001b3
    [ 6.629] sp : c0e51bd8 ip : c0e51cc8 fp : 00000001
    [ 6.640] r10: 00000003 r9 : 00000000 r8 : c0003c34
    [ 6.644] r7 : c0e51bd8 r6 : c0003c30 r5 : 00000001 r4 : c0e78c00
    [ 6.651] r3 : 00000000 r2 : 00000000 r1 : 00000003 r0 : 00000000
    [ 6.657] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA Thumb Segment kernel
    [ 6.664] Control: 50c53c7d Table: 11fd8059 DAC: 00000015
    [ 6.670] Process kworker/u2:1 (pid: 23, stack limit = 0xc0e501b0)
    [ 6.676] Stack: (0xc0e51bd8 to 0xc0e52000)
    [...]
    [ 6.949] [<c001e8ae>] (wake_up_process) from [<c00ec5bd>] (sdio_irq+0x61/0x250)
    [ 6.956] [<c00ec5bd>] (sdio_irq) from [<c0025099>] (handle_irq_event_percpu+0x17/0x92)
    [ 6.964] [<c0025099>] (handle_irq_event_percpu) from [<c002512f>] (handle_irq_event+0x1b/0x24)
    [ 6.973] [<c002512f>] (handle_irq_event) from [<c0026577>] (handle_level_irq+0x5d/0x76)
    [ 6.981] [<c0026577>] (handle_level_irq) from [<c0024cc3>] (generic_handle_irq+0x13/0x1c)
    [ 6.989] [<c0024cc3>] (generic_handle_irq) from [<c0024dd9>] (__handle_domain_irq+0x31/0x48)
    [ 6.997] [<c0024dd9>] (__handle_domain_irq) from [<c0008359>] (ov_handle_irq+0x31/0xe0)
    [ 7.005] [<c0008359>] (ov_handle_irq) from [<c000af5b>] (__irq_svc+0x3b/0x5c)
    [ 7.013] Exception stack(0xc0e51c68 to 0xc0e51cb0)
    [...]
    [ 7.038] [<c000af5b>] (__irq_svc) from [<c01775aa>] (wait_for_common+0x9e/0xc4)
    [ 7.045] [<c01775aa>] (wait_for_common) from [<c00e1dc3>] (mmc_wait_for_req+0x4b/0xdc)
    [ 7.053] [<c00e1dc3>] (mmc_wait_for_req) from [<c00e1e83>] (mmc_wait_for_cmd+0x2f/0x34)
    [ 7.061] [<c00e1e83>] (mmc_wait_for_cmd) from [<c00e7b2b>] (mmc_io_rw_direct_host+0x71/0xac)
    [ 7.070] [<c00e7b2b>] (mmc_io_rw_direct_host) from [<c00e8f79>] (sdio_claim_irq+0x6b/0x116)
    [ 7.078] [<c00e8f79>] (sdio_claim_irq) from [<c00d8415>] (wfx_sdio_irq_subscribe+0x19/0x94)
    [ 7.086] [<c00d8415>] (wfx_sdio_irq_subscribe) from [<c00d5229>] (wfx_probe+0x189/0x2ac)
    [ 7.095] [<c00d5229>] (wfx_probe) from [<c00d83bf>] (wfx_sdio_probe+0x8f/0xcc)
    [ 7.102] [<c00d83bf>] (wfx_sdio_probe) from [<c00e7fbb>] (sdio_bus_probe+0x5f/0xa8)
    [ 7.109] [<c00e7fbb>] (sdio_bus_probe) from [<c00be229>] (driver_probe_device+0x59/0x134)
    [ 7.118] [<c00be229>] (driver_probe_device) from [<c00bd4d7>] (bus_for_each_drv+0x3f/0x4a)
    [ 7.126] [<c00bd4d7>] (bus_for_each_drv) from [<c00be1a5>] (device_attach+0x3b/0x52)
    [ 7.134] [<c00be1a5>] (device_attach) from [<c00bdc2b>] (bus_probe_device+0x17/0x4c)
    [ 7.141] [<c00bdc2b>] (bus_probe_device) from [<c00bcd69>] (device_add+0x2c5/0x334)
    [ 7.149] [<c00bcd69>] (device_add) from [<c00e80bf>] (sdio_add_func+0x23/0x44)
    [ 7.156] [<c00e80bf>] (sdio_add_func) from [<c00e79eb>] (mmc_attach_sdio+0x187/0x1ec)
    [ 7.164] [<c00e79eb>] (mmc_attach_sdio) from [<c00e31bd>] (mmc_rescan+0x18d/0x1fc)
    [ 7.172] [<c00e31bd>] (mmc_rescan) from [<c001a14f>] (process_one_work+0xd7/0x170)
    [ 7.179] [<c001a14f>] (process_one_work) from [<c001a59b>] (worker_thread+0x103/0x1bc)
    [ 7.187] [<c001a59b>] (worker_thread) from [<c001c731>] (kthread+0x7d/0x90)
    [ 7.194] [<c001c731>] (kthread) from [<c0008ce1>] (ret_from_fork+0x11/0x30)
    [ 7.201] Code: 2103 b580 2200 af00 (681b) 46bd
    [ 7.206] ---[ end trace 3ab50aced42eedb4 ]---

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-33-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: indent functions arguments
Jérôme Pouiller [Mon, 13 Sep 2021 13:02:02 +0000 (15:02 +0200)]
staging: wfx: indent functions arguments

Function arguments must be aligned with first argument. Apply that
rule.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-32-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: explain the purpose of wfx_send_pds()
Jérôme Pouiller [Mon, 13 Sep 2021 13:02:01 +0000 (15:02 +0200)]
staging: wfx: explain the purpose of wfx_send_pds()

On first look, the goal of wfx_send_pds() is not obvious. A small
explanation is welcomed.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-31-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: remove useless comments after #endif
Jérôme Pouiller [Mon, 13 Sep 2021 13:02:00 +0000 (15:02 +0200)]
staging: wfx: remove useless comments after #endif

Comments after the last #endif of header files don't bring any
information and are redundant with the name of the file. Drop them.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-30-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: fix comments styles
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:59 +0000 (15:01 +0200)]
staging: wfx: fix comments styles

Unify all comments of the wfx driver to use the same comment style.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-29-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: avoid c99 comments
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:58 +0000 (15:01 +0200)]
staging: wfx: avoid c99 comments

The wfx driver is a network driver. C99 comments are prohibited in this
part of the kernel.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-28-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: reformat comment
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:57 +0000 (15:01 +0200)]
staging: wfx: reformat comment

The new comment takes only one line instead of three.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-27-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: update files descriptions
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:56 +0000 (15:01 +0200)]
staging: wfx: update files descriptions

Each file of the driver contains a short description of its purpose.
These description were a bit outdated.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-26-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: remove references to WFxxx in comments
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:55 +0000 (15:01 +0200)]
staging: wfx: remove references to WFxxx in comments

The WF200 is the only representative of the WFxxx series and the
development of any successor is not expected. So, for clarity, replace
occurrences of "WFxxx" with "WF200".

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-25-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: fix space after cast operator
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:54 +0000 (15:01 +0200)]
staging: wfx: fix space after cast operator

checkpatch.pl reports that cast operators should not been followed by a
space.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-24-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: remove useless debug statement
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:53 +0000 (15:01 +0200)]
staging: wfx: remove useless debug statement

In the early age, it was unexpected to access a VIF that did not exist.
With current code, this happens frequently. Having a trace associated on
this event brings absolutely no informations.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-23-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: remove unused definition
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:52 +0000 (15:01 +0200)]
staging: wfx: remove unused definition

The enum hif_fw_type is never used in the driver. Drop it.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-22-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: apply naming rules in hif_tx_mib.c
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:51 +0000 (15:01 +0200)]
staging: wfx: apply naming rules in hif_tx_mib.c

All the functions of hif_tx_mib.c format data to be sent to the
hardware. In this file, the struct to be sent is always named 'arg'.

Also applies this rule to hif_set_macaddr().

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-21-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: fix error names
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:50 +0000 (15:01 +0200)]
staging: wfx: fix error names

ENOTSUP is an alias of EOPNOTSUPP. However, EOPNOTSUPP is preferred.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-20-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: reorder function for slightly better eye candy
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:49 +0000 (15:01 +0200)]
staging: wfx: reorder function for slightly better eye candy

For a code more eye candy, group all the unconditional assignments
together.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-19-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: simplify hif_join()
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:48 +0000 (15:01 +0200)]
staging: wfx: simplify hif_join()

The new code is smaller.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-18-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: declare variables at beginning of functions
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:47 +0000 (15:01 +0200)]
staging: wfx: declare variables at beginning of functions

For better code, we prefer to declare all the local variables at
beginning of the functions.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-17-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: fix misleading 'rate_id' usage
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:46 +0000 (15:01 +0200)]
staging: wfx: fix misleading 'rate_id' usage

The driver sometime use the term 'rate_id' to identify a retry policy
(which is in fact a series of rate IDs). This is misleading.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-16-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: uniformize counter names
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:45 +0000 (15:01 +0200)]
staging: wfx: uniformize counter names

The device provide some internal statistic counters. However, the names
of counter were not very meaningful.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-15-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: update with the firmware API 3.8
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:44 +0000 (15:01 +0200)]
staging: wfx: update with the firmware API 3.8

The firmware API 3.8 introduces new statistic counters. These changes
are backward compatible.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-14-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: simplify API coherency check
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:43 +0000 (15:01 +0200)]
staging: wfx: simplify API coherency check

The 'channel' argument of hif_join() should never be NULL. hif_join()
does not have the responsibility to recover bug of caller.

In current code, if the argument channel is NULL, memory leaks. The new
code just emit a warning and does not give the illusion that it is
supported (and indeed a Oops will probably raise a few lines below).

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-13-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: relax the PDS existence constraint
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:42 +0000 (15:01 +0200)]
staging: wfx: relax the PDS existence constraint

The PDS file contains antenna parameters. The file is specific to each
hardware design. Normally, the board designer should add a line in the
of_device_id table with his own antenna parameters.

Until, now the absence of PDS file is a hard fatal error. However,
during the development, in most of the cases, an empty PDS file is
sufficient to start WiFi communication.

This patch keep an error, but allow the user to play with the device.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-12-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: fix support for CSA
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:41 +0000 (15:01 +0200)]
staging: wfx: fix support for CSA

The WF200 is able to filter beacons. However, it uses a positive filter:
any change to an IE not listed won't be reported.

In current code, the changes in Channel Switch Announcement (CSA) are
not reported to the host. Thus, it fixes the support for CSA in station
mode.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-11-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: declare support for TDLS
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:40 +0000 (15:01 +0200)]
staging: wfx: declare support for TDLS

Since the firmware API 3.8, the device is able to support TDLS.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-10-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: take advantage of wfx_tx_queue_empty()
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:39 +0000 (15:01 +0200)]
staging: wfx: take advantage of wfx_tx_queue_empty()

wfx_tx_queues_check_empty() can be slightly simplified by calling
wfx_tx_queue_empty().

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-9-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: fix atomic accesses in wfx_tx_queue_empty()
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:38 +0000 (15:01 +0200)]
staging: wfx: fix atomic accesses in wfx_tx_queue_empty()

Checking if a skb_queue is empty is not an atomic operation. We should
take some precautions to do it.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-8-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: drop unused argument from hif_scan()
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:37 +0000 (15:01 +0200)]
staging: wfx: drop unused argument from hif_scan()

It is no more necessary to compute the expected duration of the scan
request.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-7-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: avoid possible lock-up during scan
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:36 +0000 (15:01 +0200)]
staging: wfx: avoid possible lock-up during scan

If the environment is noisy, the device may take time to send scan
requests. Thus, scan requests durations > 5s have already been observed.
During the scan, traffic is neither received, neither sent. From the
user point-of-view, the traffic is frozen for a long time.

This patch reworks the scan processing. It gives to the device a smaller
time budget than previously. However, it does not expect the scan to be
complete and it is able to send another scan request to finish the work.

A big part of the patch aims to avoid an infinite loop if the device
goes crazy.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-6-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: wait for SCAN_CMPL after a SCAN_STOP
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:35 +0000 (15:01 +0200)]
staging: wfx: wait for SCAN_CMPL after a SCAN_STOP

When the device has finished a scan request, it send a scan complete
("SCAN_COMPL") indication. It is also possible to abort a scan request
with a "SCAN_STOP" message. A SCAN_COMPL is also send in this case.

The driver limits the delay to make a scan request. A timeout happens
almost never but is theoretically possible. Currently, if it happens
the driver does not wait for the SCAN_COMPL. Then, when the driver
starts the next scan request, the device may return -EBUSY (scan
requests often occur back-to-back).

This patch give a chance to the device to send a SCAN_COMPL after a scan
timeout.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-5-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: ignore PS when STA/AP share same channel
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:34 +0000 (15:01 +0200)]
staging: wfx: ignore PS when STA/AP share same channel

When multiple interface are in use. One is always AP while the other is
always station. When the two interface use the same channel, it makes no
sense to enabled Power Saving (PS) on the station. Indeed, because of
the AP, the device will be kept awake on this channel anyway.

In add, when multiple interface are in use, mac80211 does not update the
PS information and delegate to the driver responsibility to do the
right thing.

Thus, in the current code, when the user enable PS in this
configuration, the driver finally enable PS-Poll which is probably not
what the user expected.

This patch detect this case and applies a sane configuration in all
cases.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-4-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: do not send CAB while scanning
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:33 +0000 (15:01 +0200)]
staging: wfx: do not send CAB while scanning

During the scan requests, the Tx traffic is suspended. This lock is
shared by all the network interfaces. So, a scan request on one
interface will block the traffic on a second interface. This causes
trouble when the queued traffic contains CAB (Content After DTIM Beacon)
since this traffic cannot be delayed.

It could be possible to make the lock local to each interface. But It
would only push the problem further. The device won't be able to send
the CAB before the end of the scan.

So, this patch just ignore the DTIM indication when a scan is in
progress. The firmware will send another indication on the next DTIM and
this time the system will be able to send the traffic just behind the
beacon.

The only drawback of this solution is that the stations connected to
the AP will wait for traffic after the DTIM for nothing. But since the
case is really rare it is not a big deal.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-3-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: wfx: use abbreviated message for "incorrect sequence"
Jérôme Pouiller [Mon, 13 Sep 2021 13:01:32 +0000 (15:01 +0200)]
staging: wfx: use abbreviated message for "incorrect sequence"

The wfx driver checks carefully the coherency of of the DTIM
notifications. We have noticed several times some small inconsistencies
from the firmware on these notification. They have never been critical.

However on the driver side they lead to big fat warnings. Worse, if
these warning are displayed on UART console, they can be long to display
(several hundreds of millisecs). Since, this warning is generated from a
work queue, it can delay all the workqueue users. Especially, it can
drastically slow down the frame management of the driver and then
generate errors that are serious this time (eg. an overflow of the
indication queue of the device).

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20210913130203.1903622-2-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unnecessary include from odm_types.h
Michael Straube [Mon, 13 Sep 2021 19:20:43 +0000 (21:20 +0200)]
staging: r8188eu: remove unnecessary include from odm_types.h

Including basic_types.h is not needed in odm_types.h.
Remove the include.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210913192043.26527-4-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused defines from odm_types.h
Michael Straube [Mon, 13 Sep 2021 19:20:42 +0000 (21:20 +0200)]
staging: r8188eu: remove unused defines from odm_types.h

Remove unused defines from odm_types.h. This compiles without
introducing any new warnings.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210913192043.26527-3-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused enum RT_SPINLOCK_TYPE
Michael Straube [Mon, 13 Sep 2021 19:20:41 +0000 (21:20 +0200)]
staging: r8188eu: remove unused enum RT_SPINLOCK_TYPE

The enum RT_SPINLOCK_TYPE is not used in the driver, remove it.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210913192043.26527-2-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused variable b_hw_radio_off
Martin Kaiser [Mon, 13 Sep 2021 18:51:10 +0000 (20:51 +0200)]
staging: r8188eu: remove unused variable b_hw_radio_off

b_hw_radio_off in struct pwrctrl_priv is not used. Remove it.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-9-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused variable cpwm_tog
Martin Kaiser [Mon, 13 Sep 2021 18:51:09 +0000 (20:51 +0200)]
staging: r8188eu: remove unused variable cpwm_tog

cpwm_tog in struct pwrctrl_priv is not used. Remove it.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-8-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: rtw_set_ips_deny is not used
Martin Kaiser [Mon, 13 Sep 2021 18:51:08 +0000 (20:51 +0200)]
staging: r8188eu: rtw_set_ips_deny is not used

Remove the rtw_set_ips_deny function since it's not used.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-7-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused enum and array
Martin Kaiser [Mon, 13 Sep 2021 18:51:07 +0000 (20:51 +0200)]
staging: r8188eu: remove unused enum and array

PS_BBRegBackup in struct pwrctrl_priv is not used. Remove this component
and the related enum _PS_BBRegBackup_.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-6-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused pwrctrl definitions
Martin Kaiser [Mon, 13 Sep 2021 18:51:06 +0000 (20:51 +0200)]
staging: r8188eu: remove unused pwrctrl definitions

Remove a bunch of unused defines and macros and an unused struct
from rtw_pwrctrl.h.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-5-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: _free_pwrlock is empty
Martin Kaiser [Mon, 13 Sep 2021 18:51:05 +0000 (20:51 +0200)]
staging: r8188eu: _free_pwrlock is empty

Remove the empty _free_pwrlock function and rtw_free_pwrctrl_priv,
which is just a wrapper around _free_pwrlock.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused power state defines
Martin Kaiser [Mon, 13 Sep 2021 18:51:04 +0000 (20:51 +0200)]
staging: r8188eu: remove unused power state defines

Remove some unused defines and macros related to power states.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-3-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove rtw_set_rpwm
Martin Kaiser [Mon, 13 Sep 2021 18:51:03 +0000 (20:51 +0200)]
staging: r8188eu: remove rtw_set_rpwm

After we dropped the call to set HW_VAR_SET_RPWM, the rtw_set_rpwm
function doesn't do anything useful.

Remove the function and the rpwm component of struct pwrctrl_priv,
which is not used outside of rtw_set_rpwm.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210913185110.3065-2-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: vchiq_dev: cleanup code alignment issues
Gaston Gonzalez [Sun, 12 Sep 2021 13:37:52 +0000 (10:37 -0300)]
staging: vchiq_dev: cleanup code alignment issues

Fix code alignment issues.

Reported by checkpatch.pl

Signed-off-by: Gaston Gonzalez <gascoar@gmail.com>
Link: https://lore.kernel.org/r/20210912133751.269885-2-gascoar@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: vchiq_dev: remove braces from if block
Gaston Gonzalez [Sun, 12 Sep 2021 13:37:50 +0000 (10:37 -0300)]
staging: vchiq_dev: remove braces from if block

Remove unnecessary braces from if block.

Reported by checkpatch.pl

Signed-off-by: Gaston Gonzalez <gascoar@gmail.com>
Link: https://lore.kernel.org/r/20210912133751.269885-1-gascoar@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove header file odm_reg.h
Michael Straube [Mon, 13 Sep 2021 09:08:31 +0000 (11:08 +0200)]
staging: r8188eu: remove header file odm_reg.h

After removing unused register definitions from odm_reg.h there are
only two definitions left. Move them into odm.h and remove odm_reg.h.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210913090831.13803-2-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused register definitions from odm_reg.h
Michael Straube [Mon, 13 Sep 2021 09:08:30 +0000 (11:08 +0200)]
staging: r8188eu: remove unused register definitions from odm_reg.h

Remove unused register definitions from odm_reg.h.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210913090831.13803-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: core: remove unused function rtw_set_tx_chksum_offload
Saurav Girepunje [Sun, 12 Sep 2021 16:57:20 +0000 (22:27 +0530)]
staging: r8188eu: core: remove unused function rtw_set_tx_chksum_offload

Remove unused function rtw_set_tx_chksum_offload.

Signed-off-by: Saurav Girepunje <saurav.girepunje@gmail.com>
Link: https://lore.kernel.org/r/YT4xcJvvlPSIS+T6@user
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove macro GET_EEPROM_EFUSE_PRIV
Michael Straube [Sun, 12 Sep 2021 10:08:36 +0000 (12:08 +0200)]
staging: r8188eu: remove macro GET_EEPROM_EFUSE_PRIV

Replace and remove the macro GET_EEPROM_EFUSE_PRIV to get one step
closer to remove hal_intf.h.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210912100836.4655-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove header file HalHWImg8188E_FW.h
Michael Straube [Sat, 11 Sep 2021 23:18:44 +0000 (01:18 +0200)]
staging: r8188eu: remove header file HalHWImg8188E_FW.h

The header file HalHWImg8188E_FW.h is not used in the driver.
Remove it.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911231844.16268-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove rtw_hw_suspend
Martin Kaiser [Sat, 11 Sep 2021 16:10:18 +0000 (18:10 +0200)]
staging: r8188eu: remove rtw_hw_suspend

The bHWPwrPindetect cleanup removed the only call to rtw_hw_suspend.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210911161019.26881-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: bHWPwrPindetect is always false
Martin Kaiser [Sat, 11 Sep 2021 16:10:16 +0000 (18:10 +0200)]
staging: r8188eu: bHWPwrPindetect is always false

The bHWPwrPindetect component of struct pwrctrl_priv is never initialised
explicitly, it remains at its default value 0.

Remove bHWPwrPindetect itself and code that depends on
bHWPwrPindetect != 0.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210911161019.26881-2-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove write-only variable tog
Martin Kaiser [Sat, 11 Sep 2021 14:15:13 +0000 (16:15 +0200)]
staging: r8188eu: remove write-only variable tog

tog in struct pwrctrl_priv is never read. Remove it.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210911141521.24901-5-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove write-only variable cpwm
Martin Kaiser [Sat, 11 Sep 2021 14:15:12 +0000 (16:15 +0200)]
staging: r8188eu: remove write-only variable cpwm

cpwm in struct pwrctrl_priv is never read. Remove it.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210911141521.24901-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: setting HW_VAR_SET_RPWM does nothing
Martin Kaiser [Sat, 11 Sep 2021 14:15:11 +0000 (16:15 +0200)]
staging: r8188eu: setting HW_VAR_SET_RPWM does nothing

Setting the HW_VAR_SET_RPWM "hardware variable" is an empty operation.

Remove the call to set HW_VAR_SET_RPWM, the calculation of the value to be
set and the definition of HW_VAR_SET_RPWM itself.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210911141521.24901-3-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: btcoex_rfon is always false
Martin Kaiser [Sat, 11 Sep 2021 14:15:10 +0000 (16:15 +0200)]
staging: r8188eu: btcoex_rfon is always false

btcoex_rfon is always false in this driver. Remove the variable and code
that will never be executed.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210911141521.24901-2-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: make _rtw_init_queue a macro
Pavel Skripkin [Wed, 8 Sep 2021 19:43:09 +0000 (22:43 +0300)]
staging: r8188eu: make _rtw_init_queue a macro

While testing latest updates I hit lockdep warning:

[   42.694425] ============================================
[   42.694785] WARNING: possible recursive locking detected
[   42.695120] 5.14.0+ #25 Tainted: G         C
[   42.695422] --------------------------------------------
[   42.695747] RTW_CMD_THREAD/317 is trying to acquire lock:
[   42.696078] ffffc900006c90b0 (&pqueue->lock){+.-.}-{3:3}, at: _rtw_alloc_network+0x1e/0x321 [r8188eu]
[   42.696686]
[   42.696686] but task is already holding lock:
[   42.697148] ffffc900006c9100 (&pqueue->lock){+.-.}-{3:3}, at: rtw_update_scanned_network+0x31/0x76b [r8188eu]
[   42.697758]
[   42.697758] other info that might help us debug this:
[   42.698326]  Possible unsafe locking scenario:
[   42.698326]
[   42.698696]        CPU0
[   42.698847]        ----
[   42.698997]   lock(&pqueue->lock);
[   42.699209]   lock(&pqueue->lock);
[   42.699418]
[   42.699418]  *** DEADLOCK ***
[   42.699418]
[   42.699768]  May be due to missing lock nesting notation

It's false positive, since all queue spinlocks are initialized via
private API which has pqueue as agrument. Fix it by making
_rtw_init_queue a macro instead of function + removed unneeded _ prefix.

Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Link: https://lore.kernel.org/r/20210908194309.9086-1-paskripkin@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: vchiq: Replace function typedefs with equivalent declaration
Ojaswin Mujoo [Sat, 11 Sep 2021 13:23:25 +0000 (18:53 +0530)]
staging: vchiq: Replace function typedefs with equivalent declaration

Replace function typedefs with the equivalent declarations to better
align with the linux kenel coding style

The following typedefs were changed:
*  VCHIQ_CONNECTED_CALLBACK_T
*  vchiq_userdata_term

Signed-off-by: Ojaswin Mujoo <ojaswin98@gmail.com>
Link: https://lore.kernel.org/r/a8e4e0457b5fcc88c7f297f9d669dfb7e7d91ed5.1631366317.git.ojaswin98@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove rtl8188e_set_hal_ops()
Michael Straube [Fri, 10 Sep 2021 20:50:33 +0000 (22:50 +0200)]
staging: r8188eu: remove rtl8188e_set_hal_ops()

After the removal of some pointers from struct hal_ops the function
rtl8188e_set_hal_ops() is empty now. Remove it.

Acked-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910205033.3778-8-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove write_rfreg from struct hal_ops
Michael Straube [Fri, 10 Sep 2021 20:50:32 +0000 (22:50 +0200)]
staging: r8188eu: remove write_rfreg from struct hal_ops

Remove write_rfreg from struct hal_ops and its wrapper
rtw_hal_write_rfreg(). Call rtl8188e_PHY_SetRFReg() directly instead.

Acked-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910205033.3778-7-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove read_rfreg from struct hal_ops
Michael Straube [Fri, 10 Sep 2021 20:50:31 +0000 (22:50 +0200)]
staging: r8188eu: remove read_rfreg from struct hal_ops

Remove read_rfreg from struct hal_ops and its wrapper
rtw_hal_read_rfreg(). Call rtl8188e_PHY_QueryRFReg() directly instead.

Acked-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910205033.3778-6-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove write_bbreg from struct hal_ops
Michael Straube [Fri, 10 Sep 2021 20:50:30 +0000 (22:50 +0200)]
staging: r8188eu: remove write_bbreg from struct hal_ops

Remove write_bbreg from struct hal_ops and its wrapper
rtw_hal_write_bbreg(). Call rtl8188e_PHY_SetBBReg() directly instead.

Acked-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910205033.3778-5-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove read_bbreg from struct hal_ops
Michael Straube [Fri, 10 Sep 2021 20:50:29 +0000 (22:50 +0200)]
staging: r8188eu: remove read_bbreg from struct hal_ops

Remove read_bbreg from struct hal_ops and its wrapper
rtw_hal_read_bbreg(). Call rtl8188e_PHY_QueryBBReg() directly instead.

Acked-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910205033.3778-4-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove hal_xmit from struct hal_ops
Michael Straube [Fri, 10 Sep 2021 20:50:28 +0000 (22:50 +0200)]
staging: r8188eu: remove hal_xmit from struct hal_ops

Remove hal_xmit from struct hal_ops and its wrapper rtw_hal_xmit().
Call rtl8188eu_hal_xmit() directly instead.

Acked-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910205033.3778-3-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove mgnt_xmit from struct hal_ops
Michael Straube [Fri, 10 Sep 2021 20:50:27 +0000 (22:50 +0200)]
staging: r8188eu: remove mgnt_xmit from struct hal_ops

Remove mgnt_xmit from struct hal_ops and its wrapper
rtw_hal_mgnt_xmit(). Call rtl8188eu_mgnt_xmit() directly instead.

Acked-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910205033.3778-2-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_InitAllTimers()
Michael Straube [Sat, 11 Sep 2021 13:26:35 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_InitAllTimers()

Function ODM_InitAllTimers() is unused, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-19-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_CancelAllTimers()
Michael Straube [Sat, 11 Sep 2021 13:26:34 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_CancelAllTimers()

Function ODM_CancelAllTimers() is unused and it is the only caller
of function ODM_CancelTimer(). Remove both.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-18-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused prototype ODM_InitializeTimer()
Michael Straube [Sat, 11 Sep 2021 13:26:33 +0000 (15:26 +0200)]
staging: r8188eu: remove unused prototype ODM_InitializeTimer()

The function prototype ODM_InitializeTimer() is not used, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-17-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_AllocateMemory()
Michael Straube [Sat, 11 Sep 2021 13:26:32 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_AllocateMemory()

Function ODM_AllocateMemory() is unused, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-16-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_FreeMemory()
Michael Straube [Sat, 11 Sep 2021 13:26:31 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_FreeMemory()

Function ODM_FreeMemory() is unused, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-15-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_Read2Byte()
Michael Straube [Sat, 11 Sep 2021 13:26:30 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_Read2Byte()

Function ODM_Read2Byte() is unused, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-14-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_SetTimer()
Michael Straube [Sat, 11 Sep 2021 13:26:29 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_SetTimer()

Function ODM_SetTimer() is unused, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-13-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_IsWorkItemScheduled()
Michael Straube [Sat, 11 Sep 2021 13:26:28 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_IsWorkItemScheduled()

Function ODM_IsWorkItemScheduled() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-12-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_ScheduleWorkItem()
Michael Straube [Sat, 11 Sep 2021 13:26:27 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_ScheduleWorkItem()

Function ODM_ScheduleWorkItem() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-11-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_FreeWorkItem()
Michael Straube [Sat, 11 Sep 2021 13:26:26 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_FreeWorkItem()

Function ODM_FreeWorkItem() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-10-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_StopWorkItem()
Michael Straube [Sat, 11 Sep 2021 13:26:25 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_StopWorkItem()

Function ODM_StopWorkItem() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-9-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_StartWorkItem()
Michael Straube [Sat, 11 Sep 2021 13:26:24 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_StartWorkItem()

Function ODM_StartWorkItem() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-8-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_InitializeWorkItem()
Michael Straube [Sat, 11 Sep 2021 13:26:23 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_InitializeWorkItem()

Function ODM_InitializeWorkItem() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-7-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_sleep_us()
Michael Straube [Sat, 11 Sep 2021 13:26:22 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_sleep_us()

Function ODM_sleep_us() is unused, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-6-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_FillH2CCmd()
Michael Straube [Sat, 11 Sep 2021 13:26:21 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_FillH2CCmd()

Function ODM_FillH2CCmd() is unused, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-5-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_ReleaseSpinLock()
Michael Straube [Sat, 11 Sep 2021 13:26:20 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_ReleaseSpinLock()

Function ODM_ReleaseSpinLock() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-4-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_AcquireSpinLock()
Michael Straube [Sat, 11 Sep 2021 13:26:19 +0000 (15:26 +0200)]
staging: r8188eu: remove unused ODM_AcquireSpinLock()

Function ODM_AcquireSpinLock() is unused and empty, remove it.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-3-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove empty ODM_ReleaseTimer()
Michael Straube [Sat, 11 Sep 2021 13:26:18 +0000 (15:26 +0200)]
staging: r8188eu: remove empty ODM_ReleaseTimer()

Function ODM_ReleaseTimer() is empty and its only caller is
ODM_ReleaseAllTimers(). Remove both functions.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210911132635.30369-2-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: os_dep: simplifiy the rtw_resume function
Saurav Girepunje [Fri, 10 Sep 2021 09:12:56 +0000 (14:42 +0530)]
staging: r8188eu: os_dep: simplifiy the rtw_resume function

Remove unused variable ret and pwrpriv.
Remove the condition with no effect (if == else) in usb_intf.c
file.
Remove rtw_resume_process() and move whole thing to rtw_resume().
Remove the padapter NULL check which couldn't NULL in rtw_resume function.

Signed-off-by: Saurav Girepunje <saurav.girepunje@gmail.com>
Link: https://lore.kernel.org/r/YTshmPcZr/aVclHK@user
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove the remaining usb endpoint functions
Martin Kaiser [Fri, 10 Sep 2021 20:21:51 +0000 (22:21 +0200)]
staging: r8188eu: remove the remaining usb endpoint functions

Remove the last bunch of unused RT_usb_endpoint_... functions.

Acked-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210910202151.4007-5-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused function RT_usb_endpoint_num
Martin Kaiser [Fri, 10 Sep 2021 20:21:50 +0000 (22:21 +0200)]
staging: r8188eu: remove unused function RT_usb_endpoint_num

RT_usb_endpoint_num is unused. Remove this function.

Acked-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210910202151.4007-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused function RT_usb_endpoint_is_bulk_in
Martin Kaiser [Fri, 10 Sep 2021 20:21:49 +0000 (22:21 +0200)]
staging: r8188eu: remove unused function RT_usb_endpoint_is_bulk_in

Remove the RT_usb_endpoint_is_bulk_in function which is not used.

RT_usb_endpoint_dir_in is no longer used either and can also be removed.

Acked-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210910202151.4007-3-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused function usb_endpoint_is_int
Martin Kaiser [Fri, 10 Sep 2021 20:21:48 +0000 (22:21 +0200)]
staging: r8188eu: remove unused function usb_endpoint_is_int

The usb_endpoint_is_int is not used and can be removed.

RT_usb_endpoint_xfer_int was used only by usb_endpoint_is_int. Remove this
function as well.

Acked-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210910202151.4007-2-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: core: remove unused variable Adapter
Saurav Girepunje [Fri, 10 Sep 2021 18:20:26 +0000 (23:50 +0530)]
staging: r8188eu: core: remove unused variable Adapter

Remove unused variable Adapter from rtw_IOL_cmd_buf_dump function.

Signed-off-by: Saurav Girepunje <saurav.girepunje@gmail.com>
Link: https://lore.kernel.org/r/YTuh6iDyPMUC3wha@user
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: core: remove unused variable padapter
Saurav Girepunje [Fri, 10 Sep 2021 18:31:25 +0000 (00:01 +0530)]
staging: r8188eu: core: remove unused variable padapter

Remove unused variable padapter from mp_init_xmit_attrib().

Reviewed-by: Pavel Skripkin <paskripkin@gmail.com>
Signed-off-by: Saurav Girepunje <saurav.girepunje@gmail.com>
Link: https://lore.kernel.org/r/YTukfSY0CxowGXlQ@user
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove write-only variable bLCKInProgress
Martin Kaiser [Sat, 11 Sep 2021 13:23:38 +0000 (15:23 +0200)]
staging: r8188eu: remove write-only variable bLCKInProgress

bLCKInProgress in struct odm_rf_cal is never read. Remove it.

Acked-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210911132338.1415-1-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove rtw_IOL_append_LLT_cmd()
Michael Straube [Fri, 10 Sep 2021 11:11:10 +0000 (13:11 +0200)]
staging: r8188eu: remove rtw_IOL_append_LLT_cmd()

Function rtw_IOL_append_LLT_cmd() just returns _SUCCESS and the only
caller does not use the return value. Remove it.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910111110.4628-3-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove wrapper rtw_IOL_exec_cmds_sync()
Michael Straube [Fri, 10 Sep 2021 11:11:09 +0000 (13:11 +0200)]
staging: r8188eu: remove wrapper rtw_IOL_exec_cmds_sync()

Function rtw_IOL_exec_cmds_sync() is just a wrapper around
rtl8188e_IOL_exec_cmds_sync(). Remove it.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910111110.4628-2-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove IOL_exec_cmds_sync() from struct hal_ops
Michael Straube [Fri, 10 Sep 2021 11:11:08 +0000 (13:11 +0200)]
staging: r8188eu: remove IOL_exec_cmds_sync() from struct hal_ops

Remove IOL_exec_cmds_sync() from struct hal_ops and its wrapper
rtw_hal_iol_cmd(). Call rtl8188e_IOL_exec_cmds_sync() directly
instead.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210910111110.4628-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: rtl8723bs: remove unused macros from ioctl_linux.c
Michael Straube [Thu, 9 Sep 2021 21:19:22 +0000 (23:19 +0200)]
staging: rtl8723bs: remove unused macros from ioctl_linux.c

These macros are not used in the driver, remove them.
Found with GCC -Wunused-macros.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210909211922.24872-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused macro ROUND
Michael Straube [Thu, 9 Sep 2021 20:21:30 +0000 (22:21 +0200)]
staging: r8188eu: remove unused macro ROUND

The macro ROUND is not used in the driver, remove it.
Found with GCC -Wunused-macros.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210909202130.28508-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused macro READ_AND_CONFIG_TC
Michael Straube [Thu, 9 Sep 2021 11:05:17 +0000 (13:05 +0200)]
staging: r8188eu: remove unused macro READ_AND_CONFIG_TC

The macro READ_AND_CONFIG_TC is not used, remove it.
Found with GCC -Wunused-macros.

Acked-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210909110517.15243-1-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused ODM_MacStatusQuery()
Michael Straube [Wed, 8 Sep 2021 23:09:53 +0000 (01:09 +0200)]
staging: r8188eu: remove unused ODM_MacStatusQuery()

Function ODM_MacStatusQuery() is unused and empty, remove it.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210908230953.16931-3-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused odm_Init_RSSIForDM()
Michael Straube [Wed, 8 Sep 2021 23:09:52 +0000 (01:09 +0200)]
staging: r8188eu: remove unused odm_Init_RSSIForDM()

Function odm_Init_RSSIForDM() is unused and empty, remove it.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210908230953.16931-2-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 years agostaging: r8188eu: remove unused rtl8192c_PHY_GetHWRegOriginalValue()
Michael Straube [Wed, 8 Sep 2021 22:39:03 +0000 (00:39 +0200)]
staging: r8188eu: remove unused rtl8192c_PHY_GetHWRegOriginalValue()

Function rtl8192c_PHY_GetHWRegOriginalValue() is unused, remove it.

Signed-off-by: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20210908223903.10516-5-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>