20 Jan, 2021

3 commits

  • This is the 5.10.9 stable release

    * tag 'v5.10.9': (153 commits)
    Linux 5.10.9
    netfilter: nf_nat: Fix memleak in nf_nat_init
    netfilter: conntrack: fix reading nf_conntrack_buckets
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • This is the 5.10.7 stable release

    * tag 'v5.10.7': (144 commits)
    Linux 5.10.7
    scsi: target: Fix XCOPY NAA identifier lookup
    rtlwifi: rise completion at the last step of firmware callback
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • [ Upstream commit 1eda52334e6d13eb1a85f713ce06dd39342b5020 ]

    With MAX_PWM being defined to 255 the code

    unsigned long period;
    ...
    period = ctx->pwm->args.period;
    state.duty_cycle = DIV_ROUND_UP(pwm * (period - 1), MAX_PWM);

    calculates a too small value for duty_cycle if the configured period is
    big (either by discarding the 64 bit value ctx->pwm->args.period or by
    overflowing the multiplication). As this results in a too slow fan and
    so maybe an overheating machine better be safe than sorry and error out
    in .probe.

    Signed-off-by: Uwe Kleine-König
    Link: https://lore.kernel.org/r/20201215092031.152243-1-u.kleine-koenig@pengutronix.de
    Signed-off-by: Guenter Roeck
    Signed-off-by: Sasha Levin

    Uwe Kleine-König
     

13 Jan, 2021

1 commit

  • commit 84e261553e6f919bf0b4d65244599ab2b41f1da5 upstream.

    hwmon, specifically hwmon_num_channel_attrs, expects the config
    array in the hwmon_channel_info structure to be terminated by
    a zero entry. amd_energy does not honor this convention. As
    result, a KASAN warning is possible. Fix this by adding an
    additional entry and setting it to zero.

    Fixes: 8abee9566b7e ("hwmon: Add amd_energy driver to report energy counters")

    Signed-off-by: David Arcari
    Cc: Naveen Krishna Chatradhi
    Cc: Jean Delvare
    Cc: Guenter Roeck
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: David Arcari
    Acked-by: Naveen Krishna Chatradhi
    Link: https://lore.kernel.org/r/20210107144707.6927-1-darcari@redhat.com
    Signed-off-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    David Arcari
     

04 Jan, 2021

1 commit

  • This is the 5.10.4 stable release

    * tag 'v5.10.4': (717 commits)
    Linux 5.10.4
    x86/CPU/AMD: Save AMD NodeId as cpu_die_id
    drm/edid: fix objtool warning in drm_cvt_modes()
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    drivers/gpu/drm/imx/dcss/dcss-plane.c
    drivers/media/i2c/ov5640.c

    Jason Liu
     

30 Dec, 2020

2 commits

  • [ Upstream commit bce776f10069c806290eaac712ba73432ae8ecd7 ]

    pm_runtime_get_sync will increment pm usage counter
    even it failed. Forgetting to putting operation will
    result in reference leak here. We fix it by replacing
    it with pm_runtime_resume_and_get to keep usage counter
    balanced. It depends on the mainline commit[PM: runtime:
    Add pm_runtime_resume_and_get to deal with usagecounter].

    Fixes: 323aeb0eb5d9a ("hwmon: (ina3221) Add PM runtime support")
    Signed-off-by: Zhang Qilong
    Link: https://lore.kernel.org/r/20201202145320.1135614-1-zhangqilong3@huawei.com
    Signed-off-by: Guenter Roeck
    Signed-off-by: Sasha Levin

    Zhang Qilong
     
  • commit 0a4e668b5d52eed8026f5d717196b02b55fb2dc6 upstream.

    Voltages and current are reported by Zen CPUs. However, the means
    to do so is undocumented, changes from CPU to CPU, and the raw data
    is not calibrated. Calibration information is available, but again
    not documented. This results in less than perfect user experience,
    up to concerns that loading the driver might possibly damage
    the hardware (by reporting out-of range voltages). Effectively
    support for reporting voltages and current is not maintainable.
    Drop it.

    Cc: Artem S. Tashkinov
    Cc: Wei Huang
    Tested-by: Wei Huang
    Signed-off-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    Guenter Roeck
     

18 Dec, 2020

1 commit

  • * sensor/next: (31 commits)
    input: rpmsg-input: convert pm_qos_*() usage to new cpu_latency_qos_*()
    LF-665-4 input: mma8450: fix build break
    LF-375 sensor: fxls8471: set output data rate when device init
    LF-99 hwmon: mag3110: correct processing order after probe error
    MLK-22296-4 misc: mpl3115: Fix build warning when CONFIG_PM_SLEEP=n
    ...

    BJ DevOps Team
     

14 Dec, 2020

10 commits


13 Nov, 2020

1 commit


12 Nov, 2020

2 commits

  • Commit fff2d0f701e6 ("hwmon: (applesmc) avoid overlong udelay()")
    introduced an issue whereby communication with the SMC became
    unreliable with write errors like :

    [ 120.378614] applesmc: send_byte(0x00, 0x0300) fail: 0x40
    [ 120.378621] applesmc: LKSB: write data fail
    [ 120.512782] applesmc: send_byte(0x00, 0x0300) fail: 0x40
    [ 120.512787] applesmc: LKSB: write data fail

    The original code appeared to be timing sensitive and was not reliable
    with the timing changes in the aforementioned commit.

    This patch re-factors the SMC communication to remove the timing
    dependencies and restore function with the changes previously
    committed.

    Tested on : MacbookAir6,2 MacBookPro11,1 iMac12,2, MacBookAir1,1,
    MacBookAir3,1

    Fixes: fff2d0f701e6 ("hwmon: (applesmc) avoid overlong udelay()")
    Reported-by: Andreas Kemnade
    Tested-by: Andreas Kemnade # MacBookAir6,2
    Acked-by: Arnd Bergmann
    Signed-off-by: Brad Campbell
    Signed-off-by: Henrik Rydberg
    Link: https://lore.kernel.org/r/194a7d71-a781-765a-d177-c962ef296b90@fnarfbargle.com
    Signed-off-by: Guenter Roeck

    Brad Campbell
     
  • To convert the number of pulses counted into an RPM estimation, we need
    to divide by the width of our measurement interval instead of
    multiplying by it. If the width of the measurement interval is zero we
    don't update the RPM value to avoid dividing by zero.

    We also don't need to do 64-bit division, with 32-bits we can handle a
    fan running at over 4 million RPM.

    Signed-off-by: Paul Barker
    Link: https://lore.kernel.org/r/20201111164643.7087-1-pbarker@konsulko.com
    Signed-off-by: Guenter Roeck

    Paul Barker
     

04 Nov, 2020

1 commit

  • As part of commit a919ba06979a7 ("hwmon: (pmbus) Stop caching register
    values"), the update of the sensor value is now triggered directly by the
    sensor attribute value being read from sysfs. This created (or at least
    made much more likely) a locking issue, since nothing protected the device
    page selection from being unexpectedly modified by concurrent reads. If
    sensor values on different pages on the same device were being concurrently
    read by multiple threads, this could cause spurious read errors due to the
    page register not reading back the same value last written, or sensor
    values being read from the incorrect page.

    Add locking of the update_lock mutex in pmbus_show_sensor and
    pmbus_show_samples so that these cannot result in concurrent reads from the
    underlying device.

    Fixes: a919ba06979a7 ("hwmon: (pmbus) Stop caching register values")
    Signed-off-by: Robert Hancock
    Reviewed-by: Alex Qiu
    Link: https://lore.kernel.org/r/20201103193315.3011800-1-robert.hancock@calian.com
    Signed-off-by: Guenter Roeck

    Robert Hancock
     

26 Oct, 2020

1 commit

  • The snprintf() function returns the number of characters which would
    have been printed if there were enough space, but the scnprintf()
    returns the number of characters which were actually printed. If the
    buffer is not large enough, then using snprintf() would result in a
    read overflow and an information leak.

    Fixes: 8910c0bd533d ("hwmon: (pmbus/max20730) add device monitoring via debugfs")
    Signed-off-by: Dan Carpenter
    Link: https://lore.kernel.org/r/20201022070824.GC2817762@mwanda
    Signed-off-by: Guenter Roeck

    Dan Carpenter
     

25 Oct, 2020

1 commit

  • Pull ARM SoC platform updates from Olof Johansson:
    "SoC changes, a substantial part of this is cleanup of some of the
    older platforms that used to have a bunch of board files.

    In particular:

    - Remove non-DT i.MX platforms that haven't seen activity in years,
    it's time to remove them.

    - A bunch of cleanup and removal of platform data for TI/OMAP
    platforms, moving over to genpd for power/reset control (yay!)

    - Major cleanup of Samsung S3C24xx and S3C64xx platforms, moving them
    closer to multiplatform support (not quite there yet, but getting
    close).

    There are a few other changes too, smaller fixlets, etc. For new
    platform support, the primary ones are:

    - New SoC: Hisilicon SD5203, ARM926EJ-S platform.

    - Cpufreq support for i.MX7ULP"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (121 commits)
    ARM: mstar: Select MStar intc
    ARM: stm32: Replace HTTP links with HTTPS ones
    ARM: debug: add UART early console support for SD5203
    ARM: hisi: add support for SD5203 SoC
    ARM: omap3: enable off mode automatically
    clk: imx: imx35: Remove mx35_clocks_init()
    clk: imx: imx31: Remove mx31_clocks_init()
    clk: imx: imx27: Remove mx27_clocks_init()
    ARM: imx: Remove unused definitions
    ARM: imx35: Retrieve the IIM base address from devicetree
    ARM: imx3: Retrieve the AVIC base address from devicetree
    ARM: imx3: Retrieve the CCM base address from devicetree
    ARM: imx31: Retrieve the IIM base address from devicetree
    ARM: imx27: Retrieve the CCM base address from devicetree
    ARM: imx27: Retrieve the SYSCTRL base address from devicetree
    ARM: s3c64xx: bring back notes from removed debug-macro.S
    ARM: s3c24xx: fix Wunused-variable warning on !MMU
    ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
    MAINTAINERS: mark linux-samsung-soc list non-moderated
    ARM: imx: Remove remnant board file support pieces
    ...

    Linus Torvalds
     

15 Oct, 2020

2 commits

  • Pull driver core updates from Greg KH:
    "Here is the "big" set of driver core patches for 5.10-rc1

    They include a lot of different things, all related to the driver core
    and/or some driver logic:

    - sysfs common write functions to make it easier to audit sysfs
    attributes

    - device connection cleanups and fixes

    - devm helpers for a few functions

    - NOIO allocations for when devices are being removed

    - minor cleanups and fixes

    All have been in linux-next for a while with no reported issues"

    * tag 'driver-core-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (31 commits)
    regmap: debugfs: use semicolons rather than commas to separate statements
    platform/x86: intel_pmc_core: do not create a static struct device
    drivers core: node: Use a more typical macro definition style for ACCESS_ATTR
    drivers core: Use sysfs_emit for shared_cpu_map_show and shared_cpu_list_show
    mm: and drivers core: Convert hugetlb_report_node_meminfo to sysfs_emit
    drivers core: Miscellaneous changes for sysfs_emit
    drivers core: Reindent a couple uses around sysfs_emit
    drivers core: Remove strcat uses around sysfs_emit and neaten
    drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...) functions
    sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
    dyndbg: use keyword, arg varnames for query term pairs
    driver core: force NOIO allocations during unplug
    platform_device: switch to simpler IDA interface
    driver core: platform: Document return type of more functions
    Revert "driver core: Annotate dev_err_probe() with __must_check"
    Revert "test_firmware: Test platform fw loading on non-EFI systems"
    iio: adc: xilinx-xadc: use devm_krealloc()
    hwmon: pmbus: use more devres helpers
    devres: provide devm_krealloc()
    syscore: Use pm_pr_dbg() for syscore_{suspend,resume}()
    ...

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "New Drivers:
    - Add support for initialising shared (between children) Regmaps
    - Add support for Kontron SL28CPLD
    - Add support for ENE KB3930 Embedded Controller
    - Add support for Intel FPGA PAC MAX 10 BMC

    New Device Support:
    - Add support for Power to Ricoh RN5T618
    - Add support for UART to Intel Lakefield
    - Add support for LP87524_Q1 to Texas Instruments LP87565

    New Functionality:
    - Device Tree; ene-kb3930, sl28cpld, syscon, lp87565, lp87524-q1
    - Use new helper dev_err_probe(); madera-core, stmfx, wcd934x
    - Use new GPIOD API; dm355evm_msp
    - Add wake-up capability; sprd-sc27xx-spi
    - Add ACPI support; kempld-core

    Fix-ups:
    - Trivial (spelling/whitespace); Kconfig, ab8500
    - Fix for unused variables; khadas-mcu, kempld-core
    - Remove unused header file(s); mt6360-core
    - Use correct IRQ flags in docs; act8945a, gateworks-gsc, rohm,bd70528-pmic
    - Add COMPILE_TEST support; asic3, tmio_core
    - Add dependency on I2C; SL28CPLD

    Bug Fixes:
    - Fix memory leak(s); sm501
    - Do not free regmap_config's 'name' until exit; syscon"

    * tag 'mfd-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (34 commits)
    mfd: kempld-core: Fix unused variable 'kempld_acpi_table' when !ACPI
    mfd: sl28cpld: Depend on I2C
    mfd: asic3: Build if COMPILE_TEST=y
    dt-bindings: mfd: Correct interrupt flags in examples
    mfd: Add ACPI support to Kontron PLD driver
    mfd: intel-m10-bmc: Add Intel MAX 10 BMC chip support for Intel FPGA PAC
    mfd: lp87565: Add LP87524-Q1 variant
    dt-bindings: mfd: Add LP87524-Q1
    dt-bindings: mfd: lp87565: Convert to yaml
    mfd: mt6360: Remove unused include
    mfd: sm501: Fix leaks in probe()
    mfd: syscon: Don't free allocated name for regmap_config
    dt-bindings: mfd: syscon: Document Exynos3 and Exynos5433 compatibles
    dt-bindings: mfd: syscon: Merge Samsung Exynos Sysreg bindings
    dt-bindings: mfd: ab8500: Remove weird Unicode characters
    mfd: sprd: Add wakeup capability for PMIC IRQ
    mfd: intel-lpss: Add device IDs for UART ports for Lakefield
    mfd: dm355evm_msp: Convert LEDs to GPIO descriptor table
    mfd: wcd934x: Simplify with dev_err_probe()
    mfd: stmfx: Simplify with dev_err_probe()
    ...

    Linus Torvalds
     

07 Oct, 2020

2 commits

  • Problem:
    We use voltage dividers so that the voltage presented at the voltage
    sense pins is confusing. We might need to convert these readings to more
    meaningful readings given the voltage divider.

    Solution:
    Read the voltage divider resistance from dts and convert the voltage
    reading to a more meaningful reading.

    Testing:
    max20730 with voltage divider

    Signed-off-by: Chu Lin
    Reviewed-by: Guenter Roeck
    Link: https://lore.kernel.org/r/20201004031445.2321090-3-linchuyuan@google.com
    [groeck: Return -EINVAL instead of -ENODEV on bad deevicetree data]
    Signed-off-by: Guenter Roeck

    Chu Lin
     
  • PVT controller (MR75203) is used to configure & control
    Moortec embedded analog IP which contains temprature
    sensor(TS), voltage monitor(VM) & process detector(PD)
    modules. Add hardware monitoring driver to support
    MR75203 PVT controller.

    Signed-off-by: Rahul Tanwar
    Reviewed-by: Guenter Roeck
    Reviewed-by: Andy Shevchenko
    Link: https://lore.kernel.org/r/05b59cd860d2a1aa0a68ab300829efe709645184.1601889876.git.rahul.tanwar@linux.intel.com
    Signed-off-by: Guenter Roeck

    Rahul Tanwar
     

06 Oct, 2020

3 commits

  • Remove the duplicate "Mellanox" in the help text for the Mellanox FAN
    driver configuration option.

    Fixes: 65afb4c8e7e4e7e7 ("hwmon: (mlxreg-fan) Add support for Mellanox FAN driver")
    Signed-off-by: Geert Uytterhoeven
    Link: https://lore.kernel.org/r/20201005124843.26688-1-geert+renesas@glider.be
    Signed-off-by: Guenter Roeck

    Geert Uytterhoeven
     
  • Add debugfs interface support for accessing device specific registers
    (MFR_VOUT_MIN, MFR_DEVSET1 and MFR_DEVSET2) and others including
    OPERATION, ON_OFF_CONFIG, SMB_ALERT_MASK, VOUT_MODE, VOUT_COMMAND
    and VOUT_MAX.

    Signed-off-by: Ugur Usug
    Link: https://lore.kernel.org/r/MWHPR11MB1965C01083AD013C630646B2FD3B0@MWHPR11MB1965.namprd11.prod.outlook.com
    [groeck: Resolved conflics seen due to PMBus driver API changes]
    Signed-off-by: Guenter Roeck

    Ugur Usug
     
  • The max34* family have the IOUT_OC_WARN_LIMIT and IOUT_OC_CRIT_LIMIT
    registers swapped.

    Cc: stable@vger.kernel.org
    Signed-off-by: Steve Foreman
    [groeck: Updated subject, use C comment style, tab after defines]
    [groeck: Added missing break; statements (by alexandru.ardelean@analog.com)]
    Signed-off-by: Guenter Roeck

    Steve Foreman
     

04 Oct, 2020

8 commits

  • If the PVT sensor is suddenly powered down while a caller is waiting for
    the conversion completion, the request won't be finished and the task will
    hang up on this procedure until the power is back up again. Let's call the
    wait_for_completion_timeout() method instead to prevent that. The cached
    timeout is exactly what we need to predict for how long conversion could
    normally last.

    Fixes: 87976ce2825d ("hwmon: Add Baikal-T1 PVT sensor driver")
    Signed-off-by: Serge Semin
    Link: https://lore.kernel.org/r/20200920110924.19741-4-Sergey.Semin@baikalelectronics.ru
    Signed-off-by: Guenter Roeck

    Serge Semin
     
  • Instead of converting the update timeout data to the milliseconds each
    time on the read procedure let's preserve the currently set timeout in the
    dedicated driver private data cache. The cached value will be then used in
    the timeout read method and in the alarm-less data conversion to prevent
    the caller task hanging up in case if the PVT sensor is suddenly powered
    down.

    Fixes: 87976ce2825d ("hwmon: Add Baikal-T1 PVT sensor driver")
    Signed-off-by: Serge Semin
    Link: https://lore.kernel.org/r/20200920110924.19741-3-Sergey.Semin@baikalelectronics.ru
    Signed-off-by: Guenter Roeck

    Serge Semin
     
  • Baikal-T1 PVT sensor has got a dedicated power supply domain (feed up by
    the external GPVT/VPVT_18 pins). In case if it isn't powered up, the
    registers will be accessible, but the sensor conversion just won't happen.
    Due to that an attempt to read data from any PVT sensor will cause the
    task hanging up. For instance that will happen if XP11 jumper isn't
    installed on the Baikal-T1-based BFK3.1 board. Let's at least test whether
    the conversion work on the device probe procedure. By doing so will make
    sure that the PVT sensor is powered up at least at boot time.

    Fixes: 87976ce2825d ("hwmon: Add Baikal-T1 PVT sensor driver")
    Signed-off-by: Serge Semin
    Link: https://lore.kernel.org/r/20200920110924.19741-2-Sergey.Semin@baikalelectronics.ru
    Signed-off-by: Guenter Roeck

    Serge Semin
     
  • Add regulator support for boards where the sensor first need to be
    powered up before it can be used.

    Signed-off-by: Alban Bedel
    Link: https://lore.kernel.org/r/20201001145738.17326-4-alban.bedel@aerq.com
    Signed-off-by: Guenter Roeck

    Alban Bedel
     
  • This patch adds hwmon functionality for Intel MAX 10 BMC chip. This BMC
    chip connects to a set of sensor chips to monitor current, voltage,
    thermal and power of different components on board. The BMC firmware is
    responsible for sensor data sampling and recording in shared registers.
    Host driver reads the sensor data from these shared registers and
    exposes them to users as hwmon interfaces.

    Signed-off-by: Xu Yilun
    Signed-off-by: Wu Hao
    Signed-off-by: Matthew Gerlach
    Signed-off-by: Tom Rix
    Reviewed-by: Guenter Roeck
    Link: https://lore.kernel.org/r/1600669071-26235-3-git-send-email-yilun.xu@intel.com
    [groeck: Adjusted subject]
    Signed-off-by: Guenter Roeck

    Xu Yilun
     
  • Add support for mp295 device from Monolithic Power Systems, Inc. (MPS)
    vendor. This is a dual-loop, digital, multi-phase controller.
    This device:
    - Supports two power rail.
    - Provides 8 pulse-width modulations (PWMs), and can be configured up
    to 8-phase operation for rail 1 and up to 4-phase operation for rail
    2.
    - Supports two pages 0 and 1 for telemetry and also pages 2 and 3 for
    configuration.
    - Can configured VOUT readout in direct or VID format and allows
    setting of different formats on rails 1 and 2. For VID the following
    protocols are available: VR13 mode with 5-mV DAC; VR13 mode with
    10-mV DAC, IMVP9 mode with 5-mV DAC.

    Signed-off-by: Vadim Pasternak
    Link: https://lore.kernel.org/r/20200926204957.10268-2-vadimp@nvidia.com
    [groeck: Cleaned up a couple of error returns; fixed up API changes]
    Signed-off-by: Guenter Roeck

    Vadim Pasternak
     
  • Modify the comment typo: "compliment" -> "complement".

    Signed-off-by: Wang Qing
    Link: https://lore.kernel.org/r/1601086116-32218-1-git-send-email-wangqing@vivo.com
    Signed-off-by: Guenter Roeck

    Wang Qing
     
  • Factor out the common code in the accumulation functions for core and
    socket accumulation.

    While at it, handle the return value of the amd_create_sensor() function.

    Signed-off-by: Naveen Krishna Chatradhi
    Link: https://lore.kernel.org/r/20200929105322.8919-4-nchatrad@amd.com
    Signed-off-by: Guenter Roeck

    Naveen Krishna Chatradhi
     

30 Sep, 2020

1 commit

  • On a system with course grain resolution of energy unit (milli J) the
    accumulation thread can be executed less frequently than on the system
    with fine grain resolution(micro J).

    This patch sets the accumulation thread interval to an optimum value
    calculated based on the (energy unit) resolution supported by the
    hardware (assuming a peak wattage of 240W).

    Signed-off-by: Naveen Krishna Chatradhi
    Link: https://lore.kernel.org/r/20200929105322.8919-3-nchatrad@amd.com
    Signed-off-by: Guenter Roeck

    Naveen Krishna Chatradhi