Explicit casting in printf() usually shows that something is not okay.
Here, we really don't need it by providing correct specifier.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Explicit casting in printf() usually shows that something is not okay.
Here, we really don't need it by providing correct specifier.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Since snprintf() returns the would-be-output size instead of the
actual output size, the succeeding calls may go beyond the given
buffer limit. Fix it by replacing with scnprintf().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Function 'devm_gpiod_get_index_optional' returns NULL if the
descriptor is invalid and the error associated for the error
pointer is ENOENT. Sometimes if the pin is just assigned the
error associated for the pointer might not be ENOENT but other.
In order to avoid weirds behaviours if this happen set descriptor
to NULL in the driver port structure.
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20200320110123.9907-6-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This soc has two phy's for the pcie one of them using just a different
register for settig it up but sharing all the rest of the config. Until
now we was presenting this schema as three different phy's in the device
tree using the 'phy-cells' node property to discriminate an index and
setting up a complete phy for the dual port index. This sometimes worked
properly but reconfiguring the same registers twice presents sometimes
some unstable pcie links and the ports was not properly being detected.
The problems only appears on hard resets and soft resets was properly
working. Instead of having this schema just set two phy's in the device
ree and use the 'phy-cells' property to say if the port has or not a dual
port. Doing this configuration and set up becomes easier, LOC is decreased
and the behaviour also gets deterministic with properly and stable pcie
links in both hard and soft resets.
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20200320110123.9907-2-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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
...
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: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20200318094445.19669-1-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>