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

4 commits

  • [ Upstream commit 14639a22de657eabbb776f503a816594393cc935 ]

    With commit 3a6f0fb7b8eb ("regmap: irq: Add support to clear ack
    registers"), the cpcap interrupts are no longer getting acked properly
    leading to a very unresponsive device with CPUs fully loaded spinning
    in the threaded IRQ handlers.

    To me it looks like the clear_ack commit above actually fixed a long
    standing bug in regmap_irq_thread() where we unconditionally acked the
    interrupts earlier without considering ack_invert. And the issue with
    cpcap started happening as we now also consider ack_invert.

    Tim Harvey tried to fix this issue earlier with
    "[PATCH v2] regmap: irq: fix ack-invert", but the reading of the ack
    register was considered unnecessary for just ack_invert, and we did not
    have clear_ack available yet. As the cpcap irqs worked both with and
    without ack_invert earlier because of the unconditional ack, the
    problem remained hidden until now.

    Also, looks like the earlier v3.0.8 based Motorola Android Linux kernel
    does clear_ack style read-clear-write with "ireg_val & ~mreg_val" instead
    of just ack_invert style write. So let's switch cpcap to use clear_ack
    to fix the issue.

    Fixes: 3a6f0fb7b8eb ("regmap: irq: Add support to clear ack registers")
    Cc: Carl Philipp Klemm
    Cc: Laxminath Kasam
    Cc: Merlijn Wajer
    Cc: Mark Brown
    Cc: Pavel Machek
    Cc: Sebastian Reichel
    Cc: Tim Harvey
    Signed-off-by: Tony Lindgren
    Tested-by: Pavel Machek
    Reviewed-By: Tim Harvey
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit d75846ed08e6f4135ec73778575c34d9c0ace993 ]

    'ret' may be 0 so, dev_err_probe() should be called only when 'ret' is
    an error code.

    Fixes: 41c9c06c491a ("mfd: stmfx: Simplify with dev_err_probe()")
    Signed-off-by: Amelie Delaunay
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin

    Amelie Delaunay
     
  • [ Upstream commit de1292817cf736c04fab31903a6aa9d9ffe60b79 ]

    Currently the Kontron sl28cpld Board Management Controller is found only
    on Kontron boards equipped with a Freescale Layerscape SoC. Hence add a
    dependency on ARCH_LAYERSCAPE, to prevent asking the user about a driver
    for this controller when configuring a kernel without Layerscape support.

    Fixes: a538ad229bbee4f8 ("mfd: simple-mfd-i2c: Add sl28cpld support")
    Signed-off-by: Geert Uytterhoeven
    Acked-by: Michael Walle
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin

    Geert Uytterhoeven
     
  • [ Upstream commit 9a463284706c5217872c3cadaca863d47129bd95 ]

    htcpld_register_chip_i2c() misses to call i2c_put_adapter() in an error
    path. Add the missed function call to fix it.

    Fixes: 6048a3dd2371 ("mfd: Add HTCPLD driver")
    Signed-off-by: Jing Xiangfeng
    Signed-off-by: Lee Jones
    Signed-off-by: Sasha Levin

    Jing Xiangfeng
     

18 Dec, 2020

3 commits

  • * regulator/next: (15 commits)
    LF-2202-2: regulator: pca9450: add enable_value for all bucks
    regulator: pf1550-rpmsg: convert pm_qos_*() usage to new cpu_latency_qos_*()
    MLK-23562: regulator: core: adjust supply voltage in bypass
    MLK-13793-6 regulator: anatop: fix min dropout for bypass mode
    MLK-11550-1: regulator: pfuze100: restore some registers after LPSR for pfuze3000
    ...

    BJ DevOps Team
     
  • * mxc/next: (279 commits)
    LF-2111-2: mxc: vpu_windsor: Avoid hide parameter
    MLK-24960: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: move timestamp manager to firmware
    MLK-24959: [8QM_MEK/8QXP_MEK]mxc:vpu_windsor: move timestamp handler to firmware
    MLK-24906: [8QM_MEK/8QXP_MEK]mxc:vpu_malone: report V4L2_COLORSPACE_DEFAULT before seq hdr found
    MLK-24593:[8QM_MEK/8QXP_MEK]mxc:vpu_windsor: support change bitrate dynamically
    ...

    BJ DevOps Team
     
  • * misc/next: (8 commits)
    LF-2567-5 dma-buf: inlcude new headfile linux/dma-map-ops.h
    MGS-5565-1 staging: android: ion: Flush outer cache after zero CMA allocated memory
    MGS-5565 staging: android: ion: Flush cache after zero CMA allocated memory
    Documentation: mfd: Add DT bindings for i.MX Mix
    mfd: Add i.MX generic mix support
    ...

    BJ DevOps Team
     

14 Dec, 2020

13 commits

  • in 5451781dadf85000665e0e2c3288e9e0f34b860a commit, it added the check that
    the regulator need to be disabled before calling regulator_put().
    If not do so, the kernel will print warning message as below.

    To fix this, need to disable regulator before probe function return if this
    PMIC is not found. regulator_put() will be called when probe fails in this case
    as devm_regulator_get() already called in probe function.

    [ 0.269916] i2c i2c-2: Max17135 PMIC not found!
    [ 0.270004] ------------[ cut here ]------------
    [ 0.270145] WARNING: CPU: 0 PID: 1 at drivers/regulator/core.c:2039 _regulator_put.part.4+0x100/0x120
    [ 0.270166] Modules linked in:
    [ 0.270196] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.3.0-rc3-next-20190809-02777-g23dc3ed #22
    [ 0.270214] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    [ 0.270250] [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [ 0.270281] [] (show_stack) from [] (dump_stack+0xd8/0x110)
    [ 0.270310] [] (dump_stack) from [] (__warn.part.3+0xa8/0xe8)
    [ 0.270335] [] (__warn.part.3) from [] (warn_slowpath_null+0x40/0x4c)
    [ 0.270361] [] (warn_slowpath_null) from [] (_regulator_put.part.4+0x100/0x120)
    [ 0.270385] [] (_regulator_put.part.4) from [] (regulator_put+0x2c/0x3c)
    [ 0.270414] [] (regulator_put) from [] (release_nodes+0x1ac/0x1f8)
    [ 0.270444] [] (release_nodes) from [] (really_probe+0x104/0x340)
    [ 0.270467] [] (really_probe) from [] (driver_probe_device+0x84/0x194)
    [ 0.270492] [] (driver_probe_device) from [] (bus_for_each_drv+0x7c/0xc4)
    [ 0.270516] [] (bus_for_each_drv) from [] (__device_attach+0xcc/0x140)
    [ 0.270539] [] (__device_attach) from [] (bus_probe_device+0x88/0x90)
    [ 0.270563] [] (bus_probe_device) from [] (device_add+0x608/0x754)
    [ 0.270591] [] (device_add) from [] (i2c_new_client_device+0x12c/0x20c)
    [ 0.270615] [] (i2c_new_client_device) from [] (i2c_new_device+0x8/0x14)
    [ 0.270641] [] (i2c_new_device) from [] (of_i2c_register_devices+0x90/0x110)
    [ 0.270666] [] (of_i2c_register_devices) from [] (i2c_register_adapter+0x148/0x3ec)
    [ 0.270691] [] (i2c_register_adapter) from [] (i2c_imx_probe+0x37c/0x830)
    [ 0.270719] [] (i2c_imx_probe) from [] (platform_drv_probe+0x48/0x98)
    [ 0.270747] [] (platform_drv_probe) from [] (really_probe+0x1dc/0x340)
    [ 0.270773] [] (really_probe) from [] (driver_probe_device+0x84/0x194)
    [ 0.270797] [] (driver_probe_device) from [] (device_driver_attach+0x58/0x60)
    [ 0.270821] [] (device_driver_attach) from [] (__driver_attach+0x58/0xd0)
    [ 0.270844] [] (__driver_attach) from [] (bus_for_each_dev+0x70/0xb4)
    [ 0.270867] [] (bus_for_each_dev) from [] (bus_add_driver+0x198/0x1d0)
    [ 0.270890] [] (bus_add_driver) from [] (driver_register+0x74/0x108)
    [ 0.270916] [] (driver_register) from [] (do_one_initcall+0x80/0x338)
    [ 0.270946] [] (do_one_initcall) from [] (kernel_init_freeable+0x2fc/0x3d8)
    [ 0.270973] [] (kernel_init_freeable) from [] (kernel_init+0x8/0x110)
    [ 0.270997] [] (kernel_init) from [] (ret_from_fork+0x14/0x20)
    [ 0.271015] Exception stack(0xec0e9fb0 to 0xec0e9ff8)
    [ 0.271038] 9fa0: 00000000 00000000 00000000 00000000
    [ 0.271059] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [ 0.271077] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
    [ 0.271094] irq event stamp: 70901
    [ 0.271125] hardirqs last enabled at (70909): [] console_unlock+0x418/0x5f4
    [ 0.271149] hardirqs last disabled at (70916): [] console_unlock+0x88/0x5f4
    [ 0.271173] softirqs last enabled at (69156): [] __do_softirq+0x2c4/0x514
    [ 0.271198] softirqs last disabled at (68881): [] irq_exit+0x100/0x188
    [ 0.271268] ---[ end trace 579e47ca40f2be36 ]---

    Signed-off-by: Robby Cai

    Robby Cai
     
  • export symbols to fix build error as a module:

    ERROR: "max17135_reg_read" [drivers/hwmon/max17135-hwmon.ko] undefined!

    Signed-off-by: Julien Olivain
    Acked-by: Robby Cai

    Julien Olivain
     
  • i2c device client shouldn't be freed by i2c device driver, there have
    problems in below cases:
    - one device match to different drivers, the second matched driver will
    cannot access i2c device client if it is freed by the first matched
    driver.
    - one module driver insmod: the first insmod fail free client due to system
    low memory, after kswapd system free pages and has enough free pages, the
    second insmod will cause match failed.

    Signed-off-by: Fugang Duan
    Signed-off-by: Vipul Kumar

    Fugang Duan
     
  • Add PMIC 'MAX17135' module drivers to 4.1.y kernel. These are necessary
    to supply power for E-ink panel display functions.

    Signed-off-by: Robby Cai
    Signed-off-by: Vipul Kumar

    Robby Cai
     
  • Complete cts value for 32kHz and different pixel clock,
    otherwise there is no sound for 32kHz.

    Signed-off-by: Shengjiu Wang
    Reviewed-by: Sandor Yu

    Shengjiu Wang
     
  • Add imx6 hdmi code driver.
    This patch forwards imx6 HDMI code driver from imx_4.19.y kernel.

    Signed-off-by: Sandor Yu

    Sandor Yu
     
  • Some of the i.MX SoCs have a IP for interfacing the dedicated IPs with
    clocks, resets and interrupts, plus some other specific control registers.
    To allow the functionality to be split between drivers, this MFD driver is
    added that has only two purposes: register the devices and map the entire
    register addresses. Everything else is left to the dedicated drivers that
    will bind to the registered devices.

    Signed-off-by: Abel Vesa

    Abel Vesa
     
  • There is issue that system can't enter suspend while the si476x is
    working.

    The reason is that with the workqueue thread is still working after
    i2c enter suspend, then cause the cpu_suspend function failed.

    This patch is to use the system_freezable_wq instead of the system_wq,
    that the workqueue will be freeze before system enter suspend.

    Signed-off-by: Shengjiu Wang
    Reviewed-by: Viorel Suman

    Shengjiu Wang
     
  • The si476x_core_get_revision_info will send i2c command to FM module, if it
    return error, there is no FM modules attached, so we need't to register the
    sound card. otherwise, the pulseaudio will access this sound card, but
    return a lot of i2c error.

    Signed-off-by: Shengjiu Wang
    (cherry picked from commit 4c8e9916128f05f9b4115e1ee1af4a1e7d800c4a)
    Signed-off-by: Vipul Kumar

    Shengjiu Wang
     
  • Currently, si476x-rev1.0 and si476x-rev4.0 board just support A10
    compatible command set. For si476x-rev1.0 board, its firmware revision is
    unsupported and will revert to A10 compatible function. For si476x-rev4.0
    board, its firmware revision is two and will use A30 function, but A30
    command set function can't work for the rev4.0 board.
    So make the command set configurable in dts. If "revision-a10" is present,
    set the revision to SI476X_REVISION_A10 to use A10 compatible commit set.
    Otherwise, get the revision from si476x register.

    Signed-off-by: Zidan Wang
    (cherry picked from commit b648714c3b71ee084188ae04b1e6a6f2554fe2cb)
    Signed-off-by: Vipul Kumar

    Zidan Wang
     
  • Add of_compatible for si476x-codec, then si476x-codec driver will have
    codec_of_node, So machine driver can use the codec_of_node.

    Signed-off-by: Shengjiu Wang
    (cherry picked from commit e2ec44f91a21b127e155e8317d06e8ead7fd2678)
    (cherry picked from commit ac6decaf5414e784ae81a524edc2f32060061b59)
    Signed-off-by: Vipul Kumar

    Shengjiu Wang
     
  • cherry-pick below patch from imx_3.14.y
    ENGR00276567-6 mfd: si476x: Use default configuration when no platform data

    This would allow the driver to work normally without specific platform
    data, when using devicetree for example.

    Signed-off-by: Nicolin Chen
    (cherry picked from commit 23e369b88b546d7b699ca9ec46e195a05c61b717)
    (cherry picked from commit a2449e1d303e341f32556fb7f4ebc7dcbdd9ead1)
    Signed-off-by: Vipul Kumar

    Nicolin Chen
     
  • cherry-pick below patch from imx_3.14.y
    ENGR00276567-4 mfd: si476x: Fix power up failure

    This's some logical error in power-up code, thus fix it.

    Signed-off-by: Nicolin Chen
    (cherry picked from commit 77d97ad1bb77c0e3c60b9781a06b61d4b4667de1)
    (cherry picked from commit b656522da2685ef9a4da2229b6786d5cd0c12189)
    Signed-off-by: Vipul Kumar
    Signed-off-by: Shengjiu Wang

    Nicolin Chen
     

15 Oct, 2020

1 commit

  • 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
     

05 Oct, 2020

2 commits

  • drivers/mfd/kempld-core.c:556:36: warning: unused variable 'kempld_acpi_table' [-Wunused-const-variable]

    Signed-off-by: Lee Jones

    Lee Jones
     
  • Fixes the following randconfig build error:

    ld: drivers/mfd/simple-mfd-i2c.o: in function `simple_mfd_i2c_probe':
    simple-mfd-i2c.c:(.text+0x48): undefined reference to `__devm_regmap_init_i2c'
    ld: drivers/mfd/simple-mfd-i2c.o: in function `simple_mfd_i2c_driver_init':
    simple-mfd-i2c.c:(.init.text+0x14): undefined reference to `i2c_register_driver'
    ld: drivers/mfd/simple-mfd-i2c.o: in function `simple_mfd_i2c_driver_exit':
    simple-mfd-i2c.c:(.exit.text+0xd): undefined reference to `i2c_del_driver'

    Reported-by: Randy Dunlap
    Tested-by: Randy Dunlap # build-tested
    Acked-by: Randy Dunlap
    Signed-off-by: Lee Jones

    Lee Jones
     

01 Oct, 2020

3 commits

  • Build this driver on another platforms if COMPILE_TEST=y. Another
    drivers may depend on this, for example leds-asic3.

    Signed-off-by: Marek Behún
    Signed-off-by: Lee Jones

    Marek Behún
     
  • Recent Kontron COMe modules identify the PLD device using the hardware
    id KEM0001 in the ACPI table.
    This patch adds support for probing the device using the HID and also
    retrieving the resources.

    As this is not available for all products, the DMI based detection still
    needs to be around for older systems. It is executed if no matching ACPI
    HID is found during registering the platform driver or no specific
    device id is forced.
    If a device is detected using ACPI and no resource information is
    available, the default io resource is used.

    Forcing a device id with the force_device_id parameter and therefore
    manually generating a platform device takes precedence over ACPI during
    probing.

    Signed-off-by: Michael Brunner
    Signed-off-by: Lee Jones

    Michael Brunner
     
  • This patch implements the basic functions of the BMC chip for some Intel
    FPGA PCIe Acceleration Cards (PAC). The BMC is implemented using the
    Intel MAX 10 CPLD.

    This BMC chip is connected to the FPGA by a SPI bus. To provide direct
    register access from the FPGA, the "SPI slave to Avalon Master Bridge"
    (spi-avmm) IP is integrated in the chip. It converts encoded streams of
    bytes from the host to the internal register read/write on the Avalon
    bus. So This driver uses the regmap-spi-avmm for register accessing.

    Signed-off-by: Xu Yilun
    Signed-off-by: Wu Hao
    Signed-off-by: Matthew Gerlach
    Signed-off-by: Russ Weight
    Reviewed-by: Tom Rix
    Signed-off-by: Lee Jones

    Xu Yilun
     

30 Sep, 2020

13 commits