1. 23 Apr, 2020 9 commits
    • Jérôme Pouiller's avatar
      staging: wfx: simplify hif_set_bss_params() · 7b0360e5
      Jérôme Pouiller authored
      The structure hif_req_set_bss_params come from hardware API. It is not
      intended to be manipulated in upper layers of the driver.
      
      In add, current code for hif_req_set_bss_params() is too dumb. It should
      pack data with hardware representation instead of leaving all work to
      the caller.
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-9-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7b0360e5
    • Jérôme Pouiller's avatar
      staging: wfx: field operational_rate_set is ignored by firmware · 2e885b18
      Jérôme Pouiller authored
      The field bss_params.operational_rate_set is ignore by the firmware. It
      is not necessary to send it. This change greatly simplify
      wfx_join_finalize(). It is no more necessary to get sta and it allow to
      save a RCU.
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-8-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2e885b18
    • Jérôme Pouiller's avatar
      staging: wfx: dual CTS is never necessary · d4620087
      Jérôme Pouiller authored
      Dual CTS is only necessary when sending/receiving STBC data. However,
      the chip does not support STBC, so it is never necessary to enable
      double CTS.
      
      We can simplify the code.
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-7-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d4620087
    • Jérôme Pouiller's avatar
      staging: wfx: also fix network parameters for IBSS networks · 537000ac
      Jérôme Pouiller authored
      Current code skip some configuration during joining an IBSS network.
      Indeed, it seems that this configuration is not used in IBSS. However,
      it would be harmless to set them. In add, we would prefer to keep
      association processes for ad-hoc and managed networks the closest as
      possible. It also ensures the values of internal parameters of the
      firmware.
      
      Therefore, apply them unconditionally.
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-6-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      537000ac
    • Jérôme Pouiller's avatar
      staging: wfx: handle firmware events synchronously · 988cf07b
      Jérôme Pouiller authored
      Currently, events from firmware are handled in a work queue with a
      complex event queue mechanism. It is probably overkill since there is
      only two events to handle: bss_loss and CQM events. Handling these
      events synchronously is sufficient.
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-5-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      988cf07b
    • Jérôme Pouiller's avatar
      staging: wfx: drop useless attribute 'bss_params' · 5c442b6a
      Jérôme Pouiller authored
      Since wfx_bss_params_work() does not exist anymore, there is no more
      reason to keep a copy of bss_params in struct wfx_dev. A local instance
      in wfx_join_finalize() is sufficient.
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-4-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5c442b6a
    • Jérôme Pouiller's avatar
      staging: wfx: use ieee80211_beacon_loss() provided by mac80211 · 5a0af698
      Jérôme Pouiller authored
      The firmware is able to filter beacons and send a notification if one or
      multiple beacons are not received. Note that it send this notification
      only once. Only if it receive beacons gain, it send a new notification.
      
      Currently, the driver handle the connection loss itself (see
      wfx_cqm_bssloss_sm()). It send null frames and watch the answers.
      
      This patch fixes all this mess:
        - settle firmware to send a notification on the first beacon loss
        - call ieee80211_beacon_loss() and let mac80211 handle all the process
        - since we do have notification for each beacon loss, add a period
          task that call ieee80211_beacon_loss() until we receive "REGAIN"
          notification.
      
      Thus, we can drop the ugly wfx_cqm_bssloss_sm() and
      wfx_bss_params_work().
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-3-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5a0af698
    • Jérôme Pouiller's avatar
      staging: wfx: simplify the check if the the device is associated · 13fe5a59
      Jérôme Pouiller authored
      Firmware dislikes the driver enables PS when it is not yet associated.
      The current check for that condition is more complex than necessary.
      Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
      Link: https://lore.kernel.org/r/20200420160311.57323-2-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      13fe5a59
    • Greg Kroah-Hartman's avatar
      Merge tag 'iio-for-5.8a' of... · 4e1d9630
      Greg Kroah-Hartman authored
      Merge tag 'iio-for-5.8a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
      
      Jonathan writes:
      
      First set of new IIO device support, features and cleanup for the 5.8 cycle
      
      Usual mix of new drivers, new support in old drivers and lots of minor
      cleanup. Yaml conversions also continue to trickle in (plenty more to go!)
      
      New device support
      * ad7476
        - Add ad7091 support (ID only)
      * ad9467
        - New driver for this 200/250 MSPS adi-axi-adc and SPI attached ADC.
      * adi-axi-adc
        - New driver to support ADIs generic AXI ADC IP core, used to provide
          high speed interfaces to ADCs (JESD204B/C or parallel interfaces). Usually
          paired with a device using a slow configuration interface (spi etc)
          Includes DT bindings and some fixes for fpga headers.
      * bmg160
        - Add support for BMI088 (ID only)
      * max1241
        - New driver for this ADC.
      * st_sensors
        - Add support for LIS2HH12 accelerometer
      * sx9310
        - New driver supporting sx9310 and sx9311 proximity sensors.
      
      Yaml DT binding conversions
      * rockchip-saradc (including adding some missing parts)
      * stm32-dac
      * tsl2563
      * vcnl4000
      
      Features
      * st_lsm6dsx
        - Add LIS3MDL as a possible sensor hub device.
      * vcnl4000
        - Add new concept of near level (from DT) to provide to userspace which
          often needs to have some calibrated concept of 'near'.
      
      Cleanups, minor fixes etc.
      * core
        - Use snprintf for functions where strings are built and there is
          potential for overflow.
        - Correct docs to indicate mlock should not be used directly by drivers.
        - Fix up accidental dropping of a patch to use bitmap_zalloc.
        - Stop allowing enabling of buffers with no channels enabled.
        - Drop unused 'stufftoread' from iio_buffer.
        - Drop scan_el_attrs form iio_buffer as unused.
        - Reorder sanity checks in __iio_device_register to fail earlier.
        - Drop all the devm_ runregister / free functions from IIO as they
          were never used and encourage poor design.
      * dma-buffer
        - Tidy up includes.
      * dma-engine-buffer
        - Provide dev-managed allocator.
        - Fix an issue with printing a size_t
      * cross subsystem (kxsd9, bmg160, mpu3050, bmi160, mpu6050, bmc150)
        - Replace some unnecessary casts of error ptrs and whilst there.
          use the %pe printf parameter to print them in a more useful fashion.
      * cross subsystem
        - Drop casts in calls to regmap_bulk_read as they make no sense.
        - Use devm_platform_ioremap_resource to reduce boilerplate.
        - Fix typos in Analog Devices.
      * counters/104-quad
        - Add Syed Nayyar Waris as an additional maintainer.
      * ad7476
        - Generate CONVST signal internally rather than requiring external
          trigger.  Add sysfs read back as can now do so.
        - use devm_add_action_or_reset to tidy up error and remove handling.
      * ad7793
        - Switch to read_avail from explicit attribute. Mostly done to avoid
          confusing people with a - sign (without surounding spaces) that
          was correct but checkpatch didn't like.
      * adis library
        - Add missing newlines at end of error messages.
      * adis16400
        - Use DEFINE_DEBUGS_ATTRIBUTE rather than DEFINE_SIMPLE_ATTR.
      * adis16460
        - Use DEFINE_DEBUGS_ATTRIBUTE rather than DEFINE_SIMPLE_ATTR.
      * ad_sigma_delta
        - Move some channel definitions into individual drivers to avoid
          having to deal with complex options.
      * ak8974
        - Silence an error on deffered probe.
      * bmp280
        - Harden against IRQ before registration.
        - Convert to read_avail instead of opencoding the equivalent.
        - Explicitly mark GPIO as optional.
        - Cleanup casts.
        - Remove line breaks from strings.
      * htts221
        - Replace direct access to platform_data with dev_get_platdata().
        - Use device properties rather than device tree ones to allow ACPI
          probing.
        - Casting cleanups.
      * intel_mrfld_adc
        - Don't use unaligned accessor for aligned data.
      * isl29125
        - Reorder buer pre and post hooks to allow for coming core rework.
      * ltc2983
        - Remove comp to bool.
      * max1363
        - Stop using mlock from the iio_dev directly in favour of a local lock
          with clearly defined scope.
      * max30100
        - Use generic device properties to allow ACPI probe.
      * mpu6050
        - Convert to i2c_new_client_device.
        - Add debugfs register access.
      * st_lsm6dsx
        - Provide means of configuring full scale on slave device if supported.
        - Drop include of st_sensors header to get one value. Its not otherwise
          used by this driver.
      * st-sensors
        - Replace direct access to platform_data with dev_get_platdata().
        - Casting cleanups.
        - Avoid splitting strings.
      * st_uvis25
        - Casting cleanups.
      * tsl2563
        - Typo fix.
      * tsl2772
        - scnprintf in a non obvious string building usecase. Note also 'fixes'
          a wrong calculation of remaining space that couldn't actually cause
          any trouble as there was lots of room.
      * xilinx-xadc
        - Fix Lars-Peter spelling his own name wrong :) + additional typos.
      
      * tag 'iio-for-5.8a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (101 commits)
        iio: magnetometer: ak8974: Silence deferred-probe error
        Documentation: ABI: document IIO in_proximity_nearlevel file
        iio: vcnl4000: Export near level property for proximity sensor
        dt-bindings: iio: light: vcnl4000: Add proximity-near-level
        dt-bindings: iio: Introduce common properties for iio sensors
        dt-bindings: iio: vcnl4000: convert bindings to YAML format
        iio: Fix misspellings of "Analog Devices"
        iio: light: isl29125: fix iio_triggered_buffer_{predisable,postenable} positions
        iio: adc: fsl-imx25-gcq: Use devm_platform_ioremap_resource
        iio: adc: at91-adc: Use devm_platform_ioremap_resource
        iio: adc: sun4i-gpadc-iio: Use devm_platform_ioremap_resource
        iio:light:ltr501: Drop unnecessary cast of parameter in regmap_bulk_read
        iio:magn:mmc35240: Drop unnecessary casts of val parameter in regmap_bulk*
        iio:imu:mpu6050: Tidy up parameters to regmap_bulk functions.
        iio:chemical:bme680: Tidy up parameters to regmap_bulk_read
        iio:chemical:atlas-sensor: Drop unnecessary explicit casts in regmap_bulk_read calls
        iio:accel:mxc4005: Drop unnecessary explicit casts in regmap_bulk_read calls
        iio: imu: st_lsm6dsx: drop huge include in sensor-hub driver
        iio: buffer: drop devm_iio_kfifo_free() API call
        iio: buffer: drop devm_iio_hw_consumer_free() API call
        ...
      4e1d9630
  2. 19 Apr, 2020 31 commits