Merge tag 'iio-for-4.19c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
Jonathan writes:
Third set of IIO new device support, cleanups and features for the 4.19 cycle.
This is a somewhat sneaky late pull request given Linus has announced
a likely 1 week delay. If it is too late I'll resend after the merge
window. I merged in the fixes branch as those are primarily around
things queued for the merge window.
Particulary good to see the output of our Himanshu Jha, a GSOC student
who developed the bme680 driver.
New device support:
* bme680 gas sensor (with temperature, humidity and pressure)
- new driver to support this device
* vcn4000
- support vcnl4200 (lots of rework to allow this)
- ids added for VCNL4010 and VCNL4020 sensors
New features:
* ad9523
- support the various external signal options via gpios.
Cleanups and fixes
* ad_sigma_delta
- unsigned long for a timeout.
* ad9523
- fix a wrong return value that was indicating successful write failed
and might lead to an infinite loop.
* si1133
- fix an impossible test.
- fix an uninitialsed variable by reading from the device in all paths.
* xilinx xadc
- check for return values in clk related functions
- limit the pcap clock frequency to supported ranges.
- stash the irq to avoid calling platform_get_irq from the remove path.
- ensure the irq is actually requested before we enable the hardware to
output it.
Revert "staging: gasket: page table: hold references to device and pci_dev"
gasket_free_dev() is called only from driver PCI probe and remove
function. It is guaranteed that that pci_dev structure is not going
anywhere during that time; there is no need to take this additional
reference.
staging: gasket: core: use bool type for ns_capable result
When gasket core was converted from using capable() to use ns_capable()
instead, the type of the variable holding the result should have been
converted from int to bool.
staging: gasket: apex: move driver-private defines out of apex.h
apex.h is supposed to contain kernel-userspace interface definitions,
but has a number of defines that are only used by apex_driver.c or are
not used at all. Move driver implementation defines not shared with
userspace to the driver source. Remove unused defines.
Signed-off-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
There's not been any work on this driver since it was originally merged,
and it really needs to be rewritten to use the serdev layer instead if
people really need/want it.
Reported-by: Christoph Hellwig <hch@lst.de> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Colin Ian King [Mon, 30 Jul 2018 12:59:18 +0000 (13:59 +0100)]
iio: light: si1133 fix test for val being not zero or not one.
The current check on val always results in true and so the
call to sii1133_update_adcsens never gets called. Fix this check
so it returns with -EINVAL only when val is not zero and not one.
Detected by CoverityScan, CID#1472099 ("Logically dead code")
Fixes: e01e7eaf37d8 ("iio: light: introduce si1133") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
The enumerated type DM_CCK_Rx_Path_Method is used as a container for
constant definitions, rather then an enumerated type enabling compiler
type checking. To correct this, the variable which uses the constants,
defined by the enumeration, has had its type changed from a u8 to the
enumeration.
Additionally the type has been moved above the structure where the type
is used, to avoid compiler error. The typedef has been removed from the
enumerated type to clear the checkpatch issue with defining new types.
The name of the type has been changed to cck_rx_path_method to clear
the checkpatch issue with CamelCase naming. And the enumerated constant
CCK_Rx_Version_MAX has been removed, since it is never used in code.
The changes are all coding style in nature and so should have no
impact on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The enumerated type dm_dig_cs_ratio_e is never actually used as a type,
but only as a collection of related constants. This is because the
variables, which use the defined constant values, are defined as being
of type u8 rather then tne enumerated type. This omission negates the
possibility of taking advantage of compiler type checking.
To enable the use of compiler type checking of the enumeration the two
variables, (curcs_ratio_state & precs_ratio_state), which use the type's
constants have their types changed from u8 to enum dig_cck_cs_ratio_state.
Additionally the types declaration has been moved above the dig
structure, where the type is used. The 'typedef' keyword has been
removed from the type to clear the checkpatch issue with defining new
types. And the constant DIG_CS_MAX has been removed since this is never
used in the code.
These changes are purely coding style changes and should not impact
on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The enumerated type dm_dig_pd_th_e is never actually used as
the type for the two variables which use the constants, which the
enumeration defines. This omission removes the possibility of taking
advantage of compiler type checking.
To correct this the two member variables, (curpd_thstate & prepd_thstate)
have been changed to use the type enum dig_pkt_detection_threshold rather
then u8.
Additionally the enum's declaration has been moved above the dig
structure, where the type is used, the 'typedef' has been removed to
clear the checkpatch issue with defining new types, and the value
'DIG_PD_MAX' has been removed from the enumeration, since it is never
used in code.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The enumerated type dm_dig_connect_e is only used to group constant
values, as the actual type is never used as the type for the variables
which use the defined constants (cur_connect_state and pre_connect_state).
These two member variables have had there defined types changed to
properly reflect there usage and to permit compiler type checks to be
performed.
In addition the definition of the enumerated type has been moved above
the structure which uses the type. The typedef of the enumerated type
has been removed to clear the checkpatch issue with defining new types
and the enumerated value DIG_CONNECT_MAX has been removed since it is
never used in code.
The resulting changes are all coding style in nature and should not
impact runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The enumerated type dm_dig_alg_e is only used by one variable in the
code, 'dig_algorithm', a member variable of the structure dig. That
member variable was defined to be of type 'u8' thus negating any
advantage of the use of an enumerated type, (compiler type-checking).
The type of the variable 'dig_algorithm' has been change to reflect
its use of the enumeration and the enumerated type moved in the file
so that it appears before it is used in the file.
Additionally the 'typedef' has been removed to clear the checkpatch
issue with defining new types, and the type renamed to
enum dig_algorithm.
The enumerated constant DIG_ALGO_MAX has been removed from the type
since it is never used in the code.
These changes are all coding style in nature and as such should have
no impact on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sun, 29 Jul 2018 21:07:41 +0000 (22:07 +0100)]
staging:rtl8192u: Remove enum dm_dig_op_e - Style
Remove the enumerated type dm_dig_op_e. The type is only used as a
parameter to the function dm_change_dynamic_initgain_thresh(), but
that function is never referenced in the code at all.
I would consider this to be a coding style change as the function is
never referenced and as a result the enumeration is never used. In
any case there should be no impact on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The enumerated type dm_ratr_sta_e was defined in the file
drivers/staging/rtl8192u/r8192U_dm.h but never actually used in that
file. The only variable which uses this enumerated type is 'ratr_state',
a member variable of the _rate_adaptive structure defined in the file
drivers/staging/rtl8192u/r8192U.h.
To clarify and place the enumerated type close to where it is used the
type was moved to the drivers/staging/rtl8192u/r8192U.h file.
In addition the member variable 'ratr_state' which uses the enumerated
constants was declared as being of type 'u8'. This negates any advantage
of the enumerated type, compiler type-checking, so that member variable's
type has been changed to being of the enumerated type.
The typedef from the enumerated type has been removed to clear the
checkpatch issue with defining new types. Additionally the name of the
type has been left as enum dynamic_ratr_state
This is a coding style change and should have no impact on runtime code
execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sun, 29 Jul 2018 21:07:39 +0000 (22:07 +0100)]
staging:rtl8192u: Refactor use of enum dm_dig_sta_e - Style
Refactor the use of the enumerated type dm_dig_sta_e, which is not
actually used for type checking by the compiler.
The typedef of dm_dig_sta_e is removed to clear the checkpatch issue
with defining new types, and the enumerated type is left with the name
enum dynamic_init_gain_state
The enumerated type defines values for the enumeration, which are used
by both dig_state and dig_highpwr_state, (members of the struct dig).
Both of those variables were defined as being of type u8. This negates
any usefulness of the use of the enumeration, (compiler type checking).
To make use of the compiler's type-checking the two member variables,
dig_state and dig_highpwr_state have been changed to being of type
enum dynamic_init_gain_state. The enumerated type has been moved above
the struct dig definition so that the enumeration is already defined
when the compiler reaches the two types using the enumerated type.
These changes, whilst convoluted, are purely coding style in nature and
should not impact runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sun, 29 Jul 2018 21:07:38 +0000 (22:07 +0100)]
staging:rtl8192u: Remove typedef of cmpk_set_cfg_t - Style
Remove the typedef from cmpk_set_cfg_t, leaving the structure as
struct cmd_pkt_set_configuration. This change clears the checkpatch
issue with defining new types. The change is purely a coding
style change which should have no impact on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sun, 29 Jul 2018 21:07:37 +0000 (22:07 +0100)]
staging:rtl8192u: Remove typedef of cmpk_intr_sta_t - Style
Remove the typedef of struct cmpk_intr_sta_t, the name of the structure
has been left as cmd_pkt_interrupt_status. This clears the checkpatch
issue with creating new types in code. The change is purely a coding
style change and should have no impact on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sun, 29 Jul 2018 21:07:36 +0000 (22:07 +0100)]
staging:rtl8192u: Correct spelling in comments - style
Correct the spelling of a number of comments, which cause a checkpatch
issue. This is purely a coding style change which should have no impact
on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sat, 28 Jul 2018 23:14:52 +0000 (00:14 +0100)]
staging:rtl8192u: Remove unused constants - Style
Remove defined constants from code, since they are never actually
used in code. This is a simple coding style change which should have
no impact on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sat, 28 Jul 2018 23:14:51 +0000 (00:14 +0100)]
staging:rtl8192u: Rename union QOS_TSINFO - Style
The union QOS_TSINFO, as a type, should have a lowercase name. The
union has therefore been renamed to qos_tsinfo. Additionally the
'typedef' directive has been removed to clear the checkpatch issue
with defining new types.
These are coding style changes which should have no impact on runtime
code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The enumerated type DIRECTION_VALUE should be named in lowercase to
comply with coding standard so is renamed to direction_value. In
addition the 'typedef' directive has been removed to clear the
checkpatch issue with defining new types.
These changes are coding style changes which should have no impact on
runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sat, 28 Jul 2018 23:14:47 +0000 (00:14 +0100)]
staging:rtl8192u: Rename member variables - Style
Rename the member variables of union aci_aifsn, which should be named
in lowercase. The only member variable, of this union, which is
actually used is 'acm'.
This are coding style changes which should have no impact on runtime
code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sat, 28 Jul 2018 23:14:46 +0000 (00:14 +0100)]
staging:rtl8192u: Rename ACI_AIFSN - Style
Rename the union ACI_AIFSN to aci_aifsn and remove the typedef directive.
The removal of the typedef clears the checkpatch issue with defining
new types. The renaming is to adhere to the coding style where types
are name in lower case.
These changes are coding style changes which should have no impact on
runtime execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
John Whitmore [Sat, 28 Jul 2018 23:14:45 +0000 (00:14 +0100)]
staging:rtl8192u: Add spaces around operators - Style
Add the required spaces around '+' and '*' operators. This is a
coding style change to clear the checkpatch issue. There should be
no impact on runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
staging: gasket: sysfs: hold reference to device while in use
Hold a reference to the struct device while a gasket sysfs mapping
exists for the device and a pointer to the struct is kept in the mapping
data structures.
Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 fixes from Ted Ts'o:
"Some miscellaneous ext4 fixes for 4.18; one fix is for a regression
introduced in 4.18-rc4.
Sorry for the late-breaking pull. I was originally going to wait for
the next merge window, but Eric Whitney found a regression introduced
in 4.18-rc4, so I decided to push out the regression plus the other
fixes now. (The other commits have been baking in linux-next since
early July)"
* tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4: fix check to prevent initializing reserved inodes
ext4: check for allocation block validity with block group locked
ext4: fix inline data updates with checksums enabled
ext4: clear mmp sequence number when remounting read-only
ext4: fix false negatives *and* false positives in ext4_check_descriptors()
squashfs: be more careful about metadata corruption
Anatoly Trosinenko reports that a corrupted squashfs image can cause a
kernel oops. It turns out that squashfs can end up being confused about
negative fragment lengths.
The regular squashfs_read_data() does check for negative lengths, but
squashfs_read_metadata() did not, and the fragment size code just
blindly trusted the on-disk value. Fix both the fragment parsing and
the metadata reading code.
ext4: fix check to prevent initializing reserved inodes
Commit 8844618d8aa7: "ext4: only look at the bg_flags field if it is
valid" will complain if block group zero does not have the
EXT4_BG_INODE_ZEROED flag set. Unfortunately, this is not correct,
since a freshly created file system has this flag cleared. It gets
almost immediately after the file system is mounted read-write --- but
the following somewhat unlikely sequence will end up triggering a
false positive report of a corrupted file system:
mkfs.ext4 /dev/vdc
mount -o ro /dev/vdc /vdc
mount -o remount,rw /dev/vdc
Instead, when initializing the inode table for block group zero, test
to make sure that itable_unused count is not too large, since that is
the case that will result in some or all of the reserved inodes
getting cleared.
This fixes the failures reported by Eric Whiteney when running
generic/230 and generic/231 in the the nojournal test case.
Fixes: 8844618d8aa7 ("ext4: only look at the bg_flags field if it is valid") Reported-by: Eric Whitney <enwlinux@gmail.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
iio: adc: xilinx: Remove platform_get_irq from xadc_remove function
This patch avoids getting irq number in xadc_remove function. Instead
store 'irq' in xadc struct and use xadc->irq wherever needed.
This patch also resolves a warning reported by coverity where it asks to
check return value of platform_get_irq() for any errors in xadc_remove.
Signed-off-by: Manish Narani <manish.narani@xilinx.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
iio: adc: xilinx: limit pcap clock frequency value
This patch limits the xadc pcap clock frequency value to be less than
200MHz. This fixes the issue when zynq is booted at higher frequency
values, pcap crosses the maximum limit of 200MHz(Fmax) as it is derived
from IOPLL.
If this limit is crossed it is required to alter the WEDGE and REDGE
bits of XADC_CFG register to make timings better in the interface. So to
avoid alteration of these bits every time, the pcap value should not
cross the Fmax limit.
Signed-off-by: Manish Narani <manish.narani@xilinx.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
John Whitmore [Fri, 27 Jul 2018 17:31:13 +0000 (18:31 +0100)]
staging:rtl8192u: Remove typedef and rename RX_TS_RECORD - Style
Remove the typedef from structure RX_TS_RECORD, this change clears the
checkpatch issue with creation of new types.
Additionally the structure is renamed from RX_TS_RECORD to rx_ts_record.
Whilst this is not raised as a checkpatch error structures are meant to
be named in lower case.
These changes are coding style changes which should have no impact on
runtime code execution.
Signed-off-by: John Whitmore <johnfwhitmore@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>