22 Jul, 2020

9 commits

  • [ Upstream commit a55de412228cc5a2b4bf8d2a09849898102633e2 ]

    If we have "ti,no-idle" specified for a module we must not disable
    the the module on suspend to keep things backwards compatible.

    Fixes: 386cb76681ca ("bus: ti-sysc: Handle missed no-idle property in addition to no-idle-on-init")
    Reported-by: Grygorii Strashko
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit afe6f1eeb08f85e57f0a02b71efb5a0839606aac ]

    With CONFIG_DEBUG_ATOMIC_SLEEP enabled we can see the following with RTC probe:

    BUG: sleeping function called from invalid context at drivers/bus/ti-sysc.c:1736
    ...
    (sysc_quirk_rtc) from [] (sysc_write_sysconfig+0x1c/0x60)
    (sysc_write_sysconfig) from [] (sysc_enable_module+0x11c/0x274)
    (sysc_enable_module) from [] (sysc_probe+0xe9c/0x1380)
    (sysc_probe) from [] (platform_drv_probe+0x48/0x98)

    Fixes: e8639e1c986a ("bus: ti-sysc: Handle module unlock quirk needed for some RTC")
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 9f9113925018d500a95df539014d9ff11ac2c02d ]

    With CONFIG_DEBUG_ATOMIC_SLEEP enabled we can see the following with
    wakeirqs and serial console idled:

    BUG: sleeping function called from invalid context at drivers/bus/ti-sysc.c:242
    ...
    (sysc_wait_softreset) from [] (sysc_enable_module+0x48/0x274)
    (sysc_enable_module) from [] (sysc_runtime_resume+0x19c/0x1d8)
    (sysc_runtime_resume) from [] (sysc_child_runtime_resume+0x58/0x84)
    (sysc_child_runtime_resume) from [] (__rpm_callback+0x30/0x12c)
    (__rpm_callback) from [] (rpm_callback+0x20/0x80)
    (rpm_callback) from [] (rpm_resume+0x638/0x7fc)
    (rpm_resume) from [] (__pm_runtime_resume+0x60/0x9c)
    (__pm_runtime_resume) from [] (handle_threaded_wake_irq+0x24/0x60)
    (handle_threaded_wake_irq) from [] (irq_thread_fn+0x1c/0x78)
    (irq_thread_fn) from [] (irq_thread+0x140/0x26c)

    We have __pm_runtime_resume() call the sysc_runtime_resume() with spinlock
    held and interrupts disabled.

    Fixes: d46f9fbec719 ("bus: ti-sysc: Use optional clocks on for enable and wait for softreset bit")
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit d46f9fbec71997420e4fb83c04d9affdf423f879 ]

    Some modules reset automatically when idled, and when re-enabled, we must
    wait for the automatic OCP softreset to complete. And if optional clocks
    are configured, we need to keep the clocks on while waiting for the reset
    to complete.

    Let's fix the issue by moving the OCP softreset code to a separate
    function sysc_wait_softreset(), and call it also from sysc_enable_module()
    with the optional clocks enabled.

    This is based on what we're already doing for legacy platform data booting
    in _enable_sysc().

    Fixes: 7324a7a0d5e2 ("bus: ti-sysc: Implement display subsystem reset quirk")
    Reported-by: Faiz Abbas
    Cc: Laurent Pinchart
    Cc: Tomi Valkeinen
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 25bfaaa73c7d26a6e897559c510d7daff5e9d22d ]

    In order to probe EDMA with ti-sysc interconnect target module and with
    device tree data, we need to properly detect EDMA and set the flags for
    SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY for tptc.

    We have these flags currently set for am4 and dra7, but not for am335x.
    Let's set them for all the SoCs as the tptc module should behave the
    same for all of them. It's likely that am335x was never tested to idle
    EDMA tptc.

    Cc: Peter Ujfalusi
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 77dfece2e6d8bedb6ecd4d61379ae3dc52f389bd ]

    In order to prepare probing display subsystem (DSS) with ti-sysc
    interconnect target module driver and device tree data, let's
    detect DSS related modules.

    We need to also add reset quirk handling for DSS, but until that's
    done, let's just enable the optional clock quirks for DSS and
    omap4 HDMI. The rest is just naming of modules if CONFIG_DEBUG
    is set.

    Cc: Jyri Sarha
    Cc: Laurent Pinchart
    Cc: Tomi Valkeinen
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit e8639e1c986a8a9d0f94549170f6db579376c3ae ]

    The RTC modules on am3 and am4 need quirk handling to unlock and lock
    them for reset so let's add the quirk handling based on what we already
    have for legacy platform data. In later patches we will simply drop the
    RTC related platform data and the old quirk handling.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 590e15c76f1231329d1543570a54058dba2e4ff6 ]

    We are currently setting -1 for non-existing sysconfig related registers
    for quirks, but setting -ENODEV elsewhere. And for matching the quirks,
    we're now just ignoring the non-existing registers. This will cause issues
    with misdetecting DSS registers as the hardware revision numbers can have
    duplicates.

    To avoid this, let's standardize on using -ENODEV also for the quirks
    instead of -1. That way we can always just test for a match without adding
    any more complicated logic.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit e64c021fd92467e34b9d970a651bcaa8f326f3f2 ]

    The clk_disable_quirk and clk_enable_quirk should really be called
    pre_reset_quirk and post_reset_quirk to avoid confusion like we had
    with hdq1w reset.

    Let's also rename the related functions so the code is easier to follow.
    Note that we also have reset_done_quirk that is needed in some cases
    after checking the separate register for reset done bit.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     

01 Jul, 2020

2 commits

  • [ Upstream commit 08b91dd6e547467fad61a7c201ff71080d7ad65a ]

    We must ignore the clockactivity bit for most modules and not set it
    unless specified for the module with SYSC_QUIRK_USE_CLOCKACT. Otherwise
    the interface clock can be automatically gated constantly causing
    unexpected performance issues.

    Fixes: ae9ae12e9daa ("bus: ti-sysc: Handle clockactivity for enable and disable")
    Cc: Laurent Pinchart
    Cc: Tomi Valkeinen
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 5ce8aee81be6c8bc19051d7c7b0d3cbb7ac5fc3f ]

    Looks like we're missing flush of posted write after module enable and
    disable. I've seen occasional errors accessing various modules, and it
    is suspected that the lack of posted writes can also cause random reboots.

    The errors we can see are similar to the one below from spi for example:

    44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4CFG (Read): Data Access
    in User mode during Functional access
    ...
    mcspi_wait_for_reg_bit
    omap2_mcspi_transfer_one
    spi_transfer_one_message
    ...

    We also want to also flush posted write for disable. The clkctrl clock
    disable happens after module disable, and we don't want to have the
    module potentially stay active while we're trying to disable the clock.

    Fixes: d59b60564cbf ("bus: ti-sysc: Add generic enable/disable functions")
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     

17 Apr, 2020

1 commit

  • [ Upstream commit a43ab30dcd4a1abcdd0d2461bf1cf7c0817f6cd3 ]

    When doing a 16-bit read that returns data in the MSB byte, the
    RSB_DATA register will keep the MSB byte unchanged when doing
    the following 8-bit read. sunxi_rsb_read() will then return
    a result that contains high byte from 16-bit read mixed with
    the 8-bit result.

    The consequence is that after this happens the PMIC's regmap will
    look like this: (0x33 is the high byte from the 16-bit read)

    % cat /sys/kernel/debug/regmap/sunxi-rsb-3a3/registers
    00: 33
    01: 33
    02: 33
    03: 33
    04: 33
    05: 33
    06: 33
    07: 33
    08: 33
    09: 33
    0a: 33
    0b: 33
    0c: 33
    0d: 33
    0e: 33
    [snip]

    Fix this by masking the result of the read with the correct mask
    based on the size of the read. There are no 16-bit users in the
    mainline kernel, so this doesn't need to get into the stable tree.

    Signed-off-by: Ondrej Jirman
    Acked-by: Chen-Yu Tsai
    Signed-off-by: Maxime Ripard
    Signed-off-by: Sasha Levin

    Ondrej Jirman
     

12 Mar, 2020

1 commit

  • commit aec551c7a00fb7eae049c0c4cc3208ca53e26355 upstream.

    Because of the i2c quirk we have the reset quirks named in a confusing
    way. Let's fix the 1-wire quirk accordinlyg. Then let's switch to using
    better naming later on.

    Fixes: 4e23be473e30 ("bus: ti-sysc: Add support for module specific reset quirks")
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Tony Lindgren
     

05 Mar, 2020

1 commit

  • commit 2f56acf818a08a9187ac8ec6e3d994fc13dc368d upstream.

    The ACONNECT bus driver does not use pm-clk interface anymore and hence
    the dependency can be removed from its Kconfig option.

    Fixes: 0d7dab926130 ("bus: tegra-aconnect: use devm_clk_*() helpers")
    Signed-off-by: Sameer Pujar
    Acked-by: Jon Hunter
    Signed-off-by: Thierry Reding
    Signed-off-by: Greg Kroah-Hartman

    Sameer Pujar
     

24 Feb, 2020

1 commit

  • [ Upstream commit 94f6345712b37e4bb23cb265ce4c65b9d177e75a ]

    For dra7 dcan and dwc3 instances we need to block clockdomain autoidle.
    Let's do this with CLKDM_NOAUTO quirk flag and enable it for dcan and
    dwc3.

    Cc: Keerthy
    Cc: Roger Quadros
    Cc: Tero Kristo
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     

20 Feb, 2020

1 commit

  • commit 3bf3c9744694803bd2d6f0ee70a6369b980530fd upstream.

    The input_read function declares the size of the hex array relative to
    sizeof(buf), but buf is a pointer argument of the function. The hex
    array is meant to contain hexadecimal representation of the bin array.

    Link: https://lore.kernel.org/r/20200215142130.22743-1-marek.behun@nic.cz
    Fixes: 5bc7f990cd98 ("bus: Add support for Moxtet bus")
    Signed-off-by: Marek Behún
    Reported-by: sohu0106
    Signed-off-by: Olof Johansson
    Signed-off-by: Greg Kroah-Hartman

    Marek Behún
     

01 Feb, 2020

4 commits

  • [ Upstream commit 93c60483b5feefced92b869d5f97769495bc6313 ]

    Commit 03856e928b0e ("bus: ti-sysc: Handle mstandby quirk and use it for
    musb") added quirk handling for mstandby quirk but did not consider that
    we also need a quirk variant for SYSC_QUIRK_FORCE_MSTANDBY.

    We need to use forced idle mode for both SYSC_QUIRK_SWSUP_MSTANDBY and
    SYSC_QUIRK_FORCE_MSTANDBY, but SYSC_QUIRK_SWSUP_MSTANDBY also need to
    additionally also configure no-idle mode when enabled.

    Fixes: 03856e928b0e ("bus: ti-sysc: Handle mstandby quirk and use it for musb")
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 020003f763e24e4ed0bb3d8909f3940891536d5d ]

    We must set the autogating bit on enable for AESS (Audio Engine SubSystem)
    when probed with ti-sysc interconnect target module driver. Otherwise it
    won't idle properly.

    Cc: Peter Ujfalusi
    Tested-by: Peter Ujfalusi
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 1819ef2e2d12d5b1a6ee54ac1c2afe35cffc677c ]

    Also on am335x we need the swsup quirks for musb.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     
  • [ Upstream commit 03856e928b0e1a1c274eece1dfe4330a362c37f3 ]

    We need swsup quirks for sidle and mstandby for musb to work
    properly.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     

23 Jan, 2020

1 commit

  • commit 2c81f0f6d3f52ac222a5dc07a6e5c06e1543e88b upstream.

    Commit d878970f6ce1 ("bus: ti-sysc: Add separate functions for handling
    clocks") separated handling of optional clocks from the main clocks, but
    introduced an issue where we do not necessarily allocate a slot for both
    fck and ick clocks, but still assume fixed slots for enumerating over the
    clocks.

    Let's fix the issue by ensuring we always have slots for both fck and ick
    even if we don't use ick, and don't attempt to enumerate optional clocks
    if not allocated.

    In the long run we might want to simplify things a bit by only allocating
    space only for the optional clocks as we have only few devices with
    optional clocks.

    Fixes: d878970f6ce1 ("bus: ti-sysc: Add separate functions for handling clocks")
    Signed-off-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Tony Lindgren
     

12 Jan, 2020

1 commit

  • [ Upstream commit e709ed70d122e94cb426b1e1f905829eae19a009 ]

    We have dts property for "ti,sysc-delay-us", and we're using it, but the
    wait after OCP softreset only happens if devices are probed in legacy mode.

    Let's add a delay after writing the OCP softreset when specified.

    Fixes: e0db94fe87da ("bus: ti-sysc: Make OCP reset work for sysstatus and sysconfig reset bits")
    Cc: Keerthy
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin

    Tony Lindgren
     

18 Oct, 2019

1 commit

  • I noticed that when probed with ti-sysc, watchdog can trigger on am3, am4
    and dra7 causing a device reset.

    Turns out I made several mistakes implementing the watchdog quirk handling:

    1. We must do both writes to spr register

    2. We must also call the reset quirk on disable

    3. On am3 and am4 we need to also set swsup quirk flag

    I probably only tested this earlier with watchdog service running when the
    watchdog never gets disabled.

    Fixes: 4e23be473e30 ("bus: ti-sysc: Add support for module specific reset quirks")
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

01 Oct, 2019

1 commit

  • Pull ARM SoC fixes from Olof Johansson:
    "A few fixes that have trickled in through the merge window:

    - Video fixes for OMAP due to panel-dpi driver removal

    - Clock fixes for OMAP that broke no-idle quirks + nfsroot on DRA7

    - Fixing arch version on ASpeed ast2500

    - Two fixes for reset handling on ARM SCMI"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
    ARM: aspeed: ast2500 is ARMv6K
    reset: reset-scmi: add missing handle initialisation
    firmware: arm_scmi: reset: fix reset_state assignment in scmi_domain_reset
    bus: ti-sysc: Remove unpaired sysc_clkdm_deny_idle()
    ARM: dts: logicpd-som-lv: Fix i2c2 and i2c3 Pin mux
    ARM: dts: am3517-evm: Fix missing video
    ARM: dts: logicpd-torpedo-baseboard: Fix missing video
    ARM: omap2plus_defconfig: Fix missing video
    bus: ti-sysc: Fix handling of invalid clocks
    bus: ti-sysc: Fix clock handling for no-idle quirks

    Linus Torvalds
     

30 Sep, 2019

1 commit

  • …git/tmlind/linux-omap into arm/fixes

    Fixes for omap variants

    Few fixes for ti-sysc interconnect target module driver for no-idle
    quirks that caused nfsroot to fail on some dra7 boards.

    And let's fixes to get LCD working again for logicpd board that got
    broken a while back with removal of panel-dpi driver. We need to now
    use generic CONFIG_DRM_PANEL_SIMPLE instead.

    * tag 'fixes-5.4-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    bus: ti-sysc: Remove unpaired sysc_clkdm_deny_idle()
    ARM: dts: logicpd-som-lv: Fix i2c2 and i2c3 Pin mux
    ARM: dts: am3517-evm: Fix missing video
    ARM: dts: logicpd-torpedo-baseboard: Fix missing video
    ARM: omap2plus_defconfig: Fix missing video
    bus: ti-sysc: Fix handling of invalid clocks
    bus: ti-sysc: Fix clock handling for no-idle quirks

    Link: https://lore.kernel.org/r/pull-1568819401-72461@atomide.com
    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

21 Sep, 2019

1 commit

  • Pull ARM SoC late updates from Arnd Bergmann:
    "This is some material that we picked up into our tree late or that had
    complex inter-depondencies. The fact that there are these
    interdependencies tends to meant that these are often actually the
    most interesting new additions:

    - The new Aspeed AST2600 baseboard management controller is added,
    this is a Cortex-A7 based follow-up to the ARM11 based AST2500 and
    had some dependencies on other device drivers.

    - After many years, support for the MMP2 based OLPC XO-1.75 finally
    makes it into the kernel.

    - The Armada 3720 based Turris Mox open source router platform is a
    late addition and it follows some preparatory work across multiple
    branches.

    - The OMAP2+ platform had some large-scale cleanup involving driver
    changes and DT changes, here we finish it off, dropping a lot of
    the now-unused platform data.

    - The TI K3 platform that got added for 5.3 gains a lot more support
    for individual bits on the SoC, this part just came late for the
    merge window"

    [ This pull request itself wasn't actually sent late at all by Arnd, but
    I waited on the branches that it used to be pulled first, so it ends
    up being merged much later than the other ARM SoC pull requests this
    merge window - Linus ]

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (57 commits)
    ARM: dts: dir685: Drop spi-cpol from the display
    ARM: dts: aspeed: Add AST2600 pinmux nodes
    ARM: dts: aspeed: Add AST2600 and EVB
    ARM: exynos: Enable support for ARM architected timers
    ARM: samsung: Fix system restart on S3C6410
    ARM: dts: mmp2: add OLPC XO 1.75 machine
    ARM: dts: mmp2: rename the USB PHY node
    ARM: dts: mmp2: specify reg-shift for the UARTs
    ARM: dts: mmp2: add camera interfaces
    ARM: dts: mmp2: fix the SPI nodes
    ARM: dts: mmp2: trivial whitespace fix
    arm64: dts: marvell: add DTS for Turris Mox
    dt-bindings: marvell: document Turris Mox compatible
    arm64: dts: marvell: armada-37xx: add SPI CS1 pinctrl
    arm64: dts: ti: k3-j721e-main: Fix gic-its node unit-address
    arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address
    arm64: dts: ti: k3-j721e-main: Add hwspinlock node
    arm64: dts: ti: k3-am65-main: Add hwspinlock node
    arm64: dts: k3-j721e: Add gpio-keys on common processor board
    dt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E
    ...

    Linus Torvalds
     

17 Sep, 2019

1 commit

  • Pull ARM SoC driver updates from Arnd Bergmann:
    "This contains driver changes that are tightly connected to SoC
    specific code. Aside from smaller cleanups and bug fixes, here is a
    list of the notable changes.

    New device drivers:

    - The Turris Mox router has a new "moxtet" bus driver for its
    on-board pluggable extension bus. The same platform also gains a
    firmware driver.

    - The Samsung Exynos family gains a new Chipid driver exporting using
    the soc device sysfs interface

    - A similar socinfo driver for Qualcomm Snapdragon chips.

    - A firmware driver for the NXP i.MX DSP IPC protocol using shared
    memory and a mailbox

    Other changes:

    - The i.MX reset controller driver now supports the NXP i.MX8MM chip

    - Amlogic SoC specific drivers gain support for the S905X3 and A311D
    chips

    - A rework of the TI Davinci framebuffer driver to allow important
    cleanups in the platform code

    - A couple of device drivers for removed ARM SoC platforms are
    removed. Most of the removals were picked up by other maintainers,
    this contains whatever was left"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (123 commits)
    bus: uniphier-system-bus: use devm_platform_ioremap_resource()
    soc: ti: ti_sci_pm_domains: Add support for exclusive and shared access
    dt-bindings: ti_sci_pm_domains: Add support for exclusive and shared access
    firmware: ti_sci: Allow for device shared and exclusive requests
    bus: imx-weim: remove incorrect __init annotations
    fbdev: remove w90x900/nuc900 platform drivers
    spi: remove w90x900 driver
    net: remove w90p910-ether driver
    net: remove ks8695 driver
    firmware: turris-mox-rwtm: Add sysfs documentation
    firmware: Add Turris Mox rWTM firmware driver
    dt-bindings: firmware: Document cznic,turris-mox-rwtm binding
    bus: moxtet: fix unsigned comparison to less than zero
    bus: moxtet: remove set but not used variable 'dummy'
    ARM: scoop: Use the right include
    dt-bindings: power: add Amlogic Everything-Else power domains bindings
    soc: amlogic: Add support for Everything-Else power domains controller
    fbdev: da8xx: use resource management for dma
    fbdev: da8xx-fb: drop a redundant if
    fbdev: da8xx-fb: use devm_platform_ioremap_resource()
    ...

    Linus Torvalds
     

07 Sep, 2019

1 commit

  • Commit d098913a10f8 ("bus: ti-sysc: Fix clock handling for no-idle
    quirks") fixed handling for no-idle quirk modules that are not enabled
    by the bootloader.

    But it also caused unpaired clockdomain calls that won't allow idling
    the system. That's because clkdm_allow_idle_nolock() and
    clkdm_deny_idle_nolock() have usage count with clkdm->forcewake_count.

    Let's drop the unpaired sysc_clkdm_deny_idle() to fix idling of devices.

    Fixes: d098913a10f8 ("bus: ti-sysc: Fix clock handling for no-idle quirks")
    Cc: Keerthy
    Cc: Vignesh Raghavendra
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

06 Sep, 2019

1 commit

  • We can currently get "Unable to handle kernel paging request at
    virtual address" for invalid clocks with dts node but no driver:

    (__clk_get_hw) from [] (ti_sysc_find_one_clockdomain+0x18/0x34)
    (ti_sysc_find_one_clockdomain) from [] (ti_sysc_clkdm_init+0x34/0xdc)
    (ti_sysc_clkdm_init) from [] (sysc_probe+0xa50/0x10e8)
    (sysc_probe) from [] (platform_drv_probe+0x58/0xa8)

    Let's add IS_ERR checks to ti_sysc_clkdm_init() as And let's start treating
    clk_get() with -ENOENT as a proper error. If the clock name is specified
    in device tree we must succeed with clk_get() to continue. For modules with
    no clock names specified in device tree we will just ignore the clocks.

    Fixes: 2b2f7def058a ("bus: ti-sysc: Add support for missing clockdomain handling")
    Acked-by: Roger Quadros
    Tested-by: Keerthy
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

05 Sep, 2019

2 commits

  • Replace the chain of platform_get_resource() and devm_ioremap_resource()
    with devm_platform_ioremap_resource().

    This allows to remove the local variable for (struct resource *), and
    have one function call less.

    Link: https://lore.kernel.org/r/20190905032122.26076-1-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Arnd Bergmann

    Masahiro Yamada
     
  • NFSroot can fail on dra7 when cpsw is probed using ti-sysc interconnect
    target module driver as reported by Keerthy.

    Device clocks and the interconnect target module may or may not be
    enabled by the bootloader on init, but we currently assume the clocks
    and module are on from the bootloader for "ti,no-idle" and
    "ti,no-idle-on-init" quirks as reported by Grygorii Strashko.

    Let's fix the issue by always enabling clocks init, and
    never disable them for "ti,no-idle" quirk. For "ti,no-idle-on-init"
    quirk, we must decrement the usage count later on to allow PM
    runtime to idle the module if requested.

    Fixes: 1a5cd7c23cc5 ("bus: ti-sysc: Enable all clocks directly during init to read revision")
    Cc: Keerthy
    Cc: Vignesh Raghavendra
    Reported-by: Keerthy
    Reported-by: Grygorii Strashko
    Reviewed-by: Grygorii Strashko
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

04 Sep, 2019

8 commits

  • The probe function is no longer __init, so anything it calls now
    must also be available at runtime, as Kbuild points out when building
    with clang-9:

    WARNING: vmlinux.o(.text+0x6e7040): Section mismatch in reference from the function weim_probe() to the function .init.text:imx_weim_gpr_setup()
    The function weim_probe() references
    the function __init imx_weim_gpr_setup().
    This is often because weim_probe lacks a __init
    annotation or the annotation of imx_weim_gpr_setup is wrong.

    WARNING: vmlinux.o(.text+0x6e70f0): Section mismatch in reference from the function weim_probe() to the function .init.text:weim_timing_setup()
    The function weim_probe() references
    the function __init weim_timing_setup().
    This is often because weim_probe lacks a __init
    annotation or the annotation of weim_timing_setup is wrong.

    Remove the remaining __init markings that are now wrong.

    Fixes: 4a92f07816ba ("bus: imx-weim: use module_platform_driver()")
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Currently the size_t variable res is being checked for
    an error failure however the unsigned variable is never
    less than zero so this test is always false. Fix this by
    making variable res ssize_t

    Link: https://lore.kernel.org/r/20190822010351.15660-2-marek.behun@nic.cz
    Addresses-Coverity: ("Unsigned compared against 0")
    Fixes: 5bc7f990cd98 ("bus: Add support for Moxtet bus")
    Signed-off-by: Colin Ian King
    Signed-off-by: Marek Behún
    Signed-off-by: Arnd Bergmann

    Colin Ian King
     
  • Fixes gcc '-Wunused-but-set-variable' warning:

    drivers/bus/moxtet.c: In function moxtet_remove:
    drivers/bus/moxtet.c:822:6: warning: variable dummy set but not used
    [-Wunused-but-set-variable]

    Link: https://lore.kernel.org/r/20190822010351.15660-3-marek.behun@nic.cz
    Signed-off-by: Jason Yan
    Signed-off-by: Marek Behún
    Signed-off-by: Arnd Bergmann

    Jason Yan
     
  • mvebu dt64 for 5.4 (part 2)

    Add support for Turris Mox board (Armada 3720 SoC based)

    * tag 'mvebu-dt64-5.4-2' of git://git.infradead.org/linux-mvebu: (53 commits)
    arm64: dts: marvell: add DTS for Turris Mox
    dt-bindings: marvell: document Turris Mox compatible
    arm64: dts: marvell: armada-37xx: add SPI CS1 pinctrl
    arm64: dts: marvell: Add cpu clock node on Armada 7K/8K
    arm64: dts: marvell: Convert 7k/8k usb-phy properties to phy-supply
    arm64: dts: marvell: Add 7k/8k PHYs in PCIe nodes
    arm64: dts: marvell: Add 7k/8k PHYs in USB3 nodes
    arm64: dts: marvell: Add 7k/8k per-port PHYs in SATA nodes
    arm64: dts: marvell: Add CP110 COMPHY clocks
    arm64: dts: marvell: armada-37xx: add mailbox node
    dt-bindings: gpio: Document GPIOs via Moxtet bus
    drivers: gpio: Add support for GPIOs over Moxtet bus
    bus: moxtet: Add sysfs and debugfs documentation
    dt-bindings: bus: Document moxtet bus binding
    bus: Add support for Moxtet bus
    reset: Add support for resets provided by SCMI
    firmware: arm_scmi: Add RESET protocol in SCMI v2.0
    dt-bindings: arm: Extend SCMI to support new reset protocol
    firmware: arm_scmi: Make use SCMI v2.0 fastchannel for performance protocol
    firmware: arm_scmi: Add discovery of SCMI v2.0 performance fastchannels
    ...

    Link: https://lore.kernel.org/r/87h85two0r.fsf@FE-laptop
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • …inux/kernel/git/tmlind/linux-omap into arm/late

    more ti-sysc driver changes for omap variants for v5.4

    Few changes mostly to deal with sgx SoC glue quirk for omap36xx that
    is needed for the related sgx SoC glue dts branch. The other changes
    are to simplify sysc_check_one_child() sysc_check_children() to be void
    functions, and detect d2d module when debugging is enabled.

    * tag 'omap-for-v5.4/ti-sysc-part2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    bus: ti-sysc: Detect d2d when debug is enabled
    bus: ti-sysc: Add module enable quirk for SGX on omap36xx
    bus: ti-sysc: Change return types of functions

    Link: https://lore.kernel.org/r/pull-1567016893-318461@atomide.com-2
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     
  • …ernel/git/tmlind/linux-omap into arm/late

    Driver changes for ti-sysc for v5.4

    Few changes to prepare for using a reset driver for PRM rstctrl mostly
    to deal with the clocks for reset. Then few minor clean-up patches and
    SPDX license identifier changes, and add a MAINTAINERs file entry.

    * tag 'omap-for-v5.4/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    bus: ti-sysc: remove set but not used variable 'quirks'
    bus: ti-sysc: allow reset sharing across devices
    bus: ti-sysc: rework the reset handling
    bus: ti-sysc: re-order the clkdm control around reset handling
    bus: ti-sysc: Add missing kerneldoc comments
    bus: ti-sysc: Switch to SPDX license identifier
    dt-bindings: ti-sysc: Add SPDX license identifier
    MAINTAINERS: Add ti-sysc files under the OMAP2+ entry

    Link: https://lore.kernel.org/r/pull-1566599057-142651@atomide.com
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     
  • …wnguo/linux into arm/drivers

    i.MX drivers update for 5.4:
    - A series from Anson Huang to add UID support for i.MX8 SoC and SCU
    drivers.
    - A series from Daniel Baluta to add DSP IPC driver for communication
    between host AP (Linux) and the firmware running on DSP embedded in
    i.MX8 SoCs.
    - A small fix for GPCv2 error code printing.
    - Switch from module_platform_driver_probe() to module_platform_driver()
    for imx-weim driver, as we need the driver to probe again when device
    is present later.
    - Add optional burst clock mode support for imx-weim driver.

    * tag 'imx-drivers-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
    soc: imx: gpcv2: Print the correct error code
    bus: imx-weim: use module_platform_driver()
    firmware: imx: Add DSP IPC protocol interface
    soc: imx-scu: Add SoC UID(unique identifier) support
    bus: imx-weim: optionally enable burst clock mode
    firmware: imx: scu-pd: Add IRQSTR_DSP PD range
    firmware: imx: scu-pd: Add mu13 b side PD range
    firmware: imx: scu-pd: Rename mu PD range to mu_a
    soc: imx8: Add i.MX8MM UID(unique identifier) support
    soc: imx8: Add i.MX8MQ UID(unique identifier) support

    Link: https://lore.kernel.org/r/20190825153237.28829-1-shawnguo@kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     
  • …/git/sunxi/linux into arm/drivers

    Allwinner drivers patches for 5.4

    One driver to remove a redundant error message in the Allwinner RSB
    driver.

    * tag 'sunxi-drivers-for-5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
    bus: sunxi-rsb: Remove dev_err() usage after platform_get_irq()

    Link: https://lore.kernel.org/r/f9edfc8e-19b7-4b6e-897a-35f3bdcc8643.lettre@localhost
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     

29 Aug, 2019

1 commit

  • Hisilicon fixes for v5.3-rc

    - Fixed RCU usage in logical PIO
    - Added a function to unregister a logical PIO range in logical PIO
    to support the fixes in the hisi-lpc driver
    - Fixed and optimized hisi-lpc driver to avoid potential use-after-free
    and driver unbind crash

    * tag 'hisi-fixes-for-5.3' of git://github.com/hisilicon/linux-hisi:
    bus: hisi_lpc: Add .remove method to avoid driver unbind crash
    bus: hisi_lpc: Unregister logical PIO range to avoid potential use-after-free
    lib: logic_pio: Add logic_pio_unregister_range()
    lib: logic_pio: Avoid possible overlap for unregistering regions
    lib: logic_pio: Fix RCU usage

    Link: https://lore.kernel.org/r/5D562335.7000902@hisilicon.com
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann