Граф коммитов

2292 Коммитов

Автор SHA1 Сообщение Дата
Adham Abozaeid fb2b055b7e staging: wilc1000: flush the workqueue before deinit the host
Before deinitializing the host interface, the workqueue should be flushed
to handle any pending deferred work

Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20190722213837.21952-1-adham.abozaeid@microchip.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-25 09:38:15 +02:00
Ajay Singh 7ff9f78ea6 staging: wilc1000: rename 'host_interface' source and header
Rename 'host_interface' source and header file to include the 'wilc_'
prefix in its name.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:41 +02:00
Ajay Singh 93592a65ad staging: wilc1000: remove extra argument passing to wilc_send_config_pkt()
Cleanup patch to remove the passing of driver handler, get the 'idx'
value inside the called function.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:41 +02:00
Ajay Singh 39cf54fc6a staging: wilc1000: remove use of 'src_addr' element in 'wilc_vif' struct
Remove use of 'src_addr' element in wilc_vif, as the same information
already copied to net_device->dev_addr.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:41 +02:00
Ajay Singh 264a472d29 staging: wilc1000: remove unnecessary loop to traverse vif interfaces
Cleanup patch to avoid loop to traverse the interfaces instead make use
of vif received from net_device priv data.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:41 +02:00
Ajay Singh 2f5e568b28 staging: wilc1000: remove use of driver_handler_id & ifc_id
Removed the 'driver_handler_id' & 'ifc_id' elements and used 'idx' to
identify the handler.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:41 +02:00
Ajay Singh 9bc061e880 staging: wilc1000: added support to dynamically add/remove interfaces
Removed the use of two hardcoded interfaces and added support to
add/remove the network interfaces dynamically.
Now the driver will have single default interface with name 'wlan0' and
later other interface can be added from user space application e.g
using 'iw add' command.
Also taken care to maintain 'wilc_vif' as part of 'net_device'
private data and 'wilc' struct as 'wiphy' private data.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:41 +02:00
Ajay Singh 6419f818ab staging: wilc1000: fix error path cleanup in wilc_wlan_initialize()
For the error path in wilc_wlan_initialize(), the resources are not
cleanup in the correct order. Reverted the previous changes and use the
correct order to free during error condition.

Fixes: b46d68825c ("staging: wilc1000: remove COMPLEMENT_BOOT")
Cc: <stable@vger.kernel.org>
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:40 +02:00
Ajay Singh 424a61122c staging: wilc1000: handle p2p operations in caller context
Moved the handling of p2p related operation in the caller context instead
of using workqueue.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-01 09:01:06 +02:00
Adham Abozaeid f5a3cb90b8 staging: wilc1000: add passive scan support
Add passive scan support to the driver by passing the scan type to the
HW and configure the HW scan time if configured by the cfg80211.

Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-21 16:49:04 +02:00
Hariprasad Kelam 42203fbe73 staging: wilc1000: Remove redundant memset
alloc_etherdev function internally calls kvzalloc . So we may not need
explicit memset after this call.

Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-20 14:39:15 +02:00
Greg Kroah-Hartman 23004ec330 Merge 5.2-rc3 into staging-next
We need the staging fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-03 07:27:16 +02:00
Colin Ian King b5a0c29f4b staging: wilc1000: remove redundant masking of pkt_offset
The masking update of pkg_offset is redundant as the updated
value is never read and pkg_offset is re-assigned on the next
iteration of the loop.  Clean this up by removing the redundant
assignment.

Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-22 14:32:41 +02:00
Dan Carpenter fea6991636 staging: wilc1000: Fix some double unlock bugs in wilc_wlan_cleanup()
If ->hif_read_reg() or ->hif_write_reg() fail then the code unlocks
and keeps executing.  It should just return.

Fixes: c5c77ba18e ("staging: wilc1000: Add SDIO/SPI 802.11 driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-20 09:26:04 +02:00
Adham Abozaeid 2e299cc969 staging: wilc1000: Avoid GFP_KERNEL allocation from atomic context
txq_add_mgmt_pkt allocates memory while being called from atomic context
so needs to use GFP_ATOMIC

Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-17 12:40:51 +02:00
Bartlomiej Zolnierkiewicz 031ba1fd91 staging: remove redundant 'default n' from Kconfig
'default n' is the default value for any bool or tristate Kconfig
setting so there is no need to write it explicitly.

Also since commit f467c5640c ("kconfig: only write '# CONFIG_FOO
is not set' for visible symbols") the Kconfig behavior is the same
regardless of 'default n' being present or not:

    ...
    One side effect of (and the main motivation for) this change is making
    the following two definitions behave exactly the same:

        config FOO
                bool

        config FOO
                bool
                default n

    With this change, neither of these will generate a
    '# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied).
    That might make it clearer to people that a bare 'default n' is
    redundant.
    ...

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-16 13:39:01 +02:00
Colin Ian King e2e89d4a73 staging: wilc1000: fix spelling mistake "dissconect" -> "disconnect"
There is a spelling mistake in a netdev_err error message, fix it.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-16 13:15:54 +02:00
Nicholas Mc Guire c901556a43 staging: wilc1000: give usleep_range a range
usleep_range() is called in non-atomic context so there is little point
in setting min==max as the jitter of hrtimer is determined by interruptions
anyway. usleep_range can only perform the intended coalescence if some
room for placing the hrtimer is provided. Given the range of milliseconds
the delay will be 2+ anyway - so make it 2-2.5 ms which gives hrtimers
space to optimize without negatively impacting performance.

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-16 13:15:54 +02:00
Tetsuo Handa ae26aa8446 staging: wilc1000: Avoid GFP_KERNEL allocation from atomic context.
Since wilc_set_multicast_list() is called with dev->addr_list_lock
spinlock held, we can't use GFP_KERNEL memory allocation.

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Fixes: e624c58cf8 ("staging: wilc1000: refactor code to avoid use of wilc_set_multicast_list global")
Cc: Ajay Singh <ajay.kathat@microchip.com>
Reviewed-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-16 13:15:54 +02:00
Nicholas Mc Guire 8136eaa012 staging: wilc1000: drop explicit conversion to bool
As the expression evaluates to a boolean anyway (relational and logical
operators) conversion with the ternary operator is not needed here as
coccinelle notes (boolconv.cocci)

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Reviewed-by: Julian Calaby <julian.calaby@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-16 13:15:53 +02:00
Greg Kroah-Hartman 99b75a4e32 staging: add missing SPDX lines to Kconfig files
There are a few remaining drivers/staging/*/Kconfig files that do not
have SPDX identifiers in them.  Add the correct GPL-2.0 identifier to
them to make scanning tools happy.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-03 11:10:15 +02:00
Adham Abozaeid eab0754655 staging: wilc1000: assign scan result callback before starting the scan
When scan is triggered, sometimes scan results are received before the scan
result callback is assigned, causing the recieved results to be ignored.

Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-29 17:10:18 +01:00
Adham Abozaeid ac118d87cf staging: wilc1000: use cfg80211 ssid list instead of repacking it
Avoid repacking ssid values into struct wilc_probe_ssid, and use the
cfg80211 provided struct to pass the ssid list to wilc_scan.
With this change, struct wilc_probe_ssid, struct wilc_probe_ssid_info
and function wilc_wfi_cfg_alloc_fill_ssid will not be needed anymore.

Signed-off-by: Adham Abozaeid <adham.abozaeid@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-27 23:37:30 +09:00
Nishka Dasgupta 283a9e4b56 staging: wilc1000: Remove return variables from wilc_spi.c
Remove return variables from wilc_spi.c. Issue found with Coccinelle
using ret.cocci.

Signed-off-by: Nishka Dasgupta <nishka.dasgupta@yahoo.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-22 15:16:29 +01:00
Nishka Dasgupta 9531375229 staging: wilc1000: Remove return variable from host_interface.c
Remove return variable from host_interface.c. Issue found with
Coccinelle using ret.cocci.

Signed-off-by: Nishka Dasgupta <nishka.dasgupta@yahoo.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-22 15:16:28 +01:00
Himadri Pandya 72a2af2201 staging: wilc1000: remove unnecessary local variables
Remove unnecessary local variable "ret" and its assignments from
functions wilc_set_tx_power and wilc_get_tx_power. Suggested by
Coccinelle.

Signed-off-by: Himadri Pandya <himadri18.07@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-18 07:05:23 +01:00
Debleena Sen 6fc84d1666 staging: wilc1000: Fix line over 80 characters
Break the line after '+' to remove the checkpatch.pl warning. Remove
trailing whitespace after '+' if any:
WARNING: line over 80 characters

Signed-off-by: Debleena Sen <idebleenasen@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-18 07:05:18 +01:00
Bo YU c460495ee0 staging: wilc1000: fix incorrent type in initializer
Fix sparse warning:

drivers/staging/wilc1000//host_interface.c:444:49: warning: incorrect type in initializer (different address spaces)
drivers/staging/wilc1000//host_interface.c:444:49:    expected struct cfg80211_bss_ies const *ies
drivers/staging/wilc1000//host_interface.c:444:49:    got struct cfg80211_bss_ies const [noderef] <asn:4> *ies

Signed-off-by: Bo YU <tsu.yubo@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-28 08:45:28 +01:00
Bo YU 1d4ccf2b3c staging: wilc1000: fix incorrent type assignment
Fix sparse warning:

drivers/staging/wilc1000/host_interface.c:450:30: warning: incorrect type in assignment (different base types)
drivers/staging/wilc1000/host_interface.c:450:30:    expected restricted __le16 [usertype] beacon_period
drivers/staging/wilc1000/host_interface.c:450:30:    got unsigned short [usertype] beacon_interval
drivers/staging/wilc1000/host_interface.c:451:25: warning: incorrect type in assignment (different base types)
drivers/staging/wilc1000/host_interface.c:451:25:    expected restricted __le16 [usertype] cap_info
drivers/staging/wilc1000/host_interface.c:451:25:    got unsigned short [usertype] capability

Signed-off-by: Bo YU <tsu.yubo@gmail.com>
Reviewed-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-26 11:50:16 +01:00
Ajay Singh edce68b969 staging: wilc1000: rename linux_wlan.c and linux_mon.c
Rename linux_wlan.c and linux_mon.c to wilc_netdev.c and wilc_mon.c to
include 'wilc_' prefix.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh c6eab5e6de staging: wilc1000: remove 'linux_' prefix in function names
Remove 'linux_' prefix and replace it with 'wilc_' namespace.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh 55e311d844 staging: wilc1000: rename wilc_frmw_to_linux()
Rename wilc_frmw_to_linux() to wilc_frmw_to_host() to be remove the _linux
suffix.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh 5e63a59844 staging: wilc1000: added 'wilc_' prefix for function in wilc_sdio.c file
Cleanup patch to have proper follow clear namespace in wilc_sdio.c file.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh d4d30e466a staging: wilc1000: avoid function forward declaration in wilc_sdio.c file
Cleanup patch to avoid function forward declaration by reordering the
function.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh 6b0b7d86e4 staging: wilc1000: move macro and function prototype from wilc_wlan_if.h file
Move data structure and function prototype from 'wilc_wlan_if.h file.
Now, this file contains constant specific to the firmware.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh f5436edeed staging: wilc1000: add 'wilc_' prefix to have proper namespace
Cleanup patch to rename data structure and function name to have 'wilc_'
prefix.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh dda037057a staging: wilc1000: fix to set correct value for 'vif_num'
Set correct value in '->vif_num' for the total number of interfaces and
set '->idx' value using 'i'.

Fixes: 735bb39ca3 ("staging: wilc1000: simplify vif[i]->ndev accesses")
Fixes: 0e490657c7 ("staging: wilc1000: Fix problem with wrong vif index")
Cc: <stable@vger.kernel.org>
Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:34:45 +01:00
Ajay Singh 2a95c4e04a staging: wilc1000: define p2p related static variable as constants
Add constant qualifer for 'p2p_vendor_spec' & 'p2p_oui' static
variable because they are treated like constant values.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh 0d0f0b06a1 staging: wilc1000: move 'curr_channel' static variable in 'wilc' struct
Avoid the use of static variable and move it as part of wilc structure.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh 458e303bdc staging: wilc1000: move static variable 'wlan_channel' to 'wilc' struct
Avoid use of static variable 'wlan_channel' by moving it inside the wilc
structure.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh 8707091415 staging: wilc1000: avoid use of static variable in linux_mon.c
Define local variable for 'srcadd' & 'bssid' static variables and use
ether_addr_copy() to copy value into them.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh 98f83d3d01 staging: wilc1000: avoid use of 'hif_deinit_lock' static variable
Avoid use of static variable 'hif_deinit_lock' and move it as part of
wilc struct.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh d7d540ea66 staging: wilc1000: remove unused struct 'add_sta_param'
Remove 'add_sta_param' structure as its not used now.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh 20c888becc staging: wilc1000: add check before performing operation on net_device
Before calling an operation on net_device check if that interface is
available.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh f2bf97cb95 staging: wilc1000: avoid use of interface names for validation
Avoid use of interface name i.e 'wlan0' & 'p2p0' to check the interface
type in dev_state_ev_handler(). Now making use of netdev_ops and iface
type to know interface. Reorder the functions to avoid the forward
declaration after the above changes

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh ea3c0d4eaa staging: wilc1000: use random number for cookie instead of pointer
Use random number to assign to cookie value.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh b6c6cd11c7 staging: wilc1000: refactor code to use cookie information
Make use of cookie information to pass to wpa_s and handle cookie value
received in the cfg80211_ops callbacks.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:20 +01:00
Ajay Singh 9a4b45fb99 staging: wilc1000: refactor linux_wlan_init_test_config()
Refactor linux_wlan_init_test_config() to use correct endianness for wid
values and remove unnecessary code.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:19 +01:00
Ajay Singh 3c55a24ee2 staging: wilc1000: remove use of 'terminated_handle' static variable
Remove use of 'terminated_handle' variable and set the 'hif_drv' to
NULL once it's free.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-07 13:31:19 +01:00
Ajay Singh 6f466168fa staging: wilc1000: refactor scan() cfg80211 ops callback
Refactor scan() cfg80211 callback function and use correct value for
valid channel number limit.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-04 12:38:41 +01:00