Commit Graph

547803 Commits

Author SHA1 Message Date
Christian Gromm
8e4a0ef17f staging: most: add multi channel support to sound AIM
This patch adds 5.1 surround configuration with subbuffer cross-check,
when establishing a link to the core. For the sake of simplicity, only
one specific channel configuration is allowed.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:51 +02:00
Christian Gromm
ccfbaee033 staging: most: refactor channel structure
The struct most_c_obj has the same set of attributes for each of two AIMs.
This patch cleans up the code by introducing the new struct most_c_aim_obj
hat contains those fields.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:51 +02:00
Christian Gromm
71457d4827 staging: most: add fair buffer distribution
This patch ensures a fair distribution of buffers, when two AIMs share a
single channel. The AIMs then won't be able to use more than half of all
pre-allocated buffers of the linked channel. However, in case the channel
is not shared, the AIM can exclusively use all available buffers.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:51 +02:00
Christian Gromm
c81c9c3e0f staging: most: consolidate code
The function drci_rd_reg() always delivers little endian representation of
the 16-bit DCI register. The value returned by this function must always be
carefully converted from __le16 to u16 type. This patch moves all those
conversions to the function itself.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:50 +02:00
Christian Gromm
2637022887 staging: most: prevent DMA on stack
This patch is needed to avoid having DMA on the stack.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:50 +02:00
Christian Gromm
cc8d993513 staging: most: simplify code
This patch simply rearranges code for better readability.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:50 +02:00
Christian Gromm
1ea7e502c4 staging: most: fix MAC address representation
This patch fixes the representation of the MAC address within the HDM USB
module.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:50 +02:00
Christian Gromm
c31d9d12ef staging: most: fix buffer size for DIM2
This patch reduces the DBR buffer size to prevent an overflow in the DIM2
module. It is needed, because the MediaLB hardware has problems with DBR
buffers that exceed the size of 255 messages.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:50 +02:00
Christian Gromm
f1b9a84382 staging: most: remove macro cpu_to_le16
This patch removes the wrongly used macros cpu_to_le16

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:50 +02:00
Christian Gromm
d747e8ec1c staging: most: fix buffer synchronization request
Revision D of OS81118 network interface controller have the internal
buffer synchronization mechanism changed. This patch adapts the driver
to this.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
a2cfae06ac staging: most: remove dead code
The case where the channel type is neither synchronous nor isochronous is
already covered by a previous condition.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
d6f7737d5a staging: most: remove unnecessary field initialization
Since conf->extra_len has already been reset in most_start_channel() when
function hdm_configure_channel() gets called, it can safely be removed
here.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
f13f6981bc staging: most: fix channel operation in multi-aim context
This patch fixes the opening and closing process of a physical channel
when used by different AIMs.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
9161e9311c staging: most: fix USB babble on IN pipe
This patch prevents the HDM USB from submitting an URB with a buffer size
unaligned to 512 bytes to the USB subsystem.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
3032ab931b staging: most: remove shared IRQ request
Since there is no way find out whether the INIC has generated an
interrupt, the I2C interrupt must not be registered as a shared
interrupt.

Reported-by: PrasannaKumar Muralidharan <PrasannaKumar.Muraidharan@microchip.com>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
25ef42f308 staging: most: fix race condition in AIM networking
If the network device is being opened right after it has been registered
via function register_netdev(), the device state is not yet consistent in
the context of function ndo_open(). This patch cares about having the
initialization done right, before the networking device is registered.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
bf358040c4 staging: most: remove aim reset
This patch partly reverts a modification of function most_stop_channel()
that is trying to reset an established link between an AIM and an HDM in
all suitable places. But since the function most_stop_channel() is
stopping the data transfer it is the wrong place to do so.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Christian Gromm
ec5c00afc2 staging: most: change structure initialization
By applying this patch the initialization of the most_aim structure is
performed at compile time.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 03:18:49 +02:00
Anish Bhatt
5cfe8c1445 wilc1000 : Remove unused macro definitions
Remove all unused TCP_*_MASK macro definitions

Signed-off-by: Anish Bhatt <anish@gatech.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:42:25 +02:00
Glen Lee
1fea593f64 staging: wilc1000: remove variable cif_func
This patch removes variable cif_func and use mac_cfg directly. No need to have
another pointer variable.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:59 +02:00
Glen Lee
b002e20d53 staging: wilc1000: remove function pointer os_wait
This patch removes function pointer os_wait which is pointer of
linux_wlan_lock_timeout and just call the real name function directly.
Remove also static from linux_wlan_lock_timeout declaration.
As os_wait is deleted, structure wilc_wlan_os_func_t is useless. Delete
wilc_wlan_os_func_t, os_func and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:59 +02:00
Glen Lee
d2bfac009c staging: wilc1000: remove mutex txq_cs and it's related codes
mutex txq_cs is never used in the driver. txq_cs, txq_critical_section and
txq_lock have same pointer so just delete them and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:59 +02:00
Glen Lee
03eb726630 staging: wilc1000: remove variable rx_buffer_size
This patch removes two variables rx_buffer_size and use LINUX_RX_SIZE as
argument.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
7015b5db07 staging: wilc1000: remove variable tx_buffer_size
This patch removes unnecessary two variables tx_buffer_size and just use
LINUX_TX_SIZE as argument.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
187f1ef192 staging: wilc1000: remove pointer varialbes of hif_cs
Remove hif_lock and hif_critical_section which are pointer of
g_linux_wlan->hif_cs. Remove also it's related codes.
Just use mutex varialbe g_linux_wlan->hif_cs.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
d5a63a868b staging: wilc1000: remove pointer variables of txq_add_to_head_cs
This patch removes txq_add_to_head_critical_section and txq_add_to_head_lock
which are pointer of g_linux_wlan->txq_add_to_head_cs.
Just use g_linux_wlan->txq_add_to_head_cs as argument of function.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
6a3b94f718 staging: wilc1000: remove pointer varialbe cfg_wait and cfg_wait_event
This patch removes cfg_wait and cfg_wait_event which are pointer of
g_linux_wlan->cfg_event. No need to have pointer varialbe of it. Just use
g_linux_wlan->cfg_event.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
5cd6363385 staging: wilc1000: remove pointer variable of g_linux_wlan->txq_event
Remove variable txq_wait and txq_wait_event which are pointer varialbe
of g_linux_wlan->txq_event. No need to have extra pointer varialbe. Just use
g_linux_wlan->txq_event. Remove os_context.txq_wait_event, txq_wait and it's
related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
645db60e47 staging: wilc1000: use g_linux_wlan->rxq_cs for function arguemnt
Use mutex variable g_linux_wlan->rxq_cs instead of pointer varialbe.
No need to make extra pointer variable for the mutex. Remove
rxq_critical_section, rxq_lock and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
85e57567f2 staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it
Use spinlock variable g_linux_wlan->txq_spinlock itself instead of
g_wlan.txq_spinlock which is pointer of g_linux_wlan->txq_spinlock.
Delete os_context.txq_spin_lock, g_wlan.txq_spinlock and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
ef2b784c30 staging: wilc1000: remove function pointer os_debug
This patch removes os_debug and call linux_wlan_dbg function instead of
os_debug. Delete static from the linux_wlan_dbg.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:58 +02:00
Glen Lee
c0cadaa4ab staging: wilc1000: remove function pointer rx_complete
just call the function linux_wlan_rx_complete directly. No need for a pointer
to the functions. Remove rx_complete, wilc_wlan_net_func_t and net_func which
are not used anymore.
Finally remove static from the function linux_wlan_rx_complete.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:57 +02:00
Glen Lee
4417d3daf8 staging: wilc1000: remove function pointer mac_indicate
No need for a pointer to a function. Just call linux_wlan_mac_indicate.
Remove mac_indicate and also wilc_wlan_indicate_func_t since no members in it.
Variable indicate_func is not used so delete it and related codes.
Finally remove static from the function linux_wlan_mac_indicate.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:57 +02:00
Glen Lee
6361167037 staging: wilc1000: remove function pointer rx_indicate
This patch removes function pointer rx_indicate and call the function
frmw_to_linux directly.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:39:57 +02:00
Chaehyun Lim
498767e336 staging: wilc1000: remove WILC_OSW_INTERFACE_VER define
This patch removes WILC_OSW_INTERFACE_VER define that is not used
anywhere.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:38:30 +02:00
Chaehyun Lim
f23eb98b94 staging: wilc1000: move wilc_msgqueue.h include file
This patch moves wilc_msgqueue.h include file from wilc_oswrapper.h to
host_interface.c because message queue function as wilc_mq_create,
wilc_mq_send, wilc_mq_recv and wilc_mq_destroy are used only at
host_interface.c file.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:38:30 +02:00
Chaehyun Lim
947239070a staging: wilc1000: remove wilc_platform.h include file
This patch removes wilc_platform.h include file that is defined in
wilc_msgqueue.h file. After removing it, compilation error occurs so
that it is included two header files as <linux/semaphore.h> and
<linux/slab.h> at wilc_msgqueue.h and wilc_msgqueue.c

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:38:30 +02:00
Chaehyun Lim
6e8c37df4c staging: wilc1000: move struct Message and WILC_MsgQueueHandle
This patch moves struct Message and WILC_MsgQueueHandle from
wilc_platform.h to wilc_msgqueue.h because those two structures are used
only at wilc_msgqueue.c so that it is good to be defined at
wilc_msgqueue.h

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:38:30 +02:00
Glen Lee
70f52debbe staging: wilc1000: remove define DISABLE_PWRSAVE_AND_SCAN_DURING_IP
The driver will use define DISABLE_PWRSAVE_AND_SCAN_DURING_IP always. So remove
the ifdef line and define in Makefile.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:33:45 +02:00
Glen Lee
f446ebbeee staging: wilc1000: remove ifdef OLD_FPGA_BITFILE line
OLD_FPGA_BITFILE is not used in the driver. Just delete ifdef line and it's
related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:33:45 +02:00
Chaehyun Lim
74a443e094 staging: wilc1000: parse_network_info: remove s32Error
s32Error is defined, but not used anywhere in this function.
Then just delete it and return 0 at the end of this function.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:37 +02:00
Chaehyun Lim
a1f7f64244 staging: wilc1000: rename ParseNetworkInfo
This patch replaces ParseNetworkInfo with parse_network_info to avoid
camelcase.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:37 +02:00
Chaehyun Lim
dd322576bd staging: wilc1000: remove extern declaration
This patch removes extern declaration of *gpstrWlanOps in
coreconfigurator.c file. It is defined extern declaration in
wilc_wlan_if.h file and then is included in coreconfigurator.c file.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:37 +02:00
Chaehyun Lim
36cca3ba72 staging: wilc1000: remove useless comment
This patch removes useless comment in coreconfigurator.c

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:36 +02:00
Chaehyun Lim
d0a7fcc7e6 staging: wilc1000: replace kmalloc_array/memset with kcalloc
This patch replaces kmalloc_array followed by memset with kcalloc.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:36 +02:00
Chaehyun Lim
02cf299d0e staging: wilc1000: replace kmalloc/memcpy with kmemdup
This patch replaces kmalloc followed by memset and memcpy with kmemdup.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:36 +02:00
Chaehyun Lim
ef154414b2 staging: wilc1000: replace kmalloc with kzalloc
This patch replaces kmalloc with kzalloc because it is initialized by 0
immediately after allcating memory.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:36 +02:00
Chaehyun Lim
cf32c3c423 staging: wilc1000: rename SendConfigPkt
This patch replaces SendConfigPkt with send_config_pkt to aovid
camelcase.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:32:36 +02:00
Chaehyun Lim
c22dbd4bb8 staging: wilc1000: remove CoreConfiguratorDeInit
This patch removes CoreConfiguratorDeInit function, which is not doing
anything else except printing a PRINT_D message and returning a
s32Error. It is also removed the codes that is calling this function.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:31:19 +02:00
Javier Martinez Canillas
6a27224f96 staging: wicl1000: fix dereference after free in wilc_wlan_cleanup()
The wilc_wlan_cleanup() function iterates over the list of transmission
buffers freeing all of them and then iterates over the receive buffers
list to free all of them as well.

But on the receive loop a pointer to struct txq_entry_t is dereferenced
instead of the pointer to a struct rxq_entry_t. This not only causes a
dereference to a pointer already freed but also leaks the memory in the
struct rxq_entry_t buffer.

Also, the buffer is allocated when MEMORY_STATIC is not defined no when
MEMORY_DYNAMIC is defined. So use #ifndef MEMORY_STATIC instead as it's
done in the rest of the driver to avoid leaking the buffer memory.

Fixes: c5c77ba18e ("staging: wilc1000: Add SDIO/SPI 802.11 driver")
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-09-29 02:31:19 +02:00