aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-05-14Merge tag 'ovl-update-5.2' of ↵Linus Torvalds5-33/+113
git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs update from Miklos Szeredi: "Just bug fixes in this small update" * tag 'ovl-update-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: relax WARN_ON() for overlapping layers use case ovl: check the capability before cred overridden ovl: do not generate duplicate fsnotify events for "fake" path ovl: support stacked SEEK_HOLE/SEEK_DATA ovl: fix missing upper fs freeze protection on copy up for ioctl
2019-05-14Merge tag 'fuse-update-5.2' of ↵Linus Torvalds7-31/+92
git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse Pull fuse update from Miklos Szeredi: "Add more caching controls for userspace filesystems to use, as well as bug fixes and cleanups" * tag 'fuse-update-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: fuse: clean up fuse_alloc_inode fuse: Add ioctl flag for x32 compat ioctl fuse: Convert fusectl to use the new mount API fuse: fix changelog entry for protocol 7.9 fuse: fix changelog entry for protocol 7.12 fuse: document fuse_fsync_in.fsync_flags fuse: Add FOPEN_STREAM to use stream_open() fuse: require /dev/fuse reads to have enough buffer capacity fuse: retrieve: cap requested size to negotiated max_write fuse: allow filesystems to have precise control over data cache fuse: convert printk -> pr_* fuse: honor RLIMIT_FSIZE in fuse_file_fallocate fuse: fix writepages on 32bit
2019-05-14Merge tag 'f2fs-for-v5.2-rc1' of ↵Linus Torvalds18-302/+688
git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs updates from Jaegeuk Kim: "Another round of various bug fixes came in. Damien improved SMR drive support a bit, and Chao replaced BUG_ON() with reporting errors to user since we've not hit from users but did hit from crafted images. We've found a disk layout bug in large_nat_bits feature which supports very large NAT entries enabled at mkfs. If the feature is enabled, it will give a notice to run fsck to correct the on-disk layout. Enhancements: - reduce memory consumption for SMR drive - better discard handling for multiple partitions - tracepoints for f2fs_file_write_iter/f2fs_filemap_fault - allow to change CP_CHKSUM_OFFSET - detect wrong layout of large_nat_bitmap feature - enhance checking valid data indices Bug fixes: - Multiple partition support for SMR drive - deadlock problem in f2fs_balance_fs_bg - add boundary checks to fix abnormal behaviors on fuzzed images - inline_xattr space calculations - replace f2fs_bug_on with errors In addition, this series contains various memory boundary check and sanity check of on-disk consistency" * tag 'f2fs-for-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (40 commits) f2fs: fix to avoid accessing xattr across the boundary f2fs: fix to avoid potential race on sbi->unusable_block_count access/update f2fs: add tracepoint for f2fs_filemap_fault() f2fs: introduce DATA_GENERIC_ENHANCE f2fs: fix to handle error in f2fs_disable_checkpoint() f2fs: remove redundant check in f2fs_file_write_iter() f2fs: fix to be aware of readonly device in write_checkpoint() f2fs: fix to skip recovery on readonly device f2fs: fix to consider multiple device for readonly check f2fs: relocate chksum_offset for large_nat_bitmap feature f2fs: allow unfixed f2fs_checkpoint.checksum_offset f2fs: Replace spaces with tab f2fs: insert space before the open parenthesis '(' f2fs: allow address pointer number of dnode aligning to specified size f2fs: introduce f2fs_read_single_page() for cleanup f2fs: mark is_extension_exist() inline f2fs: fix to set FI_UPDATE_WRITE correctly f2fs: fix to avoid panic in f2fs_inplace_write_data() f2fs: fix to do sanity check on valid block count of segment f2fs: fix to do sanity check on valid node/block count ...
2019-05-14Merge branch 'x86-mds-for-linus' of ↵Linus Torvalds27-82/+921
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 MDS mitigations from Thomas Gleixner: "Microarchitectural Data Sampling (MDS) is a hardware vulnerability which allows unprivileged speculative access to data which is available in various CPU internal buffers. This new set of misfeatures has the following CVEs assigned: CVE-2018-12126 MSBDS Microarchitectural Store Buffer Data Sampling CVE-2018-12130 MFBDS Microarchitectural Fill Buffer Data Sampling CVE-2018-12127 MLPDS Microarchitectural Load Port Data Sampling CVE-2019-11091 MDSUM Microarchitectural Data Sampling Uncacheable Memory MDS attacks target microarchitectural buffers which speculatively forward data under certain conditions. Disclosure gadgets can expose this data via cache side channels. Contrary to other speculation based vulnerabilities the MDS vulnerability does not allow the attacker to control the memory target address. As a consequence the attacks are purely sampling based, but as demonstrated with the TLBleed attack samples can be postprocessed successfully. The mitigation is to flush the microarchitectural buffers on return to user space and before entering a VM. It's bolted on the VERW instruction and requires a microcode update. As some of the attacks exploit data structures shared between hyperthreads, full protection requires to disable hyperthreading. The kernel does not do that by default to avoid breaking unattended updates. The mitigation set comes with documentation for administrators and a deeper technical view" * 'x86-mds-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits) x86/speculation/mds: Fix documentation typo Documentation: Correct the possible MDS sysfs values x86/mds: Add MDSUM variant to the MDS documentation x86/speculation/mds: Add 'mitigations=' support for MDS x86/speculation/mds: Print SMT vulnerable on MSBDS with mitigations off x86/speculation/mds: Fix comment x86/speculation/mds: Add SMT warning message x86/speculation: Move arch_smt_update() call to after mitigation decisions x86/speculation/mds: Add mds=full,nosmt cmdline option Documentation: Add MDS vulnerability documentation Documentation: Move L1TF to separate directory x86/speculation/mds: Add mitigation mode VMWERV x86/speculation/mds: Add sysfs reporting for MDS x86/speculation/mds: Add mitigation control for MDS x86/speculation/mds: Conditionally clear CPU buffers on idle entry x86/kvm/vmx: Add MDS protection when L1D Flush is not active x86/speculation/mds: Clear CPU buffers on exit to user x86/speculation/mds: Add mds_clear_cpu_buffers() x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests x86/speculation/mds: Add BUG_MSBDS_ONLY ...
2019-05-14kconfig: make conf_get_autoconfig_name() staticMasahiro Yamada2-2/+1
This is only used in confdata.c Signed-off-by: Masahiro Yamada <[email protected]>
2019-05-14kconfig: use snprintf for formatting pathnamesJacob Garber2-2/+3
Valid pathnames will never exceed PATH_MAX, but these file names are unsanitized and can cause buffer overflow if set incorrectly. Use snprintf to avoid this. This was flagged during a Coverity scan of the coreboot project, which also uses kconfig for its build system. Signed-off-by: Jacob Garber <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
2019-05-14kconfig: remove useless NULL pointer check in conf_write_dep()Masahiro Yamada1-2/+0
conf_write_dep() has just one caller: conf_write_dep("include/config/auto.conf.cmd"); "name" always points to a valid string. Signed-off-by: Masahiro Yamada <[email protected]>
2019-05-14drm/msm: remove resv fields from msm_gem_object structBrian Masney3-10/+2
The msm_gem_object structure contains resv and _resv fields that are no longer needed since the reservation object is now stored on drm_gem_object. msm_atomic_prepare_fb() and msm_atomic_prepare_fb() both referenced the wrong reservation object, and would lead to an attempt to dereference a NULL pointer. Correct those two cases to point to the correct reservation object. Fixes: dd55cf6929e6 ("drm: msm: Switch to use drm_gem_object reservation_object") Cc: David Airlie <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: Rob Herring <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: Rob Clark <[email protected]> Cc: Maxime Ripard <[email protected]> Cc: Sean Paul <[email protected]> Acked-by: Rob Clark <[email protected]> Reviewed-by: Bjorn Andersson <[email protected]> Tested-by: Bjorn Andersson <[email protected]> Signed-off-by: Brian Masney <[email protected]> Signed-off-by: Sean Paul <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2019-05-14hwmon: (pwm-fan) Use devm_thermal_of_cooling_device_registerGuenter Roeck1-44/+29
Use devm_thermal_of_cooling_device_register() to register the cooling device. Also use devm_add_action_or_reset() to stop the fan on device removal, and to disable the pwm. Introduce a local 'dev' variable in the probe function to make the code easier to read. As a side effect, this fixes a bug seen if pwm_fan_of_get_cooling_data() returned an error. In that situation, the pwm was not disabled, and the fan was not stopped. Using devm functions also ensures that the pwm is disabled and that the fan is stopped only after the hwmon device has been unregistered. Cc: Lukasz Majewski <[email protected]> Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14hwmon: (npcm750-pwm-fan) Use devm_thermal_of_cooling_device_registerGuenter Roeck1-4/+2
Use devm_thermal_of_cooling_device_register() to register the cooling device. As a side effect, this fixes a driver bug: thermal_cooling_device_unregister() was not called on device removal. Fixes: f1fd4a4db777 ("hwmon: Add NPCM7xx PWM and Fan driver") Cc: Tomer Maimon <[email protected]> Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14hwmon: (mlxreg-fan) Use devm_thermal_of_cooling_device_registerGuenter Roeck1-21/+10
Call devm_thermal_of_cooling_device_register() to register the cooling device. Also introduce struct device *dev = &pdev->dev; to make the code easier to read. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14hwmon: (gpio-fan) Use devm_thermal_of_cooling_device_registerGuenter Roeck1-16/+9
Call devm_thermal_of_cooling_device_register() to register the cooling device. Also use devm_add_action_or_reset() to stop the fan on device removal. This fixes a race condition since the fan was stopped before the hwmon device was removed. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14hwmon: (aspeed-pwm-tacho) Use devm_thermal_of_cooling_device_registerGuenter Roeck1-4/+2
Use devm_thermal_of_cooling_device_register() to register the cooling device. As a side effect, this fixes a driver bug: thermal_cooling_device_unregister() was not called on removal. Fixes: f198907d2ff6d ("hwmon: (aspeed-pwm-tacho) cooling device support.") Cc: Mykola Kostenok <[email protected]> Cc: Joel Stanley <[email protected]> Signed-off-by: Guenter Roeck <[email protected]> Reviewed-by: Patrick Venture <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: rcar_gen3_thermal: Fix to show correct trip points numberJiada Wang1-4/+4
Currently after store trip points number in 'ret', it is overwritten afterwards, this cause incorrect trip point number always be shown in the debug information after register of each thermal zone. This patch fix this issue by moving get of trip number to end of thermal zone registration. Fixes: 6269e9f790e8d ("thermal: rcar_gen3_thermal: Register hwmon sysfs interface") Signed-off-by: Jiada Wang <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: rcar_thermal: update calculation formula for R-Car Gen3 SoCsYoshihiro Kaneko1-1/+10
Update calculation for the R-Car Gen3 and RZ/G2 SoCs which have a thermal IP block controlled by this driver. That is the: * R-Car D3 (r8a77995) * R-Car E2 (r8a77990) * R-Car V3M (r8a77970) * RZ/G2E (r8a774c0) The calculation update is as documented in the R-Car Gen3 User's Manual, v1.50 Nov 2018: - When CTEMP is less than 24 T = CTEMP[5:0] * 5.5 - 72 - When CTEMP is equal to/greater than 24 T = CTEMP[5:0] * 5 - 60 This was inspired by a patch in the BSP by Van Do <[email protected]> Signed-off-by: Yoshihiro Kaneko <[email protected]> Tested-by: Simon Horman <[email protected]> Acked-by: Wolfram Sang <[email protected]> Reviewed-by: Niklas Söderlund <[email protected]> Signed-off-by: Simon Horman <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_powerMatthias Kaehlcke1-1/+1
The CPU load values passed to the thermal_power_cpu_get_power tracepoint are zero for all CPUs, unless, unless the thermal_power_cpu_limit tracepoint is enabled too: irq/41-rockchip-98 [000] .... 290.972410: thermal_power_cpu_get_power: cpus=0000000f freq=1800000 load={{0x0,0x0,0x0,0x0}} dynamic_power=4815 vs irq/41-rockchip-96 [000] .... 95.773585: thermal_power_cpu_get_power: cpus=0000000f freq=1800000 load={{0x56,0x64,0x64,0x5e}} dynamic_power=4959 irq/41-rockchip-96 [000] .... 95.773596: thermal_power_cpu_limit: cpus=0000000f freq=408000 cdev_state=10 power=416 There seems to be no good reason for omitting the CPU load information depending on another tracepoint. My guess is that the intention was to check whether thermal_power_cpu_get_power is (still) enabled, however 'load_cpu != NULL' already indicates that it was at least enabled when cpufreq_get_requested_power() was entered, there seems little gain from omitting the assignment if the tracepoint was just disabled, so just remove the check. Fixes: 6828a4711f99 ("thermal: add trace events to the power allocator governor") Signed-off-by: Matthias Kaehlcke <[email protected]> Reviewed-by: Daniel Lezcano <[email protected]> Acked-by: Javi Merino <[email protected]> Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: rockchip: Support the PX30 SoC in thermal driverElaine Zhang1-0/+38
PX30 SOC has two Temperature Sensors for CPU and GPU. Signed-off-by: Elaine Zhang <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14dt-bindings: rockchip-thermal: Support the PX30 SoC compatibleElaine Zhang1-0/+1
Add a new compatible for thermal founding on PX30 SoCs. Signed-off-by: Elaine Zhang <[email protected]> Acked-by: Daniel Lezcano <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: rockchip: fix up the tsadc pinctrl setting errorElaine Zhang1-3/+33
Explicitly use the pinctrl to set/unset the right mode instead of relying on the pinctrl init mode. And it requires setting the tshut polarity before select pinctrl. When the temperature sensor mode is set to 0, it will automatically reset the board via the Clock-Reset-Unit (CRU) if the over temperature threshold is reached. However, when the pinctrl initializes, it does a transition to "otp_out" which may lead the SoC restart all the time. "otp_out" IO may be connected to the RESET circuit on the hardware. If the IO is in the wrong state, it will trigger RESET. (similar to the effect of pressing the RESET button) which will cause the soc to restart all the time. Signed-off-by: Elaine Zhang <[email protected]> Reviewed-by: Daniel Lezcano <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: broadcom: Remove ACPI supportSrinath Mannam1-8/+0
Unlike DT framework, thermal-zones and its parameters can't be parsed using ACPI framework. So that ACPI support is removed in this driver. Signed-off-by: Srinath Mannam <[email protected]> Reported-by: David Woodhouse <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: Fix build error of missing devm_ioremap_resource on UMTalel Shenhar1-0/+1
The devres.o gets linked if HAS_IOMEM is present so on ARCH=um allyesconfig (COMPILE_TEST) failed on many files with: drivers/thermal/thermal_mmio.o: In function 'thermal_mmio_probe':thermal_mmio.c:(.text+0xe1): undefined reference to `devm_ioremap_resource' The users of devm_ioremap_resource() which are compile-testable should depend on HAS_IOMEM. Reported-by: kbuild test robot <[email protected]> Signed-off-by: Talel Shenhar <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal/drivers/cpu_cooling: Remove pointless fieldDaniel Lezcano1-5/+2
The structure cpufreq_cooling_device provides a backpointer to the thermal device but this one is used for a trace and to unregister. For the trace, we don't really need this field and the unregister function as the same pointer passed as parameter. Remove it. Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Daniel Lezcano <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX)Daniel Lezcano1-15/+1
For license auditing purpose, let's add the SPDX tag. Signed-off-by: Daniel Lezcano <[email protected]> Acked-by: Viresh Kumar <[email protected]> Acked-by: Philippe Ombredanne <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal/drivers/cpu_cooling: Fixup the header and copyrightDaniel Lezcano1-2/+4
The copyright format does not conform to the format requested by Linaro: https://wiki.linaro.org/Copyright Fix it. Signed-off-by: Daniel Lezcano <[email protected]> Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal/drivers/cpu_cooling: Remove pointless test in power2state()Daniel Lezcano1-1/+0
When the static power computation was removed, the test with the power being negative was not removed. However, the substraction which was responsible of the negative value was removed and the variable is now an u32. A double reason to remove the test which does not make sense. Fixes: 84fe2cab48590 ("cpu_cooling: Drop static-power related stuff") Cc: Viresh Kumar <[email protected]> Signed-off-by: Daniel Lezcano <[email protected]> Acked-by: Viresh Kumar <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: rcar_gen3_thermal: disable interrupt in .removeJiada Wang1-0/+3
Currently IRQ remains enabled after .remove, later if device is probed, IRQ is requested before .thermal_init, this may cause IRQ function be called before device is initialized. this patch disables interrupt in .remove, to ensure irq function only be called after device is fully initialized. Signed-off-by: Jiada Wang <[email protected]> Reviewed-by: Simon Horman <[email protected]> Reviewed-by: Daniel Lezcano <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: rcar_gen3_thermal: fix interrupt typeJiada Wang1-32/+6
Currently IRQF_SHARED type interrupt line is allocated, but it is not appropriate, as the interrupt line isn't shared between different devices, instead IRQF_ONESHOT is the proper type. By changing interrupt type to IRQF_ONESHOT, now irq handler is no longer needed, as clear of interrupt status can be done in threaded interrupt context. Because IRQF_ONESHOT type interrupt line is kept disabled until the threaded handler has been run, so there is no need to protect read/write of REG_GEN3_IRQSTR with lock. Fixes: 7d4b269776ec6 ("enable hardware interrupts for trip points") Signed-off-by: Jiada Wang <[email protected]> Reviewed-by: Simon Horman <[email protected]> Tested-by: Simon Horman <[email protected]> Reviewed-by: Daniel Lezcano <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: Introduce devm_thermal_of_cooling_device_registerGuenter Roeck2-0/+62
thermal_of_cooling_device_register() and thermal_cooling_device_register() are typically called from driver probe functions, and thermal_cooling_device_unregister() is called from remove functions. This makes both a perfect candidate for device managed functions. Introduce devm_thermal_of_cooling_device_register(). This function can also be used to replace thermal_cooling_device_register() by passing a NULL pointer as device node. The new function requires both struct device * and struct device_node * as parameters since the struct device_node * parameter is not always identical to dev->of_node. Don't introduce a device managed remove function since it is not needed at this point. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14dt-bindings: thermal: generic-adc: make lookup-table optionalJean-Francois Dagenais1-2/+8
Update binding description making lookup-table optional. Signed-off-by: Jean-Francois Dagenais <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: generic-adc: make lookup table optionalJean-Francois Dagenais1-3/+6
Certain ADC channels, such as the xilinx-ams temperature channels, give milliCelcius already when read with iio_read_channel_processed. Rather than having to provide a 1:1 dummy lookup table, simply allow to bypass the mechanism. Signed-off-by: Jean-Francois Dagenais <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: qoriq: Remove unnecessary DT node is NULL checkAndrey Smirnov1-5/+0
It's impossible to use this driver outside of Device Tree, so if the probe function is called, the dev.of_node is guaranteed to not be NULL and guarding against that is pointless. Drop it. Signed-off-by: Andrey Smirnov <[email protected]> Acked-by: Daniel Lezcano <[email protected]> Cc: Chris Healy <[email protected]> Cc: Lucas Stach <[email protected]> Cc: Eduardo Valentin <[email protected]> Cc: Daniel Lezcano <[email protected]> Cc: Angus Ainslie (Purism) <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: Introduce Amazon's Annapurna Labs Thermal DriverTalel Shenhar4-0/+146
This is a generic thermal driver for simple MMIO sensors, of which amazon,al-thermal is one. This device uses a single MMIO transaction to read the temperature and report it to the thermal subsystem. Signed-off-by: Talel Shenhar <[email protected]> Reviewed-by: David Woodhouse <[email protected]> Reviewed-by: Daniel Lezcano <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14dt-bindings: thermal: al-thermal: Add binding documentationTalel Shenhar1-0/+33
Add thermal binding documentation for Amazon's Annapurna Labs Thermal Sensor. Signed-off-by: Talel Shenhar <[email protected]> Reviewed-by: David Woodhouse <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14thermal: rcar_gen3_thermal: Fix init value of IRQCTL registerHoan Nguyen An1-1/+1
Fix setting value for IRQCTL register. We are setting the last 6 bits of (IRQCTL) to be 1 (0x3f), this is only suitable for H3ES1.*, according to Hardware manual values 1 are "setting prohibited" for Gen3. Signed-off-by: Hoan Nguyen An <[email protected]> Acked-by: Wolfram Sang <[email protected]> Reviewed-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Move calibration constants to header fileAmit Kucheria2-5/+5
This will allow calibration routines to correctly include the constants from anywhere and allow more code sharing. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Add generic support for TSENS v1 IPAmit Kucheria4-1/+202
qcs404 has a single TSENS IP block with 10 sensors. It uses version 1.4 of the TSENS IP, functionality for which is encapsulated inside the qcom,tsens-v1 compatible. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14dt: thermal: tsens: Add bindings for qcs404Amit Kucheria1-0/+14
qcs404 uses v1 of the TSENS IP block. Create a fallback DT property "qcom,tsens-v1" to gather common code Signed-off-by: Amit Kucheria <[email protected]> Reviewed-by: Rob Herring <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Common get_temp() learns to do ADC conversionAmit Kucheria1-4/+9
get_temp() learns to return temperature regardless of whether it is returned as ADC code or direct temperature. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Move get_temp_tsens_v2 to allow sharingAmit Kucheria3-36/+37
Just rename the function and move it to allow code sharing with future versions of TSENS IP Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: simplify get_temp_tsens_v2 routineAmit Kucheria1-38/+17
The current implementation is based on an algorithm published in the docs. Instead of reading the temperature thrice w/o any explanation, improve the algorithm. This will become the basis for a common get_temp routine in the future. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Introduce IP-specific max_sensor countAmit Kucheria4-2/+6
The IP can support 'm' sensors while the platform can enable 'n' sensors of the 'm' where n <= m. Track maximum sensors supported by the IP so that we can correctly track what subset of the sensors are supported on the platform. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: change data type for sensor IDsAmit Kucheria1-2/+2
The IDs cannot be negative, fix the data type. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Add new operation to check if a sensor is enabledAmit Kucheria5-0/+22
is_sensor_enabled() checks if the sensors are enabled on this platform. It is possible that the SoC might choose not to enable all the sensors that the IP block is capable of supporting. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Don't print error message on -EPROBE_DEFERAmit Kucheria1-1/+2
We print a calibration failure message on -EPROBE_DEFER from nvmem/qfprom as follows: [ 3.003090] qcom-tsens 4a9000.thermal-sensor: version: 1.4 [ 3.005376] qcom-tsens 4a9000.thermal-sensor: tsens calibration failed [ 3.113248] qcom-tsens 4a9000.thermal-sensor: version: 1.4 This confuses people when, in fact, calibration succeeds later when nvmem/qfprom device is available. Don't print this message on a -EPROBE_DEFER. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Save reference to the device pointer and use itAmit Kucheria1-7/+8
Code cleanup making it easier to read Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14drivers: thermal: tsens: Introduce reg_fields to deal with register descriptionAmit Kucheria5-58/+370
As we add support for newer versions of the TSENS IP, the current approach isn't scaling because registers and bitfields get moved around, requiring platform-specific hacks in the code. By moving to regmap, we can hide the register level differences away from the code. Define a common set of registers and bit-fields that we care about across the various tsens IP versions. Signed-off-by: Amit Kucheria <[email protected]> Signed-off-by: Eduardo Valentin <[email protected]>
2019-05-14net/mlx5: Set completion EQs as shared resourcesYishai Hadas2-1/+4
Mark completion EQs as shared resources so that they can be used by CQs with uid != 0. Fixes: 7efce3691d33 ("IB/mlx5: Add obj create and destroy functionality") Signed-off-by: Yishai Hadas <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]> Signed-off-by: Jason Gunthorpe <[email protected]>
2019-05-14IB/mlx5: Verify DEVX general object type correctlyYishai Hadas1-3/+10
As the obj_id in the firmware is not globally unique in general_object, the object type must be considered upon checking for a valid object id. Fixes: 2351776e87a1 ("IB/mlx5: Verify DEVX object type") Signed-off-by: Yishai Hadas <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]> Signed-off-by: Jason Gunthorpe <[email protected]>
2019-05-14kdb: Fix bound check compiler warningWenlin Kang1-1/+1
The strncpy() function may leave the destination string buffer unterminated, better use strscpy() instead. This fixes the following warning with gcc 8.2: kernel/debug/kdb/kdb_io.c: In function 'kdb_getstr': kernel/debug/kdb/kdb_io.c:449:3: warning: 'strncpy' specified bound 256 equals destination size [-Wstringop-truncation] strncpy(kdb_prompt_str, prompt, CMD_BUFLEN); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Wenlin Kang <[email protected]> Signed-off-by: Daniel Thompson <[email protected]>
2019-05-14ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idleRajat Jain1-0/+4
I noticed that recently multiple systems (chromebooks) couldn't wake from S0ix using LID or Keyboard after updating to a newer kernel. I bisected and it turned up commit f941d3e41da7 ("ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle"). I checked that the issue got fixed if that commit was reverted. I debugged and found that although PNP0C0D:00 (representing the LID) is wake capable and should wakeup the system per the code in acpi_wakeup_gpe_init() and in drivers/acpi/button.c: localhost /sys # cat /proc/acpi/wakeup Device S-state Status Sysfs node LID0 S4 *enabled platform:PNP0C0D:00 CREC S5 *disabled platform:GOOG0004:00 *disabled platform:cros-ec-dev.1.auto *disabled platform:cros-ec-accel.0 *disabled platform:cros-ec-accel.1 *disabled platform:cros-ec-gyro.0 *disabled platform:cros-ec-ring.0 *disabled platform:cros-usbpd-charger.2.auto *disabled platform:cros-usbpd-logger.3.auto D015 S3 *enabled i2c:i2c-ELAN0000:00 PENH S3 *enabled platform:PRP0001:00 XHCI S3 *enabled pci:0000:00:14.0 GLAN S4 *disabled WIFI S3 *disabled pci:0000:00:14.3 localhost /sys # On debugging, I found that its corresponding GPE is not being enabled. The particular GPE's "gpe_register_info->enable_for_wake" does not have any bits set when acpi_enable_all_wakeup_gpes() comes around to use it. I looked at code and could not find any other code path that should set the bits in "enable_for_wake" bitmask for the wake enabled devices for s2idle. [I do see that it happens for S3 in acpi_sleep_prepare()]. Thus I used the same call to enable the GPEs for wake enabled devices, and verified that this fixes the regression I was seeing on multiple of my devices. [ rjw: The problem is that commit f941d3e41da7 ("ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle") forgot to add the acpi_enable_wakeup_devices() call for s2idle along with acpi_enable_all_wakeup_gpes(). ] Fixes: f941d3e41da7 ("ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle") Link: https://bugzilla.kernel.org/show_bug.cgi?id=203579 Signed-off-by: Rajat Jain <[email protected]> [ rjw: Subject & changelog ] Cc: 5.0+ <[email protected]> # 5.0+ Signed-off-by: Rafael J. Wysocki <[email protected]>