04 Jan, 2021

2 commits

  • 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
     
  • This is the 5.10.3 stable release

    * tag 'v5.10.3': (41 commits)
    Linux 5.10.3
    md: fix a warning caused by a race between concurrent md_ioctl()s
    nl80211: validate key indexes for cfg80211_registered_device
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     

30 Dec, 2020

11 commits

  • commit fc3e62e25c3896855b7c3d72df19ca6be3459c9f upstream.

    smp2p_update_bits() should disable interrupts when it acquires its
    spinlock. This is important because without the _irqsave, a priority
    inversion can occur.

    This function is called both with interrupts enabled in
    qcom_q6v5_request_stop(), and with interrupts disabled in
    ipa_smp2p_panic_notifier(). IRQ handling of spinlocks should be
    consistent to avoid the panic notifier deadlocking because it's
    sitting on the thread that's already got the lock via _request_stop().

    Found via lockdep.

    Cc: stable@vger.kernel.org
    Fixes: 50e99641413e7 ("soc: qcom: smp2p: Qualcomm Shared Memory Point to Point")
    Reviewed-by: Bjorn Andersson
    Reviewed-by: Stephen Boyd
    Signed-off-by: Evan Green
    Link: https://lore.kernel.org/r/20200929133040.RESEND.1.Ideabf6dcdfc577cf39ce3d95b0e4aa1ac8b38f0c@changeid
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Greg Kroah-Hartman

    Evan Green
     
  • [ Upstream commit c2867b2e710fc85bb39c6f6e5948450c48e8a33e ]

    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.

    Fixes: e943c43b32ce ("PM: AVS: rockchip-io: Move the driver to the rockchip specific drivers")
    Reported-by: Hulk Robot
    Signed-off-by: Zhang Changzhong
    Link: https://lore.kernel.org/r/1607070805-33038-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Heiko Stuebner
    Signed-off-by: Sasha Levin

    Zhang Changzhong
     
  • [ Upstream commit 28f851e6afa858f182802e23ac60c3ed7d1c04a1 ]

    if of_find_device_by_node() succeed, meson_canvas_get() doesn't have
    a corresponding put_device(). Thus add put_device() to fix the exception
    handling for this function implementation.

    Fixes: 382f8be04551 ("soc: amlogic: canvas: Fix meson_canvas_get when probe failed")
    Signed-off-by: Yu Kuai
    Reviewed-by: Neil Armstrong
    Signed-off-by: Kevin Hilman
    Link: https://lore.kernel.org/r/20201117011322.522477-1-yukuai3@huawei.com
    Signed-off-by: Sasha Levin

    Yu Kuai
     
  • [ Upstream commit a161ffe4b877721d8917e18e70461d255a090f19 ]

    clang static analysis reports this problem

    pdr_interface.c:596:6: warning: Branch condition evaluates
    to a garbage value
    if (!req.service_path[0])
    ^~~~~~~~~~~~~~~~~~~~

    This check that req.service_path was set in an earlier loop.
    However req is a stack variable and its initial value
    is undefined.

    So initialize req to 0.

    Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers")
    Reviewed-by: Sibi Sankar
    Signed-off-by: Tom Rix
    Link: https://lore.kernel.org/r/20200819184637.15648-1-trix@redhat.com
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Sasha Levin

    Tom Rix
     
  • [ Upstream commit 4cba398f37f868f515ff12868418dc28574853a1 ]

    Fix to return the error code from of_get_child_by_name() instaed of 0
    in knav_queue_probe().

    Fixes: 41f93af900a20d1a0a ("soc: ti: add Keystone Navigator QMSS driver")
    Reported-by: Hulk Robot
    Signed-off-by: Zhihao Cheng
    Signed-off-by: Santosh Shilimkar
    Signed-off-by: Sasha Levin

    Zhihao Cheng
     
  • [ Upstream commit b4fa73358c306d747a2200aec6f7acb97e5750e6 ]

    The patch fix two reference leak.

    1) pm_runtime_get_sync will increment pm usage counter even it
    failed. Forgetting to call put operation will result in
    reference leak.

    2) The pm_runtime_enable will increase power disable depth. Thus
    a pairing decrement is needed on the error handling path to
    keep it balanced.

    We fix it by: 1) adding call pm_runtime_put_noidle or
    pm_runtime_put_sync in error handling. 2) adding pm_runtime_disable
    in error handling, to keep usage counter and disable depth balanced.

    Fixes: 88139ed030583 ("soc: ti: add Keystone Navigator DMA support")
    Signed-off-by: Zhang Qilong
    Signed-off-by: Santosh Shilimkar
    Signed-off-by: Sasha Levin

    Zhang Qilong
     
  • [ Upstream commit ec8684847d8062496c4619bc3fcff31c19d56847 ]

    pm_runtime_get_sync will increment pm usage counter even it
    failed. Forgetting to pm_runtime_put_noidle will result in
    reference leak in knav_queue_probe, so we should fix it.

    Fixes: 41f93af900a20 ("soc: ti: add Keystone Navigator QMSS driver")
    Signed-off-by: Zhang Qilong
    Signed-off-by: Santosh Shilimkar
    Signed-off-by: Sasha Levin

    Zhang Qilong
     
  • [ Upstream commit c1995e5afaf6abf3922b5395ad1f4096951e3276 ]

    If a rstctrl reset bit is already deasserted, we can just bail out early
    not wait for rstst to clear. Otherwise we can have deassert fail for
    already deasserted resets.

    Fixes: c5117a78dd88 ("soc: ti: omap-prm: poll for reset complete during de-assert")
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 4b6ea87be44ef34732846fc71e44c41125f0c4fa ]

    On geni-i2c transfers using DMA, it was seen that if you program the
    command (I2C_READ) before calling geni_se_rx_dma_prep() that it could
    cause interrupts to fire. If we get unlucky, these interrupts can
    just keep firing (and not be handled) blocking further progress and
    hanging the system.

    In commit 02b9aec59243 ("i2c: i2c-qcom-geni: Fix DMA transfer race")
    we avoided that by making sure we didn't program the command until
    after geni_se_rx_dma_prep() was called. While that avoided the
    problems, it also turns out to be invalid. At least in the TX case we
    started seeing sporadic corrupted transfers. This is easily seen by
    adding an msleep() between the DMA prep and the writing of the
    command, which makes the problem worse. That means we need to revert
    that commit and find another way to fix the bogus IRQs.

    Specifically, after reverting commit 02b9aec59243 ("i2c:
    i2c-qcom-geni: Fix DMA transfer race"), I put some traces in. I found
    that the when the interrupts were firing like crazy:
    - "m_stat" had bits for M_RX_IRQ_EN, M_RX_FIFO_WATERMARK_EN set.
    - "dma" was set.

    Further debugging showed that I could make the problem happen more
    reliably by adding an "msleep(1)" any time after geni_se_setup_m_cmd()
    ran up until geni_se_rx_dma_prep() programmed the length.

    A rather simple fix is to change geni_se_select_dma_mode() so it's a
    true inverse of geni_se_select_fifo_mode() and disables all the FIFO
    related interrupts. Now the problematic interrupts can't fire and we
    can program things in the correct order without worrying.

    As part of this, let's also change the writel_relaxed() in the prepare
    function to a writel() so that our DMA is guaranteed to be prepared
    now that we can't rely on geni_se_setup_m_cmd()'s writel().

    NOTE: the only current user of GENI_SE_DMA in mainline is i2c.

    Fixes: 37692de5d523 ("i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller")
    Fixes: 02b9aec59243 ("i2c: i2c-qcom-geni: Fix DMA transfer race")
    Signed-off-by: Douglas Anderson
    Reviewed-by: Stephen Boyd
    Reviewed-by: Akash Asthana
    Tested-by: Dmitry Baryshkov
    Link: https://lore.kernel.org/r/20201013142448.v2.1.Ifdb1b69fa3367b81118e16e9e4e63299980ca798@changeid
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Sasha Levin

    Douglas Anderson
     
  • [ Upstream commit 4007844b05815717f522c7ea9914e24ad0ff6c79 ]

    In the error case, where a power domain cannot be powered on
    successfully at boot time (in mtk_register_power_domains),
    pm_genpd_init would still be called with is_off=false, and the
    system would later try to disable the power domain again, triggering
    warnings as disabled clocks are disabled again (and other potential
    issues).

    Also print a warning splat in that case, as this should never
    happen.

    Fixes: c84e358718a66f7 ("soc: Mediatek: Add SCPSYS power domain driver")
    Signed-off-by: Nicolas Boichat
    Link: https://lore.kernel.org/r/20200928113107.v2.1.I5e6f8c262031d0451fe7241b744f4f3111c1ce71@changeid
    Signed-off-by: Matthias Brugger
    Signed-off-by: Sasha Levin

    Nicolas Boichat
     
  • [ Upstream commit cf25d802e029c31efac8bdc979236927f37183bd ]

    This code needs to call iounmap() on one error path.

    Fixes: 2173fc7cb681 ("ARM: shmobile: R-Mobile: Add DT support for PM domains")
    Signed-off-by: Dan Carpenter
    Link: https://lore.kernel.org/r/20200923113142.GC1473821@mwanda
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Sasha Levin

    Dan Carpenter
     

26 Dec, 2020

1 commit

  • commit b9ce9b0f83b536a4ac7de7567a265d28d13e5bea upstream.

    This patch simply fixes a bug of referencing speedos[num] in every
    for-loop iteration in get_process_id function.

    Fixes: 0dc5a0d83675 ("soc/tegra: fuse: Add Tegra210 support")
    Cc:
    Signed-off-by: Nicolin Chen
    Signed-off-by: Thierry Reding
    Signed-off-by: Greg Kroah-Hartman

    Nicolin Chen
     

18 Dec, 2020

5 commits


14 Dec, 2020

21 commits

  • This patch enables ACPI support in RCPM driver.

    Signed-off-by: Peng Ma
    Signed-off-by: Ran Wang

    Peng Ma
     
  • Hardware issue:
    - Reading register RCPM_IPPDEXPCR1 always return zero, this causes
    system firmware could not get correct information and wrongly do
    clock gating for all wakeup source IP during system suspend. Then
    those IPs will never get chance to wake system.

    Workaround:
    - Copy register RCPM_IPPDEXPCR1's setting to register SCFG_SPARECR8
    to allow system firmware's psci method read it and do things accordingly.

    Signed-off-by: Biwen Li
    Signed-off-by: Ran Wang

    Biwen Li
     
  • Some power domain need to be runtime always on to keep
    the peripherals's weekup ability, for such power domain,
    add the 'GENPD_FLAG_RPM_ALWAYS_ON' flag.

    Signed-off-by: Jacky Bai
    Reviewed-by: Anson Huang

    Jacky Bai
     
  • Add the active wakeup flag if a power domain has such requirement.

    Signed-off-by: Jacky Bai
    Reviewed-by: Anson Huang
    (cherry picked from commit c545e706e40d8ae663b70fd248c7f1565dca45da)

    Jacky Bai
     
  • Add ldo-bypass in gpc driver.

    Signed-off-by: Robin Gong
    Reviewed-by: Anson Huang

    Robin Gong
     
  • Now that i.MX6QP does NOT need to handle PU power manually during
    suspend/resume, remove those unused APIs.

    Signed-off-by: Anson Huang

    Anson Huang
     
  • The i.MX8M family is a set of NXP product focus on delivering
    the latest and greatest video and audio experience combining
    state-of-the-art media-specific features with high-performance
    processing while optimized for lowest power consumption.

    i.MX8MQ, i.MX8MM, i.MX8MN, even the furture i.MX8MP are all
    belong to this family. A GPC module is used to manage all the
    PU power domain on/off. But the situation is that the number of
    power domains & the power up sequence has significate difference
    on those SoCs. Even on the same SoC. The power up sequence still
    has big difference. It makes us hard to reuse the GPCv2 driver to
    cover the whole i.MX8M family. Each time a new SoC is supported in
    the mainline kernel, we need to modify the GPCv2 driver to support
    it. We need to add or modify hundred lines of code in worst case.
    It is a bad practice for the driver maintainability.

    This driver add a more generic power domain driver that the actual
    power on/off is done by TF-A code. the abstraction give us the
    possibility that using one driver to cover the whole i.MX8M family
    in kernel side.

    Signed-off-by: Jacky Bai

    Jacky Bai
     
  • Export PU power ON/OFF APIs for suspend/resume usage, some i.MX
    platforms need to control PU power status during suspend/resume.

    Signed-off-by: Anson Huang

    Anson Huang
     
  • When running as a guest, under KVM, the CENA region is mapped
    as device memory, so uncacheable. When the memory is mapped
    as device memory, the unaligned accesses are not allowed.
    Memcpy is optimized to transfer 8 bytes at a time regardless
    of the start address and might cause alignment issues.

    Signed-off-by: Diana Craciun

    Diana Craciun
     
  • Setting the software portal configuration DE(dequeue stashing
    enable) bit. This should enable the ACP (Accelerator Coherency
    Port).

    During test this improved performance on the LS2088a slightly. No
    effect on the LX2160a.

    Signed-off-by: Youri Querry

    Youri Querry
     
  • Order preservation is a feature that will be supported
    in dpni, dpseci and dpci devices.
    This is a preliminary patch for the changes to be
    introduced in the corresponding drivers.

    Signed-off-by: Radu Alexe
    Signed-off-by: Horia Geantă

    Horia Geantă
     
  • The mechanism for indicating to HW that a frame was dropped
    when performing HW order restoration changed in QBMan 5.0 to
    use a management command instead of a special enqueue command.
    This patch implements that change when running on a QBMan 5.0
    and above device.

    Signed-off-by: Roy Pledge

    Roy Pledge
     
  • Add DPIO support for HW assisted order restoration

    Signed-off-by: Roy Pledge

    Roy Pledge
     
  • Once we enable the cacheable portal memory, we need to do
    cache flush for enqueue, vdq, buffer release, and management
    commands, as well as invalidate and prefetch for the valid bit
    of management command response and next index of dqrr.

    Signed-off-by: Haiying Wang

    Haiying Wang
     
  • Change cache enabled regsiter accessed to be cacheable
    plus non-shareable to meet the performance requirement.
    QMan's CENA region contains registers and structures that
    are 64byte in size and are inteneded to be accessed using a
    single 64 byte bus transaction, therefore this portal
    memory should be configured as cache-enabled. Also because
    the write allocate stash transcations of QBMan should be
    issued as cachable and non-coherent(non-sharable), we
    need to configure this region to be non-shareable.

    Signed-off-by: Haiying Wang

    Haiying Wang
     
  • Make sure that the QBMan device cleanup routines are executed
    when the device was previously initialized. This is needed for
    kexec since the device will keep it's state from the previous
    kernel that was executing.

    Signed-off-by: Roy Pledge

    Roy Pledge
     
  • In the last stage of deep sleep, software will trigger a Finite
    State Machine (FSM) to control the hardware procedure, such a
    board isolation, killing PLLs, removing power, and so on.

    When the system is waked up by an interrupt, the FSM controls
    the hardware to complete the early resume procedure.

    This patch configure the EPU FSM preparing for deep sleep.

    Signed-off-by: Hongbo Zhang
    Signed-off-by: Chenhui Zhao
    Signed-off-by: Ran Wang

    Ran Wang
     
  • FPGA on LX2160AQDS/LX2160ARDB connected on I2C bus, so add qixis driver
    which is basically an i2c client driver to control FPGA.

    Signed-off-by: Pankaj Bansal

    Pankaj Bansal
     
  • update the noc QoS setting for CPU & VPU on i.MX8MQ.

    Signed-off-by: Bai Ping
    Reviewed-by: Jian Li
    (cherry picked from commit 45d2dcaecce6d83e5c4a7e9488c651a05b0f05ac)

    Bai Ping
     
  • Config NOC to limit bandwidth to 4GB for both VPU
    and CPU to avoid lcdif flickering only when lcdif is enabled.

    Signed-off-by: Anson Huang
    Acked-by: Peng Fan
    Reviewed-by: Bai Ping
    (cherry picked from commit 8ab89ebeb94a423792bf588bdf2354c5960d8f13)

    Anson Huang
     
  • When configuring the kernel to not support iMX, eg:
    - make defconfig
    - make lsdk.config
    - CONFIG_ARCH_MXC=n

    The build fails:
    aarch64-fsl-linux-ld: drivers/soc/imx/secvio/imx-secvio-sc.o:
    in function `int_imx_secvio_sc_disable_irq':
    linux-nxp/drivers/soc/imx/secvio/imx-secvio-sc.c:385:
    undefined reference to `imx_scu_irq_group_enable'
    aarch64-fsl-linux-ld: drivers/soc/imx/secvio/imx-secvio-sc.o:
    in function `int_imx_secvio_sc_enable_irq':
    linux-nxp/drivers/soc/imx/secvio/imx-secvio-sc.c:343:
    undefined reference to `imx_scu_irq_group_enable'
    Makefile:1173: recipe for target 'vmlinux' failed

    It happens because secvio module requires imx-scu-irq disabled
    with CONFIG_ARCH_MXC=n.

    This patch modify the Kconfig for the module to add a dependency
    on IMX_SCU symbol.

    Fixes: 262bd66fafcb (SSI-87: soc: imx: secvio: Add support for SNVS secvio and tamper via SCFW)
    Signed-off-by: Franck LENORMAND
    Reviewed-by: Dong Aisheng

    Franck LENORMAND