16 Sep, 2017

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for 4.14 for MIPS; below a summary of
    the non-merge commits:

    CM:
    - Rename mips_cm_base to mips_gcr_base
    - Specify register size when generating accessors
    - Use BIT/GENMASK for register fields, order & drop shifts
    - Add cluster & block args to mips_cm_lock_other()

    CPC:
    - Use common CPS accessor generation macros
    - Use BIT/GENMASK for register fields, order & drop shifts
    - Introduce register modify (set/clear/change) accessors
    - Use change_*, set_* & clear_* where appropriate
    - Add CM/CPC 3.5 register definitions
    - Use GlobalNumber macros rather than magic numbers
    - Have asm/mips-cps.h include CM & CPC headers
    - Cluster support for topology functions
    - Detect CPUs in secondary clusters

    CPS:
    - Read GIC_VL_IDENT directly, not via irqchip driver

    DMA:
    - Consolidate coherent and non-coherent dma_alloc code
    - Don't use dma_cache_sync to implement fd_cacheflush

    FPU emulation / FP assist code:
    - Another series of 14 commits fixing corner cases such as NaN
    propgagation and other special input values.
    - Zero bits 32-63 of the result for a CLASS.D instruction.
    - Enhanced statics via debugfs
    - Do not use bools for arithmetic. GCC 7.1 moans about this.
    - Correct user fault_addr type

    Generic MIPS:
    - Enhancement of stack backtraces
    - Cleanup from non-existing options
    - Handle non word sized instructions when examining frame
    - Fix detection and decoding of ADDIUSP instruction
    - Fix decoding of SWSP16 instruction
    - Refactor handling of stack pointer in get_frame_info
    - Remove unreachable code from force_fcr31_sig()
    - Convert to using %pOF instead of full_name
    - Remove the R6000 support.
    - Move FP code from *_switch.S to *_fpu.S
    - Remove unused ST_OFF from r2300_switch.S
    - Allow platform to specify multiple its.S files
    - Add #includes to various files to ensure code builds reliable and
    without warning..
    - Remove __invalidate_kernel_vmap_range
    - Remove plat_timer_setup
    - Declare various variables & functions static
    - Abstract CPU core & VP(E) ID access through accessor functions
    - Store core & VP IDs in GlobalNumber-style variable
    - Unify checks for sibling CPUs
    - Add CPU cluster number accessors
    - Prevent direct use of generic_defconfig
    - Make CONFIG_MIPS_MT_SMP default y
    - Add __ioread64_copy
    - Remove unnecessary inclusions of linux/irqchip/mips-gic.h

    GIC:
    - Introduce asm/mips-gic.h with accessor functions
    - Use new GIC accessor functions in mips-gic-timer
    - Remove counter access functions from irq-mips-gic.c
    - Remove gic_read_local_vp_id() from irq-mips-gic.c
    - Simplify shared interrupt pending/mask reads in irq-mips-gic.c
    - Simplify gic_local_irq_domain_map() in irq-mips-gic.c
    - Drop gic_(re)set_mask() functions in irq-mips-gic.c
    - Remove gic_set_polarity(), gic_set_trigger(), gic_set_dual_edge(),
    gic_map_to_pin() and gic_map_to_vpe() from irq-mips-gic.c.
    - Convert remaining shared reg access, local int mask access and
    remaining local reg access to new accessors
    - Move GIC_LOCAL_INT_* to asm/mips-gic.h
    - Remove GIC_CPU_INT* macros from irq-mips-gic.c
    - Move various definitions to the driver
    - Remove gic_get_usm_range()
    - Remove __gic_irq_dispatch() forward declaration
    - Remove gic_init()
    - Use mips_gic_present() in place of gic_present and remove
    gic_present
    - Move gic_get_c0_*_int() to asm/mips-gic.h
    - Remove linux/irqchip/mips-gic.h
    - Inline __gic_init()
    - Inline gic_basic_init()
    - Make pcpu_masks a per-cpu variable
    - Use pcpu_masks to avoid reading GIC_SH_MASK*
    - Clean up mti, reserved-cpu-vectors handling
    - Use cpumask_first_and() in gic_set_affinity()
    - Let the core set struct irq_common_data affinity

    microMIPS:
    - Fix microMIPS stack unwinding on big endian systems

    MIPS-GIC:
    - SYNC after enabling GIC region

    NUMA:
    - Remove the unused parent_node() macro

    R6:
    - Constify r2_decoder_tables
    - Add accessor & bit definitions for GlobalNumber

    SMP:
    - Constify smp ops
    - Allow boot_secondary SMP op to return errors

    VDSO:
    - Drop gic_get_usm_range() usage
    - Avoid use of linux/irqchip/mips-gic.h

    Platform changes:

    Alchemy:
    - Add devboard machine type to cpuinfo
    - update cpu feature overrides
    - Threaded carddetect irqs for devboards

    AR7:
    - allow NULL clock for clk_get_rate

    BCM63xx:
    - Fix ENETDMA_6345_MAXBURST_REG offset
    - Allow NULL clock for clk_get_rate

    CI20:
    - Enable GPIO and RTC drivers in defconfig
    - Add ethernet and fixed-regulator nodes to DTS

    Generic platform:
    - Move Boston and NI 169445 FIT image source to their own files
    - Include asm/bootinfo.h for plat_fdt_relocated()
    - Include asm/time.h for get_c0_*_int()
    - Include asm/bootinfo.h for plat_fdt_relocated()
    - Include asm/time.h for get_c0_*_int()
    - Allow filtering enabled boards by requirements
    - Don't explicitly disable CONFIG_USB_SUPPORT
    - Bump default NR_CPUS to 16

    JZ4700:
    - Probe the jz4740-rtc driver from devicetree

    Lantiq:
    - Drop check of boot select from the spi-falcon driver.
    - Drop check of boot select from the lantiq-flash MTD driver.
    - Access boot cause register in the watchdog driver through regmap
    - Add device tree binding documentation for the watchdog driver
    - Add docs for the RCU DT bindings.
    - Convert the fpi bus driver to a platform_driver
    - Remove ltq_reset_cause() and ltq_boot_select(
    - Switch to a proper reset driver
    - Switch to a new drivers/soc GPHY driver
    - Add an USB PHY driver for the Lantiq SoCs using the RCU module
    - Use of_platform_default_populate instead of __dt_register_buses
    - Enable MFD_SYSCON to be able to use it for the RCU MFD
    - Replace ltq_boot_select() with dummy implementation.

    Loongson 2F:
    - Allow NULL clock for clk_get_rate

    Malta:
    - Use new GIC accessor functions

    NI 169445:
    - Add support for NI 169445 board.
    - Only include in 32r2el kernels

    Octeon:
    - Add support for watchdog of 78XX SOCs.
    - Add support for watchdog of CN68XX SOCs.
    - Expose support for mips32r1, mips32r2 and mips64r1
    - Enable more drivers in config file
    - Add support for accessing the boot vector.
    - Remove old boot vector code from watchdog driver
    - Define watchdog registers for 70xx, 73xx, 78xx, F75xx.
    - Make CSR functions node aware.
    - Allow access to CIU3 IRQ domains.
    - Misc cleanups in the watchdog driver

    Omega2+:
    - New board, add support and defconfig

    Pistachio:
    - Enable Root FS on NFS in defconfig

    Ralink:
    - Add Mediatek MT7628A SoC
    - Allow NULL clock for clk_get_rate
    - Explicitly request exclusive reset control in the pci-mt7620 PCI driver.

    SEAD3:
    - Only include in 32 bit kernels by default

    VoCore:
    - Add VoCore as a vendor t0 dt-bindings
    - Add defconfig file"

    * '4.14-features' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (167 commits)
    MIPS: Refactor handling of stack pointer in get_frame_info
    MIPS: Stacktrace: Fix microMIPS stack unwinding on big endian systems
    MIPS: microMIPS: Fix decoding of swsp16 instruction
    MIPS: microMIPS: Fix decoding of addiusp instruction
    MIPS: microMIPS: Fix detection of addiusp instruction
    MIPS: Handle non word sized instructions when examining frame
    MIPS: ralink: allow NULL clock for clk_get_rate
    MIPS: Loongson 2F: allow NULL clock for clk_get_rate
    MIPS: BCM63XX: allow NULL clock for clk_get_rate
    MIPS: AR7: allow NULL clock for clk_get_rate
    MIPS: BCM63XX: fix ENETDMA_6345_MAXBURST_REG offset
    mips: Save all registers when saving the frame
    MIPS: Add DWARF unwinding to assembly
    MIPS: Make SAVE_SOME more standard
    MIPS: Fix issues in backtraces
    MIPS: jz4780: DTS: Probe the jz4740-rtc driver from devicetree
    MIPS: Ci20: Enable RTC driver
    watchdog: octeon-wdt: Add support for 78XX SOCs.
    watchdog: octeon-wdt: Add support for cn68XX SOCs.
    watchdog: octeon-wdt: File cleaning.
    ...

    Linus Torvalds
     

11 Sep, 2017

2 commits

  • Pull ARM SoC driver updates from Olof Johansson:
    "This branch contains platform-related driver updates for ARM and ARM64.

    Among them:

    - Reset driver updates:
    + New API for dealing with arrays of resets
    + Make unimplemented {de,}assert return success on shared resets
    + MSDKv1 driver
    + Removal of obsolete Gemini reset driver
    + Misc updates for sunxi and Uniphier

    - SoC drivers:
    + Platform SoC driver registration on Tegra
    + Shuffle of Qualcomm drivers into a submenu
    + Allwinner A64 support for SRAM
    + Renesas R-Car R3 support
    + Power domains for Rockchip RK3366

    - Misc updates and smaller fixes for TEE and memory driver
    subsystems"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)
    firmware: arm_scpi: fix endianness of dev_id in struct dev_pstate_set
    soc/tegra: fuse: Add missing semi-colon
    soc/tegra: Restrict SoC device registration to Tegra
    drivers: soc: sunxi: add support for A64 and its SRAM C
    drivers: soc: sunxi: add support for remapping func value to reg value
    drivers: soc: sunxi: fix error processing on base address when claiming
    dt-bindings: add binding for Allwinner A64 SRAM controller and SRAM C
    bus: sunxi-rsb: Enable by default for ARM64
    soc/tegra: Register SoC device
    firmware: tegra: set drvdata earlier
    memory: Convert to using %pOF instead of full_name
    soc: Convert to using %pOF instead of full_name
    bus: Convert to using %pOF instead of full_name
    firmware: Convert to using %pOF instead of full_name
    soc: mediatek: add SCPSYS power domain driver for MediaTek MT7622 SoC
    soc: mediatek: add header files required for MT7622 SCPSYS dt-binding
    soc: mediatek: reduce code duplication of scpsys_probe across all SoCs
    dt-bindings: soc: update the binding document for SCPSYS on MediaTek MT7622 SoC
    reset: uniphier: add analog amplifiers reset control
    reset: uniphier: add video input subsystem reset control
    ...

    Linus Torvalds
     
  • Pull ARM/arm64 SoC platform updates from Olof Johansson: "This branch
    contains platform updates for 32- and 64-bit ARM, including defconfig
    updates to enable new options, drivers and platforms. There are also a
    few fixes and cleanups for some existing vendors.

    Some of the things worth highlighting here are:

    - Enabling new crypt drivers on arm64 defconfig

    - QCOM IPQ8074 clocks and pinctrl drivers on arm64 defconfig

    - Debug support enabled for Renesas r8a7743

    - Various config updates for Renesas platforms (sound, USB, other
    drivers)

    - Platform support (including SMP) for TI dra762

    - OMAP cleanups: Move to use generic 8250 debug_ll, removal of stale
    DMA code"

    * tag 'armsoc-platforms' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (109 commits)
    ARM: multi_v7_defconfig: make eSDHC driver built-in
    arm64: defconfig: enable rockchip graphics
    MAINTAINERS: Update Cavium ThunderX2 entry
    ARM: config: aspeed: Add I2C, VUART, LPC Snoop
    ARM: configs: aspeed: Update Aspeed G4 with VMSPLIT_2G
    ARM: s3c24xx: Fix NAND ECC mode for mini2440 board
    ARM: davinci_all_defconfig: enable tinydrm and ST7586
    arm64: defconfig: Enable QCOM IPQ8074 clock and pinctrl
    ARM: defconfig: tegra: Enable ChipIdea UDC driver
    ARM: configs: Add Tegra I2S interfaces to multi_v7_defconfig
    ARM: tegra: Add Tegra I2S interfaces to defconfig
    ARM: tegra: Update default configuration for v4.13-rc1
    MAINTAINERS: update ARM/ZTE entry
    soc: versatile: remove unnecessary static in realview_soc_probe()
    ARM: Convert to using %pOF instead of full_name
    ARM: hisi: Fix typo in comment
    ARM: multi_v7_defconfig: add CONFIG_BRCMSTB_THERMAL
    arm64: defconfig: add CONFIG_BRCMSTB_THERMAL
    arm64: defconfig: add recently added crypto drivers as modules
    arm64: defconfig: enable CONFIG_UNIPHIER_WATCHDOG
    ...

    Linus Torvalds
     

10 Sep, 2017

1 commit

  • Pull remoteproc updates from Bjorn Andersson:
    "This adds and improves remoteproc support for TI DA8xx/OMAP-L13x DSP,
    TI Keystone 66AK2G DSP and iMX6SX/7D Cortex M4 coprocessors. It
    introduces the Qualcomm restart notifier and a few fixes"

    * tag 'rproc-v4.14' of git://github.com/andersson/remoteproc:
    remoteproc: Introduce rproc handle accessor for children
    remoteproc: qcom: Make ssr_notifiers local
    remoteproc: Stop subdevices in reverse order
    remoteproc: imx_rproc: add a NXP/Freescale imx_rproc driver
    remoteproc: dt: Provide bindings for iMX6SX/7D Remote Processor Controller driver
    remoteproc: qcom: Use PTR_ERR_OR_ZERO
    remoteproc: st: explicitly request exclusive reset control
    remoteproc: qcom: explicitly request exclusive reset control
    remoteproc/keystone: explicitly request exclusive reset control
    remoteproc/keystone: Add support for Keystone 66AK2G SOCs
    remoteproc/davinci: Add device tree support for OMAP-L138 DSP
    dt-bindings: remoteproc: Add bindings for Davinci DSP processors
    remoteproc/davinci: Add support to parse internal memories
    remoteproc/davinci: Switch to platform_get_resource_byname()
    remoteproc: make device_type const
    soc: qcom: GLINK SSR notifier
    remoteproc: qcom: Add support for SSR notifications
    remoteproc: Merge __rproc_boot() with rproc_boot()

    Linus Torvalds
     

05 Sep, 2017

2 commits

  • Compared to the old xrx200_phy_fw driver the new version has multiple
    enhancements. The name of the firmware files does not have to be added
    to all .dts files anymore - one now configures the GPHY mode (FE or GE)
    instead. Each GPHY can now also boot separate firmware (thus mixing of
    GE and FE GPHYs is now possible).
    The new implementation is based on the RCU syscon-mfd and uses the
    reeset_controller framework instead of raw RCU register reads/writes.

    Signed-off-by: Martin Blumenstingl
    Signed-off-by: Hauke Mehrtens
    Reviewed-by: Andy Shevchenko
    Acked-by: Rob Herring
    Cc: john@phrozen.org
    Cc: p.zabel@pengutronix.de
    Cc: kishon@ti.com
    Cc: mark.rutland@arm.com
    Cc: linux-mips@linux-mips.org
    Cc: linux-mtd@lists.infradead.org
    Cc: linux-watchdog@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-spi@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/17128/
    Signed-off-by: Ralf Baechle

    Martin Blumenstingl
     
  • Instead of hacking the configuration of the FPI bus into the arch code
    add an own bus driver for this internal bus. The FPI bus is the main
    bus of the SoC. This bus driver makes sure the bus is configured
    correctly before the child drivers are getting initialized. This driver
    will probably also be used on different SoCs later.

    Signed-off-by: Hauke Mehrtens
    Signed-off-by: Martin Blumenstingl
    Acked-by: Rob Herring
    Reviewed-by: Andy Shevchenko
    Cc: john@phrozen.org
    Cc: p.zabel@pengutronix.de
    Cc: kishon@ti.com
    Cc: mark.rutland@arm.com
    Cc: linux-mips@linux-mips.org
    Cc: linux-mtd@lists.infradead.org
    Cc: linux-watchdog@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-spi@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/17122/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     

24 Aug, 2017

1 commit


23 Aug, 2017

2 commits

  • Commit 8a46828e623c ("soc/tegra: Register SoC device") added a new
    initcall, but forgot to terminate the line with a semi-colon. Some
    recent versions of GCC seem to report this as an error.

    Fixes: 8a46828e623c ("soc/tegra: Register SoC device")
    Reported-by: Arnd Bergmann
    Signed-off-by: Thierry Reding
    Signed-off-by: Arnd Bergmann

    Thierry Reding
     
  • Commit 8a46828e623c ("soc/tegra: Register SoC device") added an initcall
    to register the SoC device on Tegra. However, that code is unrestricted
    and will run on all platforms, causing unwanted warnings.

    Fix this by first checking that we're running on hardware that supports
    the fuses block that we use to provide SoC information.

    Fixes: 8a46828e623c ("soc/tegra: Register SoC device")
    Reported-by: Sudeep Holla
    Tested-by: Sudeep Holla
    Signed-off-by: Thierry Reding
    Signed-off-by: Arnd Bergmann

    Thierry Reding
     

21 Aug, 2017

2 commits

  • …l/git/sunxi/linux into next/drivers

    Pull "Allwinner driver changes for 4.14" from Chen-Yu Tsai:

    Usual driver changes:

    - SUNXI_RSB bus driver enabled by default for ARM64

    - Support for SRAM controller and SRAM C block on the A64 added

    * tag 'sunxi-drivers-for-4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
    drivers: soc: sunxi: add support for A64 and its SRAM C
    drivers: soc: sunxi: add support for remapping func value to reg value
    drivers: soc: sunxi: fix error processing on base address when claiming
    dt-bindings: add binding for Allwinner A64 SRAM controller and SRAM C
    bus: sunxi-rsb: Enable by default for ARM64

    Arnd Bergmann
     
  • knav_pool_create is an exported function. In the event of a call
    before knav_queue_probe, we encounter a NULL pointer dereference
    in the following line. Hence return -EPROBE_DEFER to the caller till
    the kdev pointer is non-NULL.

    Signed-off-by: Keerthy
    Acked-by: Santosh Shilimkar
    Signed-off-by: Arnd Bergmann

    Keerthy
     

19 Aug, 2017

2 commits

  • …tegra/linux into next/drivers

    Pull "soc/tegra: Changes for v4.14-rc1" from Thierry Reding:

    Contains a fix for unbalanced reference counting of device tree nodes in
    the PMC-based generic power domains code.

    A second change moves the SoC device registration code from its old
    location in arch/arm/mach-tegra to drivers/soc/tegra so that it can be
    shared between 32-bit and 64-bit ARM Tegra SoCs.

    * tag 'tegra-for-4.14-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
    soc/tegra: Register SoC device
    soc/tegra: Fix bad of_node_put() in powergate init

    Arnd Bergmann
     
  • Pull "arm: mediatek: soc updates for v4.14" from Matthias Brugger:

    - add mt7623a smp support
    - scpsys: reduce code duplication
    - scpsys: add mt7622 support
    - pmic wrapper: make of_device_ids constant

    * tag 'v4.13-next-soc' of https://github.com/mbgg/linux-mediatek:
    soc: mediatek: add SCPSYS power domain driver for MediaTek MT7622 SoC
    soc: mediatek: add header files required for MT7622 SCPSYS dt-binding
    soc: mediatek: reduce code duplication of scpsys_probe across all SoCs
    dt-bindings: soc: update the binding document for SCPSYS on MediaTek MT7622 SoC
    soc: mtk-pmic-wrap: make of_device_ids const.
    ARM: mediatek: add MT7623a smp bringup code

    Arnd Bergmann
     

18 Aug, 2017

4 commits

  • Commit b6a1d093f96b ("PM / Domains: Extend generic power domain
    debugfs") now creates a debugfs directory for each genpd based on the
    name of the genpd. Currently no name is given to the genpd created by
    ti_sci_pm_domains driver so because of this we see a NULL pointer
    dereferences when it is accessed on boot when the debugfs entry creation
    is attempted.

    Give the genpd a name before registering it to avoid this.

    Fixes: 52835d59fc6c ("soc: ti: Add ti_sci_pm_domains driver")
    Signed-off-by: Dave Gerlach
    Signed-off-by: Santosh Shilimkar
    Signed-off-by: Arnd Bergmann

    Dave Gerlach
     
  • Allwinner A64's display engine claims the SRAM C section to work.

    Add support for the A64 SRAM controller and the SRAM C section of it.

    Signed-off-by: Icenowy Zheng
    Signed-off-by: Chen-Yu Tsai

    Icenowy Zheng
     
  • On some Allwinner SoCs, sometimes the value needed to write into the
    register to claim SRAM is not equal to the value specified in the
    device tree.

    The device tree binding defines 0 as "mapped to CPU" and 1 as "mapped
    to X device". This matches the value written to the configuration
    register for the SRAM blocks currently supported. However, the not yet
    supported VE SRAM block is claimed for the device by writing 0x7fffffff,
    which is vastly different from the other blocks. On the A64, SRAM C is
    claimed by the device by writing a 0, which is the opposite of the
    current design.

    Add a value remapping in sunxi_sram_func structure, and let the
    sunxi_sram_of_parse function set the remapped register value.
    This allows us to keep the convention currently used in the device tree
    binding.

    Signed-off-by: Icenowy Zheng
    [wens@csie.org: Clarified commit message]
    Signed-off-by: Chen-Yu Tsai

    Icenowy Zheng
     
  • When claiming SRAM, if the base is set to an error, it means that the
    SRAM controller has been probed, but failed to remap the controller
    memory zone. If the base is zero, thus the SRAM controller should be not
    probed at all, and it should return -EPROBE_DEFER. However, currently we
    returned -EPROBE_DEFER in the former situation, and ignored the latter
    situation (which will lead to the kernel to panic).

    Fix the behavior on abnormal base address processing when claiming.

    Signed-off-by: Icenowy Zheng
    Fixes: 4af34b572a85 ("drivers: soc: sunxi: Introduce SoC driver to map
    SRAMs")
    Signed-off-by: Chen-Yu Tsai

    Icenowy Zheng
     

17 Aug, 2017

7 commits

  • Move this code from arch/arm/mach-tegra and make it common among 32-bit
    and 64-bit Tegra SoCs. This is slightly complicated by the fact that on
    32-bit Tegra, the SoC device is used as the parent for all devices that
    are instantiated from device tree.

    Signed-off-by: Thierry Reding

    Thierry Reding
     
  • …lman/linux-amlogic into next/drivers

    Pull "Amlogic driver updates for v4.14" from Kevin Hilman:

    - add SoC info driver

    * tag 'amlogic-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
    soc: Add Amlogic SoC Information driver
    dt-bindings: arm: amlogic: Add SoC information bindings

    Arnd Bergmann
     
  • Remove unnecessary static on local variables syscon_regmap.
    Such variables are initialized before being used, on every
    execution path throughout the functions. The static has no
    benefit and, removing it reduces the object file size.

    This issue was detected using Coccinelle and the following
    semantic patch:

    @bad exists@
    position p;
    identifier x;
    type T;
    @@

    static T x@p;
    ...
    x =

    @@
    identifier x;
    expression e;
    type T;
    position p != bad.p;
    @@

    -static
    T x@p;
    ... when != x
    when strict
    ?x = e;

    In the following log you can see the difference in the object file size.
    This log is the output of the size command, before and after the code
    change:

    before:
    text data bss dec hex filename
    3339 2104 128 5571 15c3 drivers/soc/versatile/soc-realview.o

    after:
    text data bss dec hex filename
    3321 2048 64 5433 1539 drivers/soc/versatile/soc-realview.o

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: Arnd Bergmann

    Gustavo A. R. Silva
     
  • …rnel/git/horms/renesas into next/drivers

    Pull "Renesas ARM Based SoC Drivers Updates for v4.14" from Simon Horman:

    Add R-Car D3 (r8a77995) support to the Renesas-specific SoC drivers
    - SoC identification
    - System controller
    - Reset controller

    * tag 'renesas-drivers-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
    soc: renesas: rcar-rst: Add support for R-Car D3
    soc: renesas: rcar-sysc: Add support for R-Car D3 power areas
    soc: renesas: Add r8a77995 SYSC PM Domain Binding Definitions
    soc: renesas: Identify R-Car D3

    Arnd Bergmann
     
  • …it/agross/linux into next/drivers

    Pull "Qualcomm ARM Based Driver Updates for v4.14" from Andy Gross:

    * Minor fixes for SMSM and WCNSS_CTRL
    * Move Qcom SoC drivers to submenu
    * Fix mdt_loader to use request_firmware_into_buf()

    * tag 'qcom-drivers-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
    soc: qcom: mdt_loader: Use request_firmware_into_buf()
    soc: qcom: bring all qcom drivers into a submenu
    soc: qcom: wcnss_ctrl: add missing MODULE_DEVICE_TABLE()
    soc: qcom: smsm: fix of_node refcnting problem

    Arnd Bergmann
     
  • …l/git/mmind/linux-rockchip into next/drivers

    Pull "Rockchip driver changes for 4.14" from Heiko Stübner:

    Powerdomain support for rk3366 and disabling of the automatic
    jtag/sdmmc switching for rk3328.

    * tag 'v4.14-rockchip-drivers-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
    soc: rockchip: power-domain: add power domain support for rk3366
    dt-bindings: add binding for rk3366 power domains
    dt-bindings: power: add RK3366 SoCs header for power-domain
    soc: rockchip: disable jtag switching for RK3328 Soc

    Arnd Bergmann
     
  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Signed-off-by: Rob Herring
    Acked-by: Krzysztof Kozlowski
    Reviewed-by: Geert Uytterhoeven
    Acked-by: Matthias Brugger
    Acked-by: Simon Horman
    Cc: Scott Wood
    Cc: Qiang Zhao
    Cc: Magnus Damm
    Cc: Kukjin Kim
    Cc: Javier Martinez Canillas
    Signed-off-by: Arnd Bergmann

    Rob Herring
     

15 Aug, 2017

1 commit

  • …awnguo/linux into fixes

    Pull "i.MX fixes for 4.13, round 2" from Shawn Guo:

    - Add missing 'ranges' property for i.MX25 device tree TSCADC node, so
    that it's child nodes ADC and TSC device can be probed by kernel.
    - Fix i.MX GPCv2 power domain driver to request regulator after power
    domain initialization, since regulator could defer probing and
    therefore cause power domain initialized twice.

    * tag 'imx-fixes-4.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
    ARM: dts: i.MX25: add ranges to tscadc
    soc: imx: gpcv2: fix regulator deferred probe

    Arnd Bergmann
     

14 Aug, 2017

2 commits

  • Add SCPSYS power domain driver for MT7622 SoC having four power domains
    which are respectively ETHSYS for Ethernet including embedded switch,
    WBSYS for WIFI and Bluetooth, HIF0SYS for PCI-E and SATA, and HIF1SYS for
    USB. Those functions could be selectively powered gated when the
    corresponding function is no longer to use in order to reach more minimal
    power dissipation.

    Signed-off-by: Chen Zhong
    Signed-off-by: Sean Wang
    Reviewed-by: Ulf Hansson
    Signed-off-by: Matthias Brugger

    Sean Wang
     
  • Reduce code duplication of scpsys_probe_mtXXXX across all SoCs using
    the more generic scpsys_probe all covering all cases to avoid starting
    to bloat the driver when more MediaTek SoCs supported are added.

    Suggested-by: Matthias Brugger
    Signed-off-by: Sean Wang
    Reviewed-by: Ulf Hansson
    Signed-off-by: Matthias Brugger

    Sean Wang
     

09 Aug, 2017

4 commits

  • By switching to the request_firmware_into_buf() we load the segment data
    straight into the preallocated buffers, reducing the need for allocating
    scratch buffers for these. In particular the modem firmware consists of
    multiple segments in the range 5-15MB, making this worth while.

    Signed-off-by: Bjorn Andersson
    Signed-off-by: Andy Gross

    Bjorn Andersson
     
  • As the number of qcom drivers increase, entries in SOC menu looks
    scattered with other SOC drivers. Make a submenu for Qcom drivers
    to make it visibly clear while selecting qcom SOC specific drivers.

    Signed-off-by: Srinivas Kandagatla
    Signed-off-by: Andy Gross

    Srinivas Kandagatla
     
  • This fixes a problem of wifi module not loading on db410c.

    Signed-off-by: Rob Clark
    Reviewed-by: Bjorn Andersson
    Signed-off-by: Andy Gross

    Rob Clark
     
  • of_find_node_with_property() drops the reference to the 'from' node,
    which eventually (after enough -EPROBE_DEFERs) drops the last reference
    to the node causing all sorts of fun problems, and this nice splat.

    BUG: sleeping function called from invalid context at ../kernel/locking/mutex.c:747
    in_atomic(): 1, irqs_disabled(): 128, pid: 33, name: kworker/0:1
    4 locks held by kworker/0:1/33:
    #0: ("events"){.+.+.+}, at: [] process_one_work+0x1a4/0x728
    #1: (deferred_probe_work){+.+.+.}, at: [] process_one_work+0x1a4/0x728
    #2: (&dev->mutex){......}, at: [] __device_attach+0x30/0x168
    #3: (devtree_lock){......}, at: [] of_find_node_with_property+0x30/0xe0
    irq event stamp: 18976
    hardirqs last enabled at (18975): [] __down_trylock_console_sem+0x74/0xb8
    hardirqs last disabled at (18976): [] _raw_spin_lock_irqsave+0x2c/0x78
    softirqs last enabled at (16880): [] __do_softirq+0x580/0x640
    softirqs last disabled at (16871): [] irq_exit+0xe4/0x138
    CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G E 4.12.0-rc5+ #1455
    Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
    Workqueue: events deferred_probe_work_func
    Call trace:
    [] dump_backtrace+0x0/0x230
    [] show_stack+0x24/0x30
    [] dump_stack+0xac/0xe8
    [] ___might_sleep+0x150/0x230
    [] __might_sleep+0x58/0x90
    [] __mutex_lock+0x50/0x870
    [] mutex_lock_nested+0x3c/0x50
    [] kernfs_remove+0x30/0x50
    [] sysfs_remove_dir+0x58/0x70
    [] kobject_del+0x1c/0x58
    [] kobject_put+0xb4/0x208
    [] of_node_put+0x24/0x30
    [] of_find_node_with_property+0x78/0xe0
    [] qcom_smsm_probe+0x194/0x720 [smsm]
    [] platform_drv_probe+0x74/0x110
    [] driver_probe_device+0x2b4/0x420
    [] __device_attach_driver+0xd0/0x150
    [] bus_for_each_drv+0x68/0xa8
    [] __device_attach+0xd4/0x168
    [] device_initial_probe+0x24/0x30
    [] bus_probe_device+0xa0/0xa8
    [] deferred_probe_work_func+0xb8/0xf8
    [] process_one_work+0x25c/0x728
    [] worker_thread+0x54/0x3d8
    [] kthread+0x110/0x140
    [] ret_from_fork+0x10/0x40
    OF: ERROR: Bad of_node_put() on /smsm
    CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G W E 4.12.0-rc5+ #1455
    Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
    Workqueue: events deferred_probe_work_func

    Signed-off-by: Rob Clark
    Signed-off-by: Andy Gross

    Rob Clark
     

05 Aug, 2017

1 commit

  • If a regulator requests a deferred probe, the power domain gets
    initialized twice. This leads to a list double add (without
    list debugging the kernel hangs due to the double add later):

    WARNING: CPU: 0 PID: 19 at lib/list_debug.c:31 __list_add_valid+0xbc/0xc4
    list_add double add: new=c1229754, prev=c12383b4, next=c1229754.

    Initialize the power domain after we get the regulator. Also do
    not print an error in case the regulator defers probing.

    Cc: Fabio Estevam
    Cc: Andrey Smirnov
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Fixes: 03aa12629fc4 ("soc: imx: Add GPCv2 power gating driver")
    Signed-off-by: Stefan Agner
    Acked-by: Andrey Smirnov
    Tested-by: Andrey Smirnov
    Signed-off-by: Shawn Guo

    Stefan Agner
     

03 Aug, 2017

1 commit

  • This driver register as a subsystem restart notifier and will send out
    notifications to remote processors that has opened the "glink_ssr" GLINK
    channel.

    This mechanism is used to signal any GLINK participants that a 3rd party
    is gone and that the communication state has to be reset; i.e. that read
    and write pointers of the GLINK FIFOs are stale.

    Acked-by: Andy Gross
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     

02 Aug, 2017

1 commit


31 Jul, 2017

1 commit

  • The for_each_child_of_node macro itself maintains the correct reference
    count of the nodes so the explicit of_node_put() call causes a warning:

    [ 0.098960] OF: ERROR: Bad of_node_put() on /pmc@7000e400/powergates/xusba
    [ 0.098981] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.11.3 #1-NixOS
    [ 0.098996] Hardware name: NVIDIA Jetson TX1 Developer Kit (DT)
    [ 0.099011] Call trace:
    [ 0.099034] [] dump_backtrace+0x0/0x2a0
    [ 0.099051] [] show_stack+0x24/0x30
    [ 0.099069] [] dump_stack+0x9c/0xc0
    [ 0.099090] [] of_node_release+0xa4/0xa8
    [ 0.099107] [] kobject_put+0x90/0x1f8
    [ 0.099124] [] of_node_put+0x24/0x30
    [ 0.099140] [] __of_get_next_child+0x4c/0x70
    [ 0.099155] [] of_get_next_child+0x40/0x68
    [ 0.099173] [] tegra_pmc_early_init+0x4e8/0x5ac
    [ 0.099189] [] do_one_initcall+0x5c/0x168
    [ 0.099206] [] kernel_init_freeable+0xd4/0x240
    [ 0.099224] [] kernel_init+0x18/0x108
    [ 0.099238] [] ret_from_fork+0x10/0x50

    (It's not very apparent from the OF documentation that of_node_put() is
    not needed; the macro itself has no docstring and of_get_next_child()
    used in the implementation begins with "Returns a node pointer with
    refcount incremented" but then only at the very end of the docstring
    the crucial part "Decrements the refcount of prev" is mentioned.)

    Fixes: a38045121bf42 ("soc/tegra: pmc: Add generic PM domain support")
    Signed-off-by: Tuomas Tynkkynen
    Signed-off-by: Thierry Reding

    Tuomas Tynkkynen
     

29 Jul, 2017

1 commit

  • Amlogic SoCs have a SoC information register for SoC type, package type and
    revision information.
    This patchs adds support for this register decoding and exposing with the
    SoC bus infrastructure.

    Signed-off-by: Neil Armstrong
    Signed-off-by: Kevin Hilman

    Neil Armstrong
     

27 Jul, 2017

4 commits