1. 21 Mar, 2020 1 commit
    • Sergio Paracuellos's avatar
      staging: mt7621-pci: avoid to poweroff the phy for slot one · 5737cfe8
      Sergio Paracuellos authored
      Phy for slot 0 and 1 is shared and handled properly in slot 0.
      If there is only one port in use,(slot 0) we shall not call the
      'phy_power_off' function with an invalid slot because kernel
      will crash with an unaligned access fault like the following:
      
      mt7621-pci 1e140000.pcie: Error applying setting, reverse things back
      mt7621-pci-phy 1e149000.pcie-phy: PHY for 0xbe149000 (dual port = 1)
      mt7621-pci-phy 1e14a000.pcie-phy: PHY for 0xbe14a000 (dual port = 0)
      mt7621-pci-phy 1e149000.pcie-phy: Xtal is 40MHz
      mt7621-pci-phy 1e14a000.pcie-phy: Xtal is 40MHz
      mt7621-pci 1e140000.pcie: pcie1 no card, disable it (RST & CLK)
      Unhandled kernel unaligned access[#1]:
      CPU: 3 PID: 111 Comm: kworker/3:2 Not tainted 5.6.0-rc3-00347-g825c6f47-dirty #9
      Workqueue: events deferred_probe_work_func
      $ 0   : 00000000 00000001 5f60d043 8fe1ba80
      $ 4   : 0000010d 01eb9000 00000000 00000000
      $ 8   : 294b4c00 80940000 00000008 000000ce
      $12   : 2e303030 00000000 00000000 65696370
      $16   : ffffffed 0000010d 8e373cd0 8214c1e0
      $20   : 00000000 82144c80 82144680 8214c250
      $24   : 00000018 803ef8f4
      $28   : 8e372000 8e373c60 8214c080 803940e8
      Hi    : 00000125
      Lo    : 122f2000
      epc   : 807b3328 mutex_lock+0x8/0x44
      ra    : 803940e8 phy_power_off+0x28/0xb0
      Status: 1100fc03        KERNEL EXL IE
      Cause : 00800010 (ExcCode 04)
      BadVA : 0000010d
      PrId  : 0001992f (MIPS 1004Kc)
      Modules linked in:
      Process kworker/3:2 (pid: 111, threadinfo=(ptrval), task=(ptrval), tls=00000000)
      Stack : 8e373cd0 803fe4f4 8e372000 8e373c90 8214c080 804fde1c 8e373c98 808d62f4
               8e373c78 00000000 8214c254 804fe648 1e160000 804f27b8 00000001 808d62f4
               00000000 00000001 8214c228 808d62f4 80930000 809a0000 8fd47e10 808d63d4
               808d62d4 8fd47e10 808d0000 808d0000 8e373cd0 8e373cd0 809e2a74 809db510
               809db510 00000006 00000001 00000000 00000000 00000000 01000000 1e1440ff
               ...
      Call Trace:
      [<807b3328>] mutex_lock+0x8/0x44
      [<803940e8>] phy_power_off+0x28/0xb0
      [<804fe648>] mt7621_pci_probe+0xc20/0xd18
      [<80402ab8>] platform_drv_probe+0x40/0x94
      [<80400a74>] really_probe+0x104/0x364
      [<803feb74>] bus_for_each_drv+0x84/0xdc
      [<80400924>] __device_attach+0xdc/0x120
      [<803ffb5c>] bus_probe_device+0xa0/0xbc
      [<80400124>] deferred_probe_work_func+0x7c/0xbc
      [<800420e8>] process_one_work+0x230/0x450
      [<80042638>] worker_thread+0x330/0x5fc
      [<80048eb0>] kthread+0x12c/0x134
      [<80007438>] ret_from_kernel_thread+0x14/0x1c
      Code: 24050002  27bdfff8  8f830000 <c0850000> 14a00005  00000000  00600825  e0810000  1020fffa
      
      Fixes: bf516f41 ("staging: mt7621-pci: use only two phys from device tree")
      Signed-off-by: default avatarSergio Paracuellos <sergio.paracuellos@gmail.com>
      Link: https://lore.kernel.org/r/20200320153837.20415-1-sergio.paracuellos@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5737cfe8
  2. 20 Mar, 2020 10 commits
  3. 19 Mar, 2020 14 commits
  4. 18 Mar, 2020 3 commits
    • Greg Kroah-Hartman's avatar
      Merge tag 'iio-5.7a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next · 281d90e2
      Greg Kroah-Hartman authored
      Jonathan writes:
      
      First set of new IIO device support, fatures and cleanups for the 5.7 cycle
      
      Includes changes for the counter subsystem
      
      Core Feature
      * Explicitly handle sysfs values in dB, including correctly handling the
        needed postfix dB.
      * Add a TODO to suggest suitable activities for new contributors to IIO now
        the vast majority of drivers are out of staging (and the remaining ones
        there are 'hard'). Also update the TODO in staging to remove stale entries.
      
      Staging graduations
      * ad7192 ADC.
      
      New device support
      * ad5770r
        - New driver for this 6 channel DAC including DT bindings.
      * ad8366
        - Add supprot for the hmc1119 attenuator.
      * al3010
        - New driver supporting this Dyna-image light sensors.
        - Power management and DT bindings added in additional patches.
      * atlas-sensor
        - Add support for atlas DO-SM device.  Reads disolved oxygen in a solution.
      * gpap002x00f
        - New driver and bindings to support the GP2AP002A00F and GP2AP002S00F light
          and proximity sensors. There is some limited existing support in
          input.  The intent is to drop this driver once IIO driver is in place.
      * hmc425a
        - New driver for this attenuator.
      * icp10100
        - New driver for this presure sensor.
      * ltc2632
        - Add support for the ltc2636 8 channel DAC. Includes bindings and some
          tidying up of the driver.
      * inv_mpu6050
        - Support IAM20680, ICM20609, ICM20689 and ICM20690.
          Includes related tidy up and rework of low pass filter bandwidth
          handling to give suitable values for all chips.
      
      Binding conversions to yaml or missing bindings docs.
      * atlas-sensor, including consolidation of previous 3 separate docs into 1.
      * ad7923, previously no doc.
      * max1363, split into max1238 and max1363 to simplify yaml.
      * stm32-adc
      
      Features
      * (counter) 104-quad-8
        - Support a filter clock prescaler.
        - Support reporting of encoder cable status.
      * ad7124
        - Low pass filter support.
        - Debugfs interface to access registers directly.
      * ad8366
        - Support control of hardware gain.
      * inv_mpu6050
        - Runtime pm with autosuspend.
      * npcm adc
        - Add reset support. This is a breaking change if DT is not in sync,
          however this device is a BMC so the ecosystem is closed enought that
          this should not be a problem.
      * srf04
        - Add power management with DT bindings for the GPIO.
      * stm32-timer-trigger
        - Power management.
      * (counter) stm32-timer-cnt
        - Power management.
      * vcnl4000
        - Enable runtime PM for devices that don't use on demand measurement.
      
      Cleanups and minor fixes
      * core
        - Avoid double read when using debugfs.  Whilst we provide no guarantees
          on lack of side effects using the debugfs interfaces, this one is
          generate unexpected results so let us tidy it up.
      * dac/Kconfig
        - Alphabetic order.
      * ad5755
        - Grammar and minor other fixes.
      * ad7124
        - Fail probe if get_voltage fails as no meaningful readings can be had
          without knowing the external reference.
        - Switch to selection between different channel attributes rather than
          building the arrays at runtime.
        - Remove the spi_device_id table as the driver cannot be probled without
          more information that can be provided without dt.
        - Update sysfs docs to provide more inormation and bring remaining docs for
          this part out of staging.
      * ad9292
        - Use new SPI transfer delay structure.
      * adis library
        - Add unlocked version of adis_initial_startup and refactor the function.
        - Add a product ID santiy check.
        - Add support for different self test registers.
        - Use new SPI delay structure.
        - Add new docs and tidy up existing.
      * adis16136
        - Initialize adis_data statically.
      * adis16400
        - Initialize adis_data statically.
      * adis16460
        - Use core __adis_initial_Startup now it supports everything needed.
      * adis16480
        - Initialize adis_data statically.
        - Use core __adis_initial_startup now it supports everything needed.
      * al3320a
        - Add missing DT binding docs.
        - Tidy up code formatting.
        - Simplify error paths using devm_add_action_or_reset.
        - Ensure autoloading works by adding the of_match_table.
      * atlas-sensor
        - Drop false requirement for interrupt line, the value can be polled using
          a sysfs or hrtimer type trigger.
      * exynos-adc
        - Silence warning message on deferring probe.
      * gp2ap002
        - Greatly simplify the Lux LUT.
        - Reorder actions around buffer setup and tear down as part of a sub-system
          wide standardization of these.
      * inv_mpu6050
        - Various lttle tidyups.
        - Simpliy I2C aux MUX handling by enabling it only at startup. It never
          needs to be disabled.
        - Simplify polling rate when magnetometer enabled by putting only under
          control of userspace.
        - Always execute full reset on devices supporting spi. It does no harm
          when using i2c and makes for simpler code.
        - Reduce over the top sleep times for vddio regulator power up.
        - Greatly simplify power and engine management.
        - Fix some delays in polled reads (only visible due to other changes)
        - Stop preventing sampling rate changes whilst running as there is no
          adverse consequence of doing so.
        - Prevent attempting to read the temperature if neither accel nor
          gyro is enabled.
      * lmp9100
        - Reorder actions around buffer setup and tear down as part of a sub-system
          wide standardization of these.
      * max1118
        - Use new SPI transfer delay structure.
      * mcp320x
        - Use new SPI transfer delay structure.
      * si1133
        - Read full 24 bit signed integer instead o dropping last 8 bits of value.
          Not a critical fix as just adds precision.
      * st_sensors
        - Use st_sensors_dev_name_probe instead of open coded version in st_accel
        - Handle potential memory allocation failure.
      * st_lsm6dsx
        - Fix some wrong structure element naming in documentation.
        - Add missing return value check.
      * stm32_timer_cnt
        - Drop some unused left over IIO headers from this count subsystem driver.
        - Ensure the clock is enabled in master mode.  Theoretical issue rather
          than one known to happen in the wild.
      * tlc4541
        - Use new SPI delay structure.
      
      * tag 'iio-5.7a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (98 commits)
        iio: dac: Kconfig: sort symbols alphabetically
        iio: light: gp2ap020a00f: fix iio_triggered_buffer_{predisable,postenable} positions
        iio: potentiostat: lmp9100: fix iio_triggered_buffer_{predisable,postenable} positions
        iio: trigger: stm32-timer: add power management support
        iio: trigger: stm32-timer: rename enabled flag
        iio: add a TODO
        counter: 104-quad-8: Support Differential Encoder Cable Status
        counter: 104-quad-8: Support Filter Clock Prescaler
        iio: pressure: icp10100: add driver for InvenSense ICP-101xx
        iio: industrialio-core: Fix debugfs read
        iio: imu: adis: add a note better explaining state_lock
        iio: imu: adis: update 'adis_data' struct doc-string
        iio: imu: adis: add doc-string for 'adis' struct
        iio: imu: adis_buffer: Use new structure for SPI transfer delays
        iio: adc: ti-tlc4541: Use new structure for SPI transfer delays
        iio: adc: mcp320x: Use new structure for SPI transfer delays
        iio: adc: max1118: Use new structure for SPI transfer delays
        iio: adc: ad9292: Use new structure for SPI transfer delays
        iio: adc: exynos: Silence warning about regulators during deferred probe
        staging: iio: update TODO
        ...
      281d90e2
    • Sergio Paracuellos's avatar
      staging: mt7621-pci: fix io space and properly set resource limits · 09dd629e
      Sergio Paracuellos authored
      Function 'mt7621_pci_parse_request_of_pci_ranges' is using
      'of_pci_range_to_resource' to get both mem and io resources.
      Internally this function calls to 'pci_address_to_pio' which
      returns -1 if io space address is an address > IO_SPACE_LIMIT
      which is 0xFFFF for mips. This mt7621 soc has io space in physical
      address 0x1e160000. In order to fix this, overwrite invalid io
      0xffffffff  with properly values from the device tree and set
      mapped address of this resource as io port base memory address
      calling 'set_io_port_base' function. There is also need to properly
      setup resource limits and io and memory windows with properly
      parsed values instead of set them as 'no limit' which it is wrong.
      For any reason I don't really know legacy driver sets up mem window
      as 0xFFFFFFFF and any other value seems to does not work as expected,
      so set up also here with same values.
      Signed-off-by: default avatarSergio Paracuellos <sergio.paracuellos@gmail.com>
      Link: https://lore.kernel.org/r/20200318094445.19669-1-sergio.paracuellos@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      09dd629e
    • Lourdes Pedrajas's avatar
      staging: rtl8192u: r8192U_wx: use netdev_warn() instead of printk() · eac7ac5c
      Lourdes Pedrajas authored
      printk() is deprecated, use netdev_warn() instead, which is a message printing
      function specific for network devices.
      Issue found by checkpatch.
      Suggested-by: default avatarJulia Lawall <julia.lawall@inria.fr>
      Suggested-by: default avatarStefano Brivio <sbrivio@redhat.com>
      Signed-off-by: default avatarLourdes Pedrajas <lu@pplo.net>
      Link: https://lore.kernel.org/r/20200317165917.6260-1-lu@pplo.netSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      eac7ac5c
  5. 17 Mar, 2020 12 commits