openwrt/staging/blogic.git
9 years agostaging/rdma/hfi1: Adding counter resolutions for DataPortCounters
Andrea Lowe [Tue, 1 Dec 2015 20:38:26 +0000 (15:38 -0500)]
staging/rdma/hfi1: Adding counter resolutions for DataPortCounters

Changing the 32-bit reserved field in opa_port_data_counters_msg
to the new 'resolution' field. PMA will use resolutions to right-
shift values for LocalLinkIntegrity and LinkErrorRecovery when
computing the ErrorCounterSummary for a DataPortCounters request.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Andrea Lowe <andrea.l.lowe@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Consider VL15 MTU also when calculating the maximum VL MTU
Harish Chegondi [Tue, 1 Dec 2015 20:38:24 +0000 (15:38 -0500)]
staging/rdma/hfi1: Consider VL15 MTU also when calculating the maximum VL MTU

Currently, only MTUs of VLs 0-7 are checked when calculating the maximum VL
MTU which is used to set the port MTU capability in DCC_CFG_PORT_CONFIG CSR
This can cause a port MTU capability to be set to 0 if MTUs of VLs 0-7 is 0
This would affect the VL15 traffic.

Reviewed-by: Dean Luick <dean.luick@intel.com>
Reviewed-by: Arthur Kepner <arthur.kepner@intel.com>
Signed-off-by: Harish Chegondi <harish.chegondi@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: unknown frame messages are not errors
Dean Luick [Tue, 1 Dec 2015 20:38:23 +0000 (15:38 -0500)]
staging/rdma/hfi1: unknown frame messages are not errors

Change reported unknown frame messages into a counter.
These are informational, no errors.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: remove SPC freeze error messages
Dean Luick [Tue, 1 Dec 2015 20:38:22 +0000 (15:38 -0500)]
staging/rdma/hfi1: remove SPC freeze error messages

An SPC freeze is not an error.  Remove the messages.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Unexpected link up pkey values are not an error
Dean Luick [Tue, 1 Dec 2015 20:38:21 +0000 (15:38 -0500)]
staging/rdma/hfi1: Unexpected link up pkey values are not an error

Only warn when link up pkeys are not what we expect.  Also, allow
for the pkey to already be initialized.

Reviewed-by: Arthur Kepner <arthur.kepner@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Destroy workqueues if hfi1_register_ib_device() call returns error
Harish Chegondi [Tue, 1 Dec 2015 20:38:20 +0000 (15:38 -0500)]
staging/rdma/hfi1: Destroy workqueues if hfi1_register_ib_device() call returns error

Currently, if hfi1_register_ib_device() call is unsuccessful, workqueues
are not being destroyed before bailing out. This patch fixes this issue.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Harish Chegondi <harish.chegondi@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Adds software counters for bitfields within various error status...
Joel Rosenzweig [Tue, 1 Dec 2015 20:38:19 +0000 (15:38 -0500)]
staging/rdma/hfi1: Adds software counters for bitfields within various error status fields

Provides error status counters for CceErrStatus, Send*ErrStatus,
RcvErrStatus and MISC_ERR_STATUS

Reviewed-by: Mitko Haralanov <mitko.haralanov@intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Correctly limit VLs against SDMA engines
Dean Luick [Tue, 1 Dec 2015 20:38:18 +0000 (15:38 -0500)]
staging/rdma/hfi1: Correctly limit VLs against SDMA engines

Correctly reduce the number of VLs when limited by the number
of SDMA engines.

The hardware has multiple egress mechanisms, SDMA and pio, and multiples
of those. These mechanisms are chosen using the VL (8)

The fix corrects a panic issue with one of the platforms that doesn't have
enough SDMA (4) mechanisms for the typical number of VLs.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Add a credit push on diagpkt allocate fail
Dean Luick [Tue, 1 Dec 2015 20:38:17 +0000 (15:38 -0500)]
staging/rdma/hfi1: Add a credit push on diagpkt allocate fail

When sending a diagnostic packet, if the send context does not
have enough room, force a credit return and try again.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Extend quiet timeout
Dean Luick [Tue, 1 Dec 2015 20:38:16 +0000 (15:38 -0500)]
staging/rdma/hfi1: Extend quiet timeout

The longest quiet timeout is now 6s.  Extend the driver wait to 6s.

The driver wasn't following our internal specification: 6 seconds.
This patch corrects that issue.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Add one-time LCB reset
Dean Luick [Tue, 1 Dec 2015 20:38:15 +0000 (15:38 -0500)]
staging/rdma/hfi1: Add one-time LCB reset

Add one-time LCB reset on driver load to pre-emptively work
around any LCB power cycle issues.

Reviewed-by: Easwar Hariharan <easwar.hariharan@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Fix qp.h comments
Kaike Wan [Tue, 1 Dec 2015 20:38:13 +0000 (15:38 -0500)]
staging/rdma/hfi1: Fix qp.h comments

This patch fixes a few incorrect header file comments in qp.h

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Add aeth name syndrome decode
Dean Luick [Tue, 1 Dec 2015 20:38:12 +0000 (15:38 -0500)]
staging/rdma/hfi1: Add aeth name syndrome decode

Add aeth name syndrome decode to enhance debugging.

The IBTA RC ACK contains an ACK extended transport header.

Part of that header is the syndrome field that qualifies the RC ACK as an
ACK, NAK, or RNR NAK.

Without the patch here is the syndrome decode:
aeth syn 0x00

Here is the decode with the fix:
aeth syn 0x00 ACK

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Decode CNP opcode
Dean Luick [Tue, 1 Dec 2015 20:38:11 +0000 (15:38 -0500)]
staging/rdma/hfi1: Decode CNP opcode

Add CNP opcode decode.

Prior to this patch the trace appeared like:

<idle>-0     [001] d.h. 94062.578932: input_ibhdr: [0000:05:00.0] vl 0
lver 0 sl 0 lnh 2,LRH_BTH dlid 0003 len 6 slid 0001 op 0x80,0x80 se 0 m 0
pad 0 tver 0 pkey 0x8001 f 0 b 0 qpn 0x001234 a 0 psn 0x00000000

Note the "op 0x80,0x80".

With this patch:

<idle>-0     [000] d.h. 233975.912059: input_ibhdr: [0000:05:00.0] vl 0
lver 0 sl 0 lnh 2,LRH_BTH dlid 0015 len 6 slid 0014 op 0x80,CNP se 0 m 0
pad 0 tver 0 pkey 0x8001 f 0 b 0 qpn 0x001234 a 0 psn 0x00000000

Note the "op 0x80,CNP"

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Support alternate firmware names
Dean Luick [Tue, 1 Dec 2015 20:38:10 +0000 (15:38 -0500)]
staging/rdma/hfi1: Support alternate firmware names

Add support for an automatic fallback for firmware names to support
debug-signed and production-signed firmware images.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Eliminate WARN_ON when VL is invalid
Ira Weiny [Sat, 21 Nov 2015 00:43:47 +0000 (19:43 -0500)]
staging/rdma/hfi1: Eliminate WARN_ON when VL is invalid

sdma_select_engine_vl only needs to protect itself from an invalid VL.
Something higher up the stack should be warning the user when they try
to use an SL which maps to an invalid VL.

Reviewed-by: Dean Luick <dean.luick@intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Reviewed-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Ira Weiny <iweiny@gmail.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Fix error in hfi1 driver build
Jubin John [Fri, 20 Nov 2015 23:13:08 +0000 (18:13 -0500)]
staging/rdma/hfi1: Fix error in hfi1 driver build

hfi1 driver build fails with the following error:
In function ‘handle_receive_interrupt’:
error: implicit declaration of function ‘skip_rcv_packet’ [-Werror=implicit-function-declaration]
    last = skip_rcv_packet(&packet, thread);
    ^
This is due to the inclusion of the skip_rcv_packet() in the
CONFIG_PRESCAN_RXQ ifdef block. This function is independent of
CONFIG_PRESCAN_RXQ and should be outside this block.

Fixes: 82c2611daaf0 ("staging/rdma/hfi1: Handle packets with invalid RHF on context 0")
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Adjust EPROM partitions, add EPROM commands
Dean Luick [Tue, 17 Nov 2015 02:59:35 +0000 (21:59 -0500)]
staging/rdma/hfi1: Adjust EPROM partitions, add EPROM commands

Add a new EPROM partition, adjusting partition placement.

Add EPROM range commands as a supserset of the partition
commands.  Remove old partition commands.

Enhance EPROM erase, creating a range function and using the
largest erase (sub) commands when possible.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Read EFI variable for device description
Dean Luick [Tue, 17 Nov 2015 02:59:34 +0000 (21:59 -0500)]
staging/rdma/hfi1: Read EFI variable for device description

Read an EFI variable for the device description.  Create the
infrastructure for additional variable reads.

Reviewed-by: Easwar Hariharan <easwar.hariharan@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: rework is_a0() and is_bx()
Mike Marciniszyn [Tue, 17 Nov 2015 02:59:29 +0000 (21:59 -0500)]
staging/rdma/hfi1: rework is_a0() and is_bx()

The current is_bx() will incorrectly match on other steppings.

is_a0() is removed in favor of is_ax().

Reviewed-by: Mark Debbage <mark.debbage@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Add space between concatenated string elements
Jubin John [Tue, 17 Nov 2015 02:59:27 +0000 (21:59 -0500)]
staging/rdma/hfi1: Add space between concatenated string elements

Space between concantenated string elements is more human
readable and fixes the checkpatch issue:
CHECK: Concatenated strings should use spaces between elements

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Remove rcv bubbles code
Ira Weiny [Tue, 17 Nov 2015 02:59:26 +0000 (21:59 -0500)]
staging/rdma/hfi1: Remove rcv bubbles code

Rcv bubbles were improperly calculated for HFIs, fix that here.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Reviewed-by: Arthur Kepner <arthur.kepner@intel.com>
Signed-off-by: Ira Weiny <iweiny@gmail.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: remove RxCtxRHQS from hfi1stats
Vennila Megavannan [Tue, 17 Nov 2015 02:59:25 +0000 (21:59 -0500)]
staging/rdma/hfi1: remove RxCtxRHQS from hfi1stats

Removed the RxCtxRHQS counter being dumped into dev_cntrs

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Vennila Megavannan <vennila.megavannan@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/rdma/hfi1: Fix downgrade race
Dean Luick [Tue, 17 Nov 2015 02:59:24 +0000 (21:59 -0500)]
staging/rdma/hfi1: Fix downgrade race

A link downgrade can race with link up. Avoid the race
in two ways. First, by having the downgrade application logic
take the link state mutex for all of its checking. Second, by
waiting for the link to move out of the going up state.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Jubin John <jubin.john@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agoandroid: unconditionally remove callbacks in sync_fence_free()
Dmitry Torokhov [Tue, 15 Dec 2015 01:34:08 +0000 (17:34 -0800)]
android: unconditionally remove callbacks in sync_fence_free()

Using fence->status to determine whether or not there are callbacks
remaining on the sync_fence is racy since fence->status may have been
decremented to 0 on another CPU before fence_check_cb_func() has
completed.  By unconditionally calling fence_remove_callback() for each
fence in the sync_fence, we guarantee that each callback has either
completed (since fence_remove_callback() grabs the fence lock) or been
removed.

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Dmitry Torokhov <dtor@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/android/sync: add sync_fence_create_dma
Maarten Lankhorst [Fri, 11 Dec 2015 13:11:50 +0000 (13:11 +0000)]
staging/android/sync: add sync_fence_create_dma

This allows users of dma fences to create a android fence.

v2: Added kerneldoc. (Tvrtko Ursulin).

v4: Updated comments from review feedback my Maarten.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: devel@driverdev.osuosl.org
Cc: Riley Andrews <riandrews@android.com>
Cc: Arve Hjønnevåg <arve@android.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Tested-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging/android/sync: Support sync points created from dma-fences
Maarten Lankhorst [Fri, 11 Dec 2015 13:11:49 +0000 (13:11 +0000)]
staging/android/sync: Support sync points created from dma-fences

Debug output assumes all sync points are built on top of Android sync points
and when we start creating them from dma-fences will NULL ptr deref unless
taught about this.

v4: Corrected patch ownership.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: devel@driverdev.osuosl.org
Cc: Riley Andrews <riandrews@android.com>
Cc: Arve Hjønnevåg <arve@android.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: android: ashmem.c: destroy slabs when init fails
Wenwei Tao [Tue, 8 Dec 2015 16:15:52 +0000 (00:15 +0800)]
staging: android: ashmem.c: destroy slabs when init fails

when ashmem init fails, destroy the slabs, leave
no garbage.

Signed-off-by: Wenwei Tao <ww.tao0320@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agoarm64: dts: Add dts files to enable ION on Hi6220 SoC.
Chen Feng [Mon, 12 Oct 2015 07:00:17 +0000 (15:00 +0800)]
arm64: dts: Add dts files to enable ION on Hi6220 SoC.

Add ION node to enable ION on hi6220 SoC platform

Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
Signed-off-by: Yu Dongbin <yudongbin@hisilicon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: android: ion: Add ion driver for Hi6220 SoC platform
Chen Feng [Mon, 12 Oct 2015 07:00:16 +0000 (15:00 +0800)]
staging: android: ion: Add ion driver for Hi6220 SoC platform

Add ion support for hi6220 SoC platform.

Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
Signed-off-by: Yu Dongbin <yudongbin@hisilicon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agodocs: dts: Add documentation for hi6220 SoC ION node
Chen Feng [Mon, 12 Oct 2015 07:00:15 +0000 (15:00 +0800)]
docs: dts: Add documentation for hi6220 SoC ION node

Documentation for hi6220 SoC ION node

Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
Signed-off-by: Yu Dongbin <yudongbin@hisilicon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: bug fix on memory free
Glen Lee [Mon, 21 Dec 2015 05:18:50 +0000 (14:18 +0900)]
staging: wilc1000: bug fix on memory free

Set tx_buffer to NULL not to free again the memory that is already freed,
which could cause system crash when device is failed.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: set hif_drv before it is used
Glen Lee [Mon, 21 Dec 2015 05:18:49 +0000 (14:18 +0900)]
staging: wilc1000: set hif_drv before it is used

We are using hif_drv of vif, so it needs to be set before it is used.
Set hif_drv to vif->hifdrv soon after it is allocated.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove wilc of struct host_if_drv
Glen Lee [Mon, 21 Dec 2015 05:18:48 +0000 (14:18 +0900)]
staging: wilc1000: remove wilc of struct host_if_drv

vif has wilc in it's members so no need to have wilc in host_if_drv.
It is redundant so just remove it and use wilc of vif.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove drv of struct host_if_msg
Glen Lee [Mon, 21 Dec 2015 05:18:47 +0000 (14:18 +0900)]
staging: wilc1000: remove drv of struct host_if_msg

This patch remove drv of struct host_if msg and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove used functions
Glen Lee [Mon, 21 Dec 2015 05:18:46 +0000 (14:18 +0900)]
staging: wilc1000: remove used functions

This patch remove unused functions add_handler_in_list and
remove_handler_in_list, and it's related global variable wfidrv_list and codes.
label fail_timer_2 and it's codes are removed since label is not used anymore.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: change join_req_drv type and it's name
Glen Lee [Mon, 21 Dec 2015 05:18:45 +0000 (14:18 +0900)]
staging: wilc1000: change join_req_drv type and it's name

To use wilc_get_vif_idx instead of the last get_id_from_handler, join_req_drv
needs to be changed it's type with wilc_vif and name as well.
As a result, get_id_from_handler is not used anymore, so remove it.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: wilc_set_wfi_drv_handler: pass vif index
Glen Lee [Mon, 21 Dec 2015 05:18:44 +0000 (14:18 +0900)]
staging: wilc1000: wilc_set_wfi_drv_handler: pass vif index

Pass index of vif instead of hif_drv. wilc_get_vif_idx is used to get correct
index of vif.
In the handler function handle_set_wfi_drv_handler, use vif instead of hif_drv,
and use hif_drv_handler->handler instead of hif_drv when deinitialize wilc
device.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: use vif index to communicate with wilc device
Glen Lee [Mon, 21 Dec 2015 05:18:43 +0000 (14:18 +0900)]
staging: wilc1000: use vif index to communicate with wilc device

We now have vif index in all functions related with host interface thread.
wilc_get_vif_idx and wilc_get_vif_from_idx are added to get id and vif
respectively.
Relace get_id_from_handler with wilc_get_vif_idx and get_handler_from_id with
wilc_get_vif_from_idx. Remove unused function get_handler_from_id as well.
We get vif where wilc_get_vif_from_idx is called, so pass vif to msg.vif.

There are two get_id_from_handler left. They will be removed in later patch.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: pass struct wilc
Glen Lee [Mon, 21 Dec 2015 05:18:42 +0000 (14:18 +0900)]
staging: wilc1000: pass struct wilc

Pass struct wilc to the following functions. The functions need wilc to
get proper vif using id from wilc device.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: take vif instead of drv in hostIFthread
Glen Lee [Mon, 21 Dec 2015 05:18:41 +0000 (14:18 +0900)]
staging: wilc1000: take vif instead of drv in hostIFthread

In the first patch, we sent vif to hostIFthread. we can use vif instead of
drv in the all functions which handle the commands from cfg operations.
Change first argument host_if_drv with wilc_vif and use hif_drv of wilc_vif.
Pass vif to the functions as well.
In case of timer callback functions, set vif to the data and use vif instead
of hif_drv.
Lastly, initialize u32RcvdAssocRespInfoLen since changing hif_drv with vif
causes one uninitialied build warning.
Now we have vif that currently being used so we can use interface index of
wilc_vif to send to wilc device.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove argument hif_drv
Glen Lee [Mon, 21 Dec 2015 05:18:40 +0000 (14:18 +0900)]
staging: wilc1000: remove argument hif_drv

In previous patch we add new argument vif which has hif_drv in it's member.
Therefore, no need to pass hif_drv in those functions. Remove argument
struct host_if_drv and use hif_drv of vif.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: pass vif to hostIFthread
Glen Lee [Mon, 21 Dec 2015 05:18:39 +0000 (14:18 +0900)]
staging: wilc1000: pass vif to hostIFthread

We will pass vif, which is currently being used as net_device, instead of
hif_dev. This is the first step to use index of vif to pass to the driver.
Add new argument vif to all the functions that send message to hostIFthread and
set vif to msg.vif. As a result, hostIfthread will get vif.
In later patch, we will remove drv of host_if_msg and use vif instead of it.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove duplicate netdev
Glen Lee [Mon, 21 Dec 2015 05:18:38 +0000 (14:18 +0900)]
staging: wilc1000: remove duplicate netdev

There are two net_device pointer which is the same because two structures
are merged into wilc_vif in previous patch. Remove wilc_netdev and change
with ndev.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: change vif to pointer to refence real private data
Glen Lee [Mon, 21 Dec 2015 05:18:37 +0000 (14:18 +0900)]
staging: wilc1000: change vif to pointer to refence real private data

vif of struct has it's own memory which is not necessary because we have
allocated vif from netdev_priv.
Change vif to pointer type and assign vif which is netdev private data.
Change it's operator on related codes as well.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: move perInterface_wlan_t to wilc_vif
Glen Lee [Mon, 21 Dec 2015 05:18:36 +0000 (14:18 +0900)]
staging: wilc1000: move perInterface_wlan_t to wilc_vif

perInterface_wlan_t and wilc_vif are all about interface control informations.
We will combine those two structures and maintain as one network interface
control information.
Move all the members of perInterface_wlan_t to wilc_vif and remove the
structure. Rename perInterace_wlan_t to wilc_vif and rename variable name nic
to vif which is proper name for it.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove unneeded extern variable
Glen Lee [Mon, 21 Dec 2015 05:18:35 +0000 (14:18 +0900)]
staging: wilc1000: remove unneeded extern variable

This patch removes unnedded extern variable WILC_WFI_devs[] which is not used.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove unused files
Glen Lee [Mon, 21 Dec 2015 05:18:34 +0000 (14:18 +0900)]
staging: wilc1000: remove unused files

This patch removes linux_wlan_spi.[ch] which are not used anymore.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_spi.c: move all the codes to wilc_spi.c
Glen Lee [Mon, 21 Dec 2015 05:18:33 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_spi.c: move all the codes to wilc_spi.c

This patch moves all the codes in linux_wlan_spi.c to wilc_spi.c to make
one spi module. Make wilc_spi_tx, wilc_spi_rx and wilc_spi_tx_rx static
functions. Remove function declaration in linux_wlan_spi.h, which is unnedded
now. No modification has been made inside the codes.
linux_wlan_spi.[ch] will be remove in the next patch.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove unneeded function
Glen Lee [Mon, 21 Dec 2015 05:18:32 +0000 (14:18 +0900)]
staging: wilc1000: remove unneeded function

wilc_spi_init in linux_wlan_spi.c is unneeded. It just return true. Rename
_wilc_spi_init in wlan_spi.c to wilc_spi_init.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: rename spi function names
Glen Lee [Mon, 21 Dec 2015 05:18:31 +0000 (14:18 +0900)]
staging: wilc1000: rename spi function names

There are several similar function names, such as wilc_spi_write and
_wilc_spi_write. It is likely to be confused after merging linux_wlan_spi.c and
wilc_spi.c, so rename following functions properly.
Rename wilc_spi_write to wilc_spi_tx, wilc_spi_read to wilc_spi_rx,
wilc_spi_write_read to wilc_spi_tx_rx, _wilc_spi_write to wilc_spi_write,
_wilc_spi_read to wilc_spi_read.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove unused files
Glen Lee [Mon, 21 Dec 2015 05:18:30 +0000 (14:18 +0900)]
staging: wilc1000: remove unused files

This patch removes linux_wlan_sdio.[ch] which is not used anymore.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_sdio.c: move all the codes to wilc_sdio.c
Glen Lee [Mon, 21 Dec 2015 05:18:29 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_sdio.c: move all the codes to wilc_sdio.c

To Combine linux_wlan_sdio.c and wilc_sdio.c as one file, move all the codes
in linux_wlan_sdio.c to wilc_sdio.c, and make functions static only.
No Modification has not been made except static, just moved them.
Function declaration in linux_wlan_sdio.h is needless, so just remove them.
linux_wlan_sdio.[ch] will be deleted in the next patch.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_sdio_probe: use return value
Glen Lee [Mon, 21 Dec 2015 05:18:28 +0000 (14:18 +0900)]
staging: wilc1000: linux_sdio_probe: use return value

Return ret from wilc_netdev_init instead of -1 for proper error handling.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_spi.c: return linux error value
Glen Lee [Mon, 21 Dec 2015 05:18:27 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_spi.c: return linux error value

return linux error value instead of 0 or 1 and use -EINVAL. Related codes
also changed together.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: wilc_deinit(): fixes inconsistent returns
Leo Kim [Mon, 21 Dec 2015 05:18:26 +0000 (14:18 +0900)]
staging: wilc1000: wilc_deinit(): fixes inconsistent returns

This patch fixes the warning reported by smatch.
 - wilc_deinit() warn: inconsistent returns 'sem:&hif_drv->sem_cfg_values'

This semaphore protect a cfg_values variable but cfg_values variables was not
used here. So, just remove this line.

Signed-off-by: Leo Kim <leo.kim@atmel.com>
Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: wilc_init(): fixes inconsistent returns
Leo Kim [Mon, 21 Dec 2015 05:18:25 +0000 (14:18 +0900)]
staging: wilc1000: wilc_init(): fixes inconsistent returns

This patch fixes the warning reported by smatch.
 - wilc_init() warn: inconsistent returns 'sem:&hif_drv->sem_cfg_values'

No need to up the sema here since down was not called before get here.

Signed-off-by: Leo Kim <leo.kim@atmel.com>
Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: fixes potential null dereference 'wid.val'
Leo Kim [Mon, 21 Dec 2015 05:18:24 +0000 (14:18 +0900)]
staging: wilc1000: fixes potential null dereference 'wid.val'

This patch fixes the error reported by smatch.
 - Handle_ListenStateExpired() error: potential null dereference 'wid.val'
If kmalloc failed, referenced to a NULL pointer.

Signed-off-by: Leo Kim <leo.kim@atmel.com>
Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: replace explicit NULL comparisons with !
Leo Kim [Mon, 21 Dec 2015 05:18:23 +0000 (14:18 +0900)]
staging: wilc1000: replace explicit NULL comparisons with !

This patch replace explicit NULL comparison with ! operator to simplify code.
Reported by checkpatch.pl for Comparison to NULL could be written !XXX" or "XXX".

Signed-off-by: Leo Kim <leo.kim@atmel.com>
Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_spi.c: fix NULL comparison style
Glen Lee [Mon, 21 Dec 2015 05:18:22 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_spi.c: fix NULL comparison style

This patch fixes checkpatch CHECK:comparison to NULL could be written "b".

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_spi.c: add a blank
Glen Lee [Mon, 21 Dec 2015 05:18:21 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_spi.c: add a blank

This patch fixes checkpatch warning: missing a blank like after declarations.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_spi.c: remove braces for single statement
Glen Lee [Mon, 21 Dec 2015 05:18:20 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_spi.c: remove braces for single statement

This patches fixes checkpatch warning: braces {} are not necessary for single
statement blocks. Remove some comments also.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: wilc_sdio_cmd52: return linux error value
Glen Lee [Mon, 21 Dec 2015 05:18:19 +0000 (14:18 +0900)]
staging: wilc1000: wilc_sdio_cmd52: return linux error value

This patch changes return value with linux error value, not 1 or 0.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: wilc_sdio_cmd53: return linux error value
Glen Lee [Mon, 21 Dec 2015 05:18:18 +0000 (14:18 +0900)]
staging: wilc1000: wilc_sdio_cmd53: return linux error value

This patch changes return value with linux error value, not 1 or 0.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_sdio.c: remove braces
Glen Lee [Mon, 21 Dec 2015 05:18:17 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_sdio.c: remove braces

This patch fixes checkpatch warning braces{} are not necessary for single
statment blocks.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: linux_wlan_sdio.c: fix checkpatch warning line over 80
Glen Lee [Mon, 21 Dec 2015 05:18:16 +0000 (14:18 +0900)]
staging: wilc1000: linux_wlan_sdio.c: fix checkpatch warning line over 80

This patch fixes checkpatch warning line over 80 characters.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove unused functions
Glen Lee [Mon, 21 Dec 2015 05:18:15 +0000 (14:18 +0900)]
staging: wilc1000: remove unused functions

This patch removes unused function pointer hif_sync and hif_clear_int, and
removes it's related functions sdio_clear_int, sdio_sync, wilc_spi_clear_int
and wilc_spi_sync.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove wilc_debug_func of hif_init
Glen Lee [Mon, 21 Dec 2015 05:18:14 +0000 (14:18 +0900)]
staging: wilc1000: remove wilc_debug_func of hif_init

This patch removes wilc_debug_func of hif_init and remove it's related
functions as well because it is not used anymore.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: sdio/spi: use device print api instead of custom one
Glen Lee [Mon, 21 Dec 2015 05:18:13 +0000 (14:18 +0900)]
staging: wilc1000: sdio/spi: use device print api instead of custom one

This patch use device print api instead of driver defined print. Remove
varialbe dPrint as well. String "[wilc sdio]" and "[wilc spi]" are also removed
from all the print statment if exist because it shows which device the message
is related to.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: move all of wilc_wlan_dev_t to struct wilc
Glen Lee [Mon, 21 Dec 2015 05:18:12 +0000 (14:18 +0900)]
staging: wilc1000: move all of wilc_wlan_dev_t to struct wilc

linux_wlan.c and wilc_wlan.c was separated into two part at the beginning
to support various platforms. They are in charge of send/receive control and
packet data, so they will be merged into one file wlan.c later.
First of all, wilc_wlan_dev_t which is used as global variable of wilc_wlan.c
will be moved into struct wilc.
This patch moves all members of wilc_wlan_dev_t to struct wilc and use wilc
instead of g_wlan. Finally remove wilc_wlan_dev_t and g_wlan.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove unused varialbe tx_buffer_offset
Glen Lee [Mon, 21 Dec 2015 05:18:11 +0000 (14:18 +0900)]
staging: wilc1000: remove unused varialbe tx_buffer_offset

This patch removes unused variable tx_buffer_offset of wilc_wlan_dev_t.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove io_type of wilc_wlan_dev_t
Glen Lee [Mon, 21 Dec 2015 05:18:10 +0000 (14:18 +0900)]
staging: wilc1000: remove io_type of wilc_wlan_dev_t

io_type of wilc_wlan_dev_t is unneeded, we can use io_type of struct wilc.
Remove io_type of wilc_wlan_dev_t and use io_type of wilc.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: wilc_wlan.c: remove hif_func of wilc_wlan_dev_t
Glen Lee [Mon, 21 Dec 2015 05:18:09 +0000 (14:18 +0900)]
staging: wilc1000: wilc_wlan.c: remove hif_func of wilc_wlan_dev_t

hif_func of wilc_wlan_dev_t is duplicate because we have same struct
wilc_hif_func ops of struct wilc which is available in wilc_wlan.c.
Rename ops of struct wilc with hif_func and remove hif_func of wilc_wlan_dev_t,
and use wilc->hif_func instead of g_wlan.hif_func in all functions.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: use kernel define byte order macros
Glen Lee [Mon, 21 Dec 2015 05:18:08 +0000 (14:18 +0900)]
staging: wilc1000: use kernel define byte order macros

This patch removes define BIG_ENDIAN and use kernel define byte order macros
instead of swap itself. Remove unused BYTE_SWAP macro and __CHECK_ENDIAN__
in Makefile also.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: rename index to tcp_pending_ack_idx
Glen Lee [Mon, 21 Dec 2015 05:18:07 +0000 (14:18 +0900)]
staging: wilc1000: rename index to tcp_pending_ack_idx

This patch renames "index" of struct txq_entry_t to tcp_pending_ack_idx
since this name could be confused index of txq_entry_t. It is index of
tcp pending ack.

It fixes 8e55639d066f ("staging: wilc1000: rename tcp_PendingAck_index
of struct txq_entry_t")

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove wilc memory allocation config
Glen Lee [Mon, 21 Dec 2015 05:18:06 +0000 (14:18 +0900)]
staging: wilc1000: remove wilc memory allocation config

This patch remove memory allocation options in Kconfig. It was used a long time
ago to aquire memory, which we will not use this config anymore.
Remove it's config, related define and codes as well. We will take
PREALLOCATE_AT_LOADING_DRIVER as it is default.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: wilc1000: remove define COMPLEMENT_BOOT
Glen Lee [Mon, 21 Dec 2015 05:18:05 +0000 (14:18 +0900)]
staging: wilc1000: remove define COMPLEMENT_BOOT

This patch removes define COMPLEMENT_BOOT in Makefile. The feature was removed
by commit b46d68825c2d ('staging: wilc1000: remove COMPLEMENT_BOOT') but
the define was not removed. So remove completely.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: rename pci171x_ai_*()
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:26 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: rename pci171x_ai_*()

Rename these functions so they have namespace associated with the driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: rename pci171x_ai_{cmd,cmdtest}()
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:25 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: rename pci171x_ai_{cmd,cmdtest}()

Rename these functions so they have namespace associated with the driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: fix ai (*insn_read)
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:24 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: fix ai (*insn_read)

An (*insn_read) can only happen if the subdevice is in a non-busy state,
i.e. an async command is not running. The board reset and subdevice
(*cancel) will ensure that the control bits (devpriv->ctrl) are already
cleared.

The (*insn_read) only needs to enable the software trigger before reading
samples. It should also disable the software trigger when done. Fix the
(*insn_read) to do this.

For aesthetics, rename the function so it has namespace associated with
the driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: fix counter 0 internal clock source
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:23 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: fix counter 0 internal clock source

There are a number of descrepencies in the various manuals for the boards
that this driver supports. Some show a 10 MHz clock for counters 1 and 2
others show a 1 MHz clock. Counter 0 can use either a div 10 of that clock
or an external clock (up to 10 MHz).

Currently this driver initializes counters 1 and 2 with a 10 MHz clock.
For consistency, return 1 MHz (10 MHz/10) for counter 0 when the user
queries the internal clock source with INSN_CONFIG_GET_CLOCK_SRC.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: tidy up pci1710_reset()
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:22 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: tidy up pci1710_reset()

Change the return type to void, this function always succeeds and the
caller does not check the return value anyway.

Fix the initial programming of the control register. The SW bit enables
the software trigger and should not be set here. Setting CNT0 selects the
external clock source for counter 0 (the user counter). It makes more
sense to select the internal 1 MHz clock.

Remove the unnecessary initialization of the private data members. This
function is only called during the (*auto_attach) after the private
data was kzalloc'ed.

Remove the redundant clearing of the A/D FIFO and pending interrupts.
Just do it once.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: ai (*cancel) should not enable software trigger
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:21 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: ai (*cancel) should not enable software trigger

The (*cancel) operation should do just that. Remove the setting of the SW bit
which enables the software trigger.

For aesthetics, rename the function so it has namespace associated with the
driver and add a couple comments.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: post increment 'subdev' in (*auto_attach)
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:20 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: post increment 'subdev' in (*auto_attach)

For aesthetics, post-increment the 'subdev' index when used to get a
comedi_subdevice pointer instead of incrementing it after the subdevice
is initialized.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: tidy up analog input subdev_flags
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:19 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: tidy up analog input subdev_flags

Remove the SDF_COMMON flag, the analog reference is not programmable and
the default aref (AREF_GROUND -> SDF_GROUND) provides adequate information
about the reference.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: tidy up analog output subdev_flags
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:18 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: tidy up analog output subdev_flags

Remove the SDF_COMMON flag, the analog reference is not programmable and
the default aref (AREF_GROUND -> SDF_GROUND) provides adequate information
about the reference.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: support external analog output reference
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:17 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: support external analog output reference

The analog outputs can use an external reference to create the D/A output
range. Add an entry to the comedi_lrange table for it and modify the
(*insn_write) to support it.

Note that the D/A output range is 0 to +Vref with a -Vref. The comedi_lrange
does not include the sign of the range. It simmply allows the user to convert
between the 12-bit samples values (0x0000 - 0x0fff) and a physical value (0.0
to 1.0) using the comedilib comedi_to_phys() and comedi_from_phys() functions.
A physical value of 0.0 would actually be 0V with a -Vref and -V with a +Vref
and 1.0 would be +V with a -Vref and 0V with a -Vref. Ths user will need to
work this out but at least they can now use the external reference.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: rename pci171x_ao_insn_write()
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:16 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: rename pci171x_ao_insn_write()

Rename this function so it has namespace associated with the driver.

For aesthetics, move the function so it is located in the middle of
the analog input support functions.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: rename pci171x_d[io]_insn_bits
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:15 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: rename pci171x_d[io]_insn_bits

Rename these functions so they have namespace associated with the driver.

For aesthetics, move the functions so they are not located in the middle
of the analog input/output support functions.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: rename pci171x_insn_counter_config()
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:14 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: rename pci171x_insn_counter_config()

Rename this function so it has namespace associated with the driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: rename interrupt_service_pci1710()
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:13 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: rename interrupt_service_pci1710()

Rename this function so it has namespace associated with the driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: tidy up boardinfo definition
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:12 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: tidy up boardinfo definition

Remove the unnecessary comments and rename the 'rangelist_ai' member for
aesthetics.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: remove 'has_large_fifo' and 'has_diff_ai' boardinfo
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:11 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: remove 'has_large_fifo' and 'has_diff_ai' boardinfo

The pci1711/31 boards are the only ones that have a smaller FIFO (1K vs 4K) and
single-ended analog inputs (no differential).

Replace the 'has_large_fifo' and 'has_diff_ai' members of the boardinfo with
'is_pci1711' and use that to determine how to initialize the analog input
subdev_flags as well as the private data 'max_samples'.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: remove 'has_di_do' boardinfo
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:10 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: remove 'has_di_do' boardinfo

This member of the boardinfo isn't really necessary. All the boards
except the pci1713 have 16 digital inputs and 16 digital outputs.

There is already a 'is_pci1713' member in the boardinfo so that can
be used to determine the subdevices for the digital inputs and outputs
need to be allocated and initialized.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: remove 'n_aichan' boardinfo
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:09 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: remove 'n_aichan' boardinfo

This member of the boardinfo isn't really necessary. All the boards
have analog inputs, the pci1713 has 32 channels the rest have 16
channels.

There is already a 'is_pci1713' member in the boardinfo so that can
be used to determine the number of channels for the analog input
subdevice.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: define the mux control register bits
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:08 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: define the mux control register bits

For aesthetics, define some macros to set the bits in the mux control
register. Also, rename the 'mux_ext' member of the private data.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: refactor ai range programming
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:07 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: refactor ai range programming

The gain codes used to program the analog output range are currently
stored in const char arrays. The values look a bit "magic" and it's
not clear how they associate with the comedi_lrange without looking
through user manuals.

Refactor the ai range programming to clarify the driver and remove
the magic numbers. Also, refine the bits in the range register that
set the differential and unipolar modes.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: don't "reset" board when detaching
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:06 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: don't "reset" board when detaching

Currently this driver calls pci1710_reset() during the (*detach) of
the driver. That function does the following:

  1) program the control register to stop any operations
  2) clears the analog input FIFO
  3) clears any pending interrupts
  4) sets all the analog output channels to unipolar 5V range and 0V output
  5) sets all the digital outputs to 0V

Before detaching the comedi core will (*cancel) any running async commands.
This will handle 1-3 above.

Depending on the application, it might not be safe to reset the analog and
digital outputs when the driver is detached.

Remove the board reset when detaching and just use comedi_pci_detach()
directly for the driver (*detach).

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: remove 'has_counter' boardinfo
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:05 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: remove 'has_counter' boardinfo

All the boards supported by this driver have a 8254 counter. Channels
1 and 2 are used to create the cascaded 32-bit analog input pacer.
Counter 0 is available for the user on all the boards except the PCI-1713.

Remove the 'has_counter' boardinfo and use the 'is_pci1713' boardinfo to
determine if the user counter subdevice needs to be allocated and
initialized.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agostaging: comedi: adv_pci1710: remove 'has_irq' boardinfo
H Hartley Sweeten [Fri, 13 Nov 2015 18:11:04 +0000 (11:11 -0700)]
staging: comedi: adv_pci1710: remove 'has_irq' boardinfo

All the boards supported by this driver can use an interrupt. Remove
the unnecessary boardinfo.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>