02 Feb, 2018

1 commit

  • Pull ARM SoC driver updates from Arnd Bergmann:
    "A number of new drivers get added this time, along with many
    low-priority bugfixes. The most interesting changes by subsystem are:

    bus drivers:
    - Updates to the Broadcom bus interface driver to support newer SoC
    types
    - The TI OMAP sysc driver now supports updated DT bindings

    memory controllers:
    - A new driver for Tegra186 gets added
    - A new driver for the ti-emif sram, to allow relocating
    suspend/resume handlers there

    SoC specific:
    - A new driver for Qualcomm QMI, the interface to the modem on MSM
    SoCs
    - A new driver for power domains on the actions S700 SoC
    - A driver for the Xilinx Zynq VCU logicoreIP

    reset controllers:
    - A new driver for Amlogic Meson-AGX
    - various bug fixes

    tee subsystem:
    - A new user interface got added to enable asynchronous communication
    with the TEE supplicant.
    - A new method of using user space memory for communication with the
    TEE is added"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (84 commits)
    of: platform: fix OF node refcount leak
    soc: fsl: guts: Add a NULL check for devm_kasprintf()
    bus: ti-sysc: Fix smartreflex sysc mask
    psci: add CPU_IDLE dependency
    soc: xilinx: Fix Kconfig alignment
    soc: xilinx: xlnx_vcu: Use bitwise & rather than logical && on clkoutdiv
    soc: xilinx: xlnx_vcu: Depends on HAS_IOMEM for xlnx_vcu
    soc: bcm: brcmstb: Be multi-platform compatible
    soc: brcmstb: biuctrl: exit without warning on non brcmstb platforms
    Revert "soc: brcmstb: Only register SoC device on STB platforms"
    bus: omap: add MODULE_LICENSE tags
    soc: brcmstb: Only register SoC device on STB platforms
    tee: shm: Potential NULL dereference calling tee_shm_register()
    soc: xilinx: xlnx_vcu: Add Xilinx ZYNQMP VCU logicoreIP init driver
    dt-bindings: soc: xilinx: Add DT bindings to xlnx_vcu driver
    soc: xilinx: Create folder structure for soc specific drivers
    of: platform: populate /firmware/ node from of_platform_default_populate_init()
    soc: samsung: Add SPDX license identifiers
    soc: qcom: smp2p: Use common error handling code in qcom_smp2p_probe()
    tee: shm: don't put_page on null shm->pages
    ...

    Linus Torvalds
     

23 Jan, 2018

1 commit

  • We need to call of_node_put() for device nodes obtained with
    of_find_node_by_path().

    Fixes: 3aa0582fdb82 ("of: platform: populate /firmware/ node from of_platform_default_populate_init()")
    Reported-by: Loys Ollivier
    Cc: Frank Rowand
    Signed-off-by: Sudeep Holla
    Acked-by: Rob Herring
    Signed-off-by: Andy Gross
    Signed-off-by: Arnd Bergmann

    Sudeep Holla
     

08 Jan, 2018

1 commit

  • Convert remaining DT files to use SPDX-License-Identifier tags.

    Cc: Benjamin Herrenschmidt
    Cc: Guennadi Liakhovetski
    Cc: Paul Mackerras
    Cc: Pantelis Antoniou
    Reviewed-by: Frank Rowand
    Reviewed-by: Philippe Ombredanne
    Signed-off-by: Rob Herring

    Rob Herring
     

05 Jan, 2018

1 commit

  • Since "/firmware" does not have its own "compatible" property as it's
    just collection of nodes representing firmware interface, it's sub-nodes
    are not populated during system initialization.

    Currently different firmware drivers search the /firmware/ node and
    populate the sub-node devices selectively. Instead we can populate
    the /firmware/ node during init to avoid more drivers continuing to
    populate the devices selectively.

    To generalize the solution this patch populates the /firmware/ node
    explicitly from of_platform_default_populate_init().

    Cc: Arnd Bergmann
    Cc: Rob Herring
    Signed-off-by: Sudeep Holla
    Acked-by: Rob Herring
    Acked-by: Bjorn Andersson
    Tested-by: Bjorn Andersson
    Signed-off-by: Andy Gross

    Sudeep Holla
     

22 Oct, 2017

2 commits

  • The Qualcomm remote file system protocol is used by certain remoteprocs,
    in particular the modem, to read and write persistent storage in
    platforms where only the application CPU has physical storage access.

    The protocol is based on a set of QMI-encoded control-messages and a
    shared memory buffer for exchaning the data. This driver implements the
    latter, providing the user space service access to the carved out chunk
    of memory.

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

    Bjorn Andersson
     
  • By iterating over all /reserved-memory child nodes and match each one to
    a list of compatibles that we want to treat specially, we can easily
    extend the list of compatibles to handle - without having to resort to
    of_platform_populate() that would create unnecessary platform_devices.

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

    Bjorn Andersson
     

25 Aug, 2017

1 commit


19 Jul, 2017

1 commit


08 Jul, 2017

1 commit

  • Pull DeviceTree updates from Rob Herring:

    - vsprintf format specifier %pOF for device_node's. This will enable us
    to stop storing the full node names. Conversion of users will happen
    next cycle.

    - Update documentation to point to DT specification instead of ePAPR.

    - Split out graph and property functions to a separate file.

    - New of-graph functions for ALSA

    - Add vendor prefixes for RISC-V, Linksys, iWave Systems, Roofull,
    Itead, and BananaPi.

    - Improve dtx_diff utility filename printing.

    * tag 'devicetree-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (32 commits)
    of: document /sys/firmware/fdt
    dt-bindings: Add RISC-V vendor prefix
    vsprintf: Add %p extension "%pOF" for device tree
    of: find_node_by_full_name rewrite to compare each level
    of: use kbasename instead of open coding
    dt-bindings: thermal: add file extension to brcm,ns-thermal
    of: update ePAPR references to point to Devicetree Specification
    scripts/dtc: dtx_diff - Show real file names in diff header
    of: detect invalid phandle in overlay
    of: be consistent in form of file mode
    of: make __of_attach_node() static
    of: address.c header comment typo
    of: fdt.c header comment typo
    of: make of_fdt_is_compatible() static
    dt-bindings: display-timing.txt convert non-ascii characters to ascii
    Documentation: remove overlay-notes reference to non-existent file
    dt-bindings: usb: exynos-usb: Add missing required VDD properties
    dt-bindings: Add vendor prefix for Linksys
    MAINTAINERS: add device tree ABI documentation file
    of: Add vendor prefix for iWave Systems Technologies Pvt. Ltd
    ...

    Linus Torvalds
     

23 Jun, 2017

1 commit

  • Several places in DT code open code the equivalent of kbasename.
    Replace them.

    The behavior for root nodes in node_name_cmp will be slightly different.
    Instead of comparing "/", "" will be compared. The comparison will be
    the same.

    Reviewed-by: Andy Shevchenko
    Signed-off-by: Rob Herring

    Rob Herring
     

23 May, 2017

1 commit

  • of_platform_device_destroy is the counterpart to
    of_platform_device_create which is a non-static function.

    After creating a platform device it might be neccessary
    to destroy it to deal with -EPROBE_DEFER where a
    repeated of_platform_device_create call would fail otherwise.

    Therefore also make of_platform_device_destroy globally visible.

    Signed-off-by: Jan Glauber
    Acked-by: Rob Herring
    Signed-off-by: Ulf Hansson

    Jan Glauber
     

10 May, 2017

1 commit

  • Pull IOMMU updates from Joerg Roedel:

    - code optimizations for the Intel VT-d driver

    - ability to switch off a previously enabled Intel IOMMU

    - support for 'struct iommu_device' for OMAP, Rockchip and Mediatek
    IOMMUs

    - header optimizations for IOMMU core code headers and a few fixes that
    became necessary in other parts of the kernel because of that

    - ACPI/IORT updates and fixes

    - Exynos IOMMU optimizations

    - updates for the IOMMU dma-api code to bring it closer to use per-cpu
    iova caches

    - new command-line option to set default domain type allocated by the
    iommu core code

    - another command line option to allow the Intel IOMMU switched off in
    a tboot environment

    - ARM/SMMU: TLB sync optimisations for SMMUv2, Support for using an
    IDENTITY domain in conjunction with DMA ops, Support for SMR masking,
    Support for 16-bit ASIDs (was previously broken)

    - various other small fixes and improvements

    * tag 'iommu-updates-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (63 commits)
    soc/qbman: Move dma-mapping.h include to qman_priv.h
    soc/qbman: Fix implicit header dependency now causing build fails
    iommu: Remove trace-events include from iommu.h
    iommu: Remove pci.h include from trace/events/iommu.h
    arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops()
    ACPI/IORT: Fix CONFIG_IOMMU_API dependency
    iommu/vt-d: Don't print the failure message when booting non-kdump kernel
    iommu: Move report_iommu_fault() to iommu.c
    iommu: Include device.h in iommu.h
    x86, iommu/vt-d: Add an option to disable Intel IOMMU force on
    iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed
    iommu/arm-smmu: Correct sid to mask
    iommu/amd: Fix incorrect error handling in amd_iommu_bind_pasid()
    iommu: Make iommu_bus_notifier return NOTIFY_DONE rather than error code
    omap3isp: Remove iommu_group related code
    iommu/omap: Add iommu-group support
    iommu/omap: Make use of 'struct iommu_device'
    iommu/omap: Store iommu_dev pointer in arch_data
    iommu/omap: Move data structures to omap-iommu.h
    iommu/omap: Drop legacy-style device support
    ...

    Linus Torvalds
     

20 Apr, 2017

2 commits

  • Configuring DMA ops at probe time will allow deferring device probe when
    the IOMMU isn't available yet. The dma_configure for the device is
    now called from the generic device_attach callback just before the
    bus/driver probe is called. This way, configuring the DMA ops for the
    device would be called at the same place for all bus_types, hence the
    deferred probing mechanism should work for all buses as well.

    pci_bus_add_devices (platform/amba)(_device_create/driver_register)
    | |
    pci_bus_add_device (device_add/driver_register)
    | |
    device_attach device_initial_probe
    | |
    __device_attach_driver __device_attach_driver
    |
    driver_probe_device
    |
    really_probe
    |
    dma_configure

    Similarly on the device/driver_unregister path __device_release_driver is
    called which inturn calls dma_deconfigure.

    This patch changes the dma ops configuration to probe time for
    both OF and ACPI based platform/amba/pci bus devices.

    Tested-by: Marek Szyprowski
    Tested-by: Hanjun Guo
    Reviewed-by: Robin Murphy
    Acked-by: Rob Herring
    Acked-by: Bjorn Helgaas (drivers/pci part)
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Sricharan R
    Signed-off-by: Joerg Roedel

    Sricharan R
     
  • As part of moving DMA initializing to probe time the
    of_dma_deconfigure() function will need to be called from different
    source files. Make it public and move it to drivers/of/device.c where
    the of_dma_configure() function is.

    Tested-by: Marek Szyprowski
    Reviewed-by: Robin Murphy
    Acked-by: Rob Herring
    Signed-off-by: Laurent Pinchart
    Signed-off-by: Joerg Roedel

    Laurent Pinchart
     

07 Mar, 2017

1 commit

  • First slice of drm-misc-next for 4.12:

    Core/subsystem-wide:
    - link status core patch from Manasi, for signalling link train fail
    to userspace. I also had the i915 patch in here, but that had a
    small buglet in our CI, so reverted.
    - more debugfs_remove removal from Noralf, almost there now (Noralf
    said he'll try to follow up with the stragglers).
    - drm todo moved into kerneldoc, for better visibility (see
    Documentation/gpu/todo.rst), lots of starter tasks in there.
    - devm_ of helpers + use it in sti (from Ben Gaignard, acked by Rob
    Herring)
    - extended framebuffer fbdev support (for fbdev flipping), and vblank
    wait ioctl fbdev support (Maxime Ripard)
    - misc small things all over, as usual
    - add vblank callbacks to drm_crtc_funcs, plus make lots of good use
    of this to simplify drivers (Shawn Guo)
    - new atomic iterator macros to unconfuse old vs. new state

    Small drivers:
    - vc4 improvements from Eric
    - vc4 kerneldocs (Eric)!
    - tons of improvements for dw-mipi-dsi in rockchip from John Keeping
    and Chris Zhong.
    - MAINTAINERS entries for drivers managed in drm-misc. It's not yet
    official, still an experiment, but definitely not complete fail and
    better to avoid confusion. We kinda screwed that up with drm-misc a
    bit when we started committers last year.
    - qxl atomic conversion (Gabriel Krisman)
    - bunch of virtual driver polish (qxl, virgl, ...)
    - misc tiny patches all over

    This is the first time we've done the same merge-window blackout for
    drm-misc as we've done for drm-intel for ages, hence why we have a
    _lot_ of stuff queued already. But it's still only half of drm-intel
    (room to grow!), and the drivers in drm-misc experiment seems to work
    at least insofar as that you also get lots of driver updates here
    alredy.

    * tag 'drm-misc-next-2017-03-06' of git://anongit.freedesktop.org/git/drm-misc: (141 commits)
    drm/vc4: Fix OOPSes from trying to cache a partially constructed BO.
    drm/vc4: Fulfill user BO creation requests from the kernel BO cache.
    Revert "drm/i915: Implement Link Rate fallback on Link training failure"
    drm/fb-helper: implement ioctl FBIO_WAITFORVSYNC
    drm: Update drm_fbdev_cma_init documentation
    drm/rockchip/dsi: add dw-mipi power domain support
    drm/rockchip/dsi: fix insufficient bandwidth of some panel
    dt-bindings: add power domain node for dw-mipi-rockchip
    drm/rockchip/dsi: remove mode_valid function
    drm/rockchip/dsi: dw-mipi: correct the coding style
    drm/rockchip/dsi: dw-mipi: support RK3399 mipi dsi
    dt-bindings: add rk3399 support for dw-mipi-rockchip
    drm/rockchip: dw-mipi-dsi: add reset control
    drm/rockchip: dw-mipi-dsi: support non-burst modes
    drm/rockchip: dw-mipi-dsi: defer probe if panel is not loaded
    drm/rockchip: vop: test for P{H,V}SYNC
    drm/rockchip: dw-mipi-dsi: use positive check for N{H, V}SYNC
    drm/rockchip: dw-mipi-dsi: use specific poll helper
    drm/rockchip: dw-mipi-dsi: improve PLL configuration
    drm/rockchip: dw-mipi-dsi: properly configure PHY timing
    ...

    Dave Airlie
     

28 Feb, 2017

1 commit

  • Lots of calls to of_platform_populate() are not unbalanced by a call
    to of_platform_depopulate(). This create issues while drivers are
    bind/unbind.

    In way to solve those issues is to add devm_of_platform_populate()
    which will call of_platform_depopulate() when the device is unbound
    from the bus.

    Signed-off-by: Benjamin Gaignard
    Acked-by: Rob Herring
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/1487952874-23635-2-git-send-email-benjamin.gaignard@linaro.org

    Benjamin Gaignard
     

09 Feb, 2017

1 commit

  • of_device_make_bus_id() was changed to non-static by commit c66012253800
    ("of/device: Make of_device_make_bus_id() usable by other code") more than
    6 years ago, but there are no users of it outside of platform.c. Make the
    function static again.

    Signed-off-by: Frank Rowand
    Signed-off-by: Rob Herring

    Frank Rowand
     

15 Nov, 2016

2 commits


16 Oct, 2016

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the main MIPS pull request for 4.9:

    MIPS core arch code:
    - traps: 64bit kernels should read CP0_EBase 64bit
    - traps: Convert ebase to KSEG0
    - c-r4k: Drop bc_wback_inv() from icache flush
    - c-r4k: Split user/kernel flush_icache_range()
    - cacheflush: Use __flush_icache_user_range()
    - uprobes: Flush icache via kernel address
    - KVM: Use __local_flush_icache_user_range()
    - c-r4k: Fix flush_icache_range() for EVA
    - Fix -mabi=64 build of vdso.lds
    - VDSO: Drop duplicated -I*/-E* aflags
    - tracing: move insn_has_delay_slot to a shared header
    - tracing: disable uprobe/kprobe on compact branch instructions
    - ptrace: Fix regs_return_value for kernel context
    - Squash lines for simple wrapper functions
    - Move identification of VP(E) into proc.c from smp-mt.c
    - Add definitions of SYNC barrierstype values
    - traps: Ensure full EBase is written
    - tlb-r4k: If there are wired entries, don't use TLBINVF
    - Sanitise coherentio semantics
    - dma-default: Don't check hw_coherentio if device is non-coherent
    - Support per-device DMA coherence
    - Adjust MIPS64 CAC_BASE to reflect Config.K0
    - Support generating Flattened Image Trees (.itb)
    - generic: Introduce generic DT-based board support
    - generic: Convert SEAD-3 to a generic board
    - Enable hardened usercopy
    - Don't specify STACKPROTECTOR in defconfigs

    Octeon:
    - Delete dead code and files across the platform.
    - Change to use all memory into use by default.
    - Rename upper case variables in setup code to lowercase.
    - Delete legacy hack for broken bootloaders.
    - Leave maintaining the link state to the actual ethernet/PHY drivers.
    - Add DTS for D-Link DSR-500N.
    - Fix PCI interrupt routing on D-Link DSR-500N.

    Pistachio:
    - Remove ANDROID_TIMED_OUTPUT from defconfig

    TX39xx:
    - Move GPIO setup from .mem_setup() to .arch_init()
    - Convert to Common Clock Framework

    TX49xx:
    - Move GPIO setup from .mem_setup() to .arch_init()
    - Convert to Common Clock Framework

    txx9wdt:
    - Add missing clock (un)prepare calls for CCF

    BMIPS:
    - Add PW, GPIO SDHCI and NAND device node names
    - Support APPENDED_DTB
    - Add missing bcm97435svmb to DT_NONE
    - Rename bcm96358nb4ser to bcm6358-neufbox4-sercom
    - Add DT examples for BCM63268, BCM3368 and BCM6362
    - Add support for BCM3368 and BCM6362

    PCI
    - Reduce stack frame usage
    - Use struct list_head lists
    - Support for CONFIG_PCI_DOMAINS_GENERIC
    - Make pcibios_set_cache_line_size an initcall
    - Inline pcibios_assign_all_busses
    - Split pci.c into pci.c & pci-legacy.c
    - Introduce CONFIG_PCI_DRIVERS_LEGACY
    - Support generic drivers

    CPC
    - Convert bare 'unsigned' to 'unsigned int'
    - Avoid lock when MIPS CM >= 3 is present

    GIC:
    - Delete unused file smp-gic.c

    mt7620:
    - Delete unnecessary assignment for the field "owner" from PCI

    BCM63xx:
    - Let clk_disable() return immediately if clk is NULL

    pm-cps:
    - Change FSB workaround to CPU blacklist
    - Update comments on barrier instructions
    - Use MIPS standard lightweight ordering barrier
    - Use MIPS standard completion barrier
    - Remove selection of sync types
    - Add MIPSr6 CPU support
    - Support CM3 changes to Coherence Enable Register

    SMP:
    - Wrap call to mips_cpc_lock_other in mips_cm_lock_other
    - Introduce mechanism for freeing and allocating IPIs

    cpuidle:
    - cpuidle-cps: Enable use with MIPSr6 CPUs.

    SEAD3:
    - Rewrite to use DT and generic kernel feature.

    USB:
    - host: ehci-sead3: Remove SEAD-3 EHCI code

    FBDEV:
    - cobalt_lcdfb: Drop SEAD3 support

    dt-bindings:
    - Document a binding for simple ASCII LCDs

    auxdisplay:
    - img-ascii-lcd: driver for simple ASCII LCD displays

    irqchip i8259:
    - i8259: Add domain before mapping parent irq
    - i8259: Allow platforms to override poll function
    - i8259: Remove unused i8259A_irq_pending

    Malta:
    - Rewrite to use DT

    of/platform:
    - Probe "isa" busses by default

    CM:
    - Print CM error reports upon bus errors

    Module:
    - Migrate exception table users off module.h and onto extable.h
    - Make various drivers explicitly non-modular:
    - Audit and remove any unnecessary uses of module.h

    mailmap:
    - Canonicalize to Qais' current email address.

    Documentation:
    - MIPS supports HAVE_REGS_AND_STACK_ACCESS_API

    Loongson1C:
    - Add CPU support for Loongson1C
    - Add board support
    - Add defconfig
    - Add RTC support for Loongson1C board

    All this except one Documentation fix has sat in linux-next and has
    survived Imagination's automated build test system"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (127 commits)
    Documentation: MIPS supports HAVE_REGS_AND_STACK_ACCESS_API
    MIPS: ptrace: Fix regs_return_value for kernel context
    MIPS: VDSO: Drop duplicated -I*/-E* aflags
    MIPS: Fix -mabi=64 build of vdso.lds
    MIPS: Enable hardened usercopy
    MIPS: generic: Convert SEAD-3 to a generic board
    MIPS: generic: Introduce generic DT-based board support
    MIPS: Support generating Flattened Image Trees (.itb)
    MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
    MIPS: Print CM error reports upon bus errors
    MIPS: Support per-device DMA coherence
    MIPS: dma-default: Don't check hw_coherentio if device is non-coherent
    MIPS: Sanitise coherentio semantics
    MIPS: PCI: Support generic drivers
    MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY
    MIPS: PCI: Split pci.c into pci.c & pci-legacy.c
    MIPS: PCI: Inline pcibios_assign_all_busses
    MIPS: PCI: Make pcibios_set_cache_line_size an initcall
    MIPS: PCI: Support for CONFIG_PCI_DOMAINS_GENERIC
    MIPS: PCI: Use struct list_head lists
    ...

    Linus Torvalds
     

06 Oct, 2016

1 commit

  • Since commit 44a7185c2ae6 ("of/platform: Add common method to populate
    default bus") platforms calling of_platform_bus_probe from an initcall
    is either a rather unsafe race with of_platform_default_populate_init or
    a no-op. The MIPS Malta board needs to probe devices under an ISA bus,
    which we do support in the of_busses array but until now haven't
    included in of_default_bus_match_table.

    Add an "isa" entry to of_default_bus_match_table such that we can just
    accept use of of_platform_default_populate_init & remove the
    Malta-specific match table in a later patch.

    Signed-off-by: Paul Burton
    Acked-by: Rob Herring
    Cc: Frank Rowand
    Cc: linux-mips@linux-mips.org
    Cc: devicetree@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/14275/
    Signed-off-by: Ralf Baechle

    Paul Burton
     

15 Sep, 2016

1 commit

  • Whilst we're some of the way towards a universal firmware property
    interface, drivers which deal with both OF and ACPI probing end up
    having to do things like this:

    dev->of_node ? &dev->of_node->fwnode : dev->fwnode

    This seems unnecessary, when the OF code could instead simply fill in
    the device's fwnode when binding the of_node, and let the drivers use
    dev->fwnode either way. Let's give it a go and see what falls out.

    Signed-off-by: Robin Murphy
    Signed-off-by: Rob Herring

    Robin Murphy
     

13 Aug, 2016

1 commit

  • With the commit 44a7185c2ae6 ("of/platform: Add common method to
    populate default bus"), a default function is introduced to populate
    the default bus and this function is invoked at the arch_initcall_sync
    level. But a lot of ppc boards use machine_device_initcall() to
    populate the default bus. This means that the default populate function
    has higher priority and would override the arch specific population of
    the bus. The side effect is that some arch specific bus are not probed,
    then cause various malfunction due to the miss of some devices. Since
    it is very possible to introduce bugs if we simply change the initcall
    level for all these boards(about 30+). This just disable this default
    function for all the ppc boards.

    Signed-off-by: Kevin Hao
    Signed-off-by: Rob Herring

    Kevin Hao
     

06 Aug, 2016

1 commit

  • Instead of a ramoops-specific node, use a child node of /reserved-memory.
    This requires that of_platform_device_create() be explicitly called
    for the node, though, since "/reserved-memory" does not have its own
    "compatible" property.

    Suggested-by: Rob Herring
    Signed-off-by: Kees Cook
    Acked-by: Rob Herring

    Kees Cook
     

19 Jul, 2016

1 commit


24 Jun, 2016

2 commits

  • This reverts commit b80443c2211c7daaabd20fbbe9e7beb3fa3408e0.

    After covering to use helper of_platform_default_populate() to populate
    the default bus, no need to export of_default_bus_match_table anymore.

    Reviewed-by: Masahiro Yamada
    Cc: Masahiro Yamada
    Cc: Rob Herring
    Cc: Frank Rowand
    Cc: Grant Likely
    Signed-off-by: Kefeng Wang
    Signed-off-by: Rob Herring

    Kefeng Wang
     
  • The arch code calls of_platform_populate() with default match table
    when it wants to populate default bus.

    This patch introduce a new of_platform_default_populate_init() and make it
    arch_initcall_sync(it should be later than some iommu configration, eg,
    of_iommu_init() and swiotlb_late_init in arm64), then we can finish above
    job in common method.

    In order to avoid the default bus being populated twice, simply checking
    the flag of bus node whether has be set OF_POPULATED_BUS or not.

    After that, we can safely remove the caller in arch code.

    Btw, add debug print in of_platform_populate(), and use __func__ to
    print function's name of of_platform_bus_create().

    Cc: Rob Herring
    Cc: Frank Rowand
    Cc: Grant Likely
    Signed-off-by: Kefeng Wang
    Signed-off-by: Rob Herring

    Kefeng Wang
     

15 Apr, 2016

1 commit

  • We currently try to match of_dev_auxdata based on compatible,
    IO address, and device name. But in some cases we have multiple
    instances of drivers that can use the same auxdata.

    Let's add an additional secondary lookup for generic compatible
    match for auxdata if no device specific match is found. This does
    not change the existing matching, and still allows adding device
    specific auxdata.

    This simplifies things as specifying the IO address and device
    name is prone errors as it requires maintaining an in kernel
    database for each SoC.

    To specify a generic match, all that is needed is to add a
    OF_DEV_AUXDATA entry with no device instance specified:

    OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata),

    As the auxdata is already initialized only for the booted SoC,
    there's not much of a chance of getting things wrong.

    Let's also fix two checkpatch warnings while at it to add a
    space before parenthesis in the for loop, and remove a comparison
    to NULL by using !auxdata->compatible.

    Acked-by: Rob Herring
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

05 Jan, 2016

1 commit


22 Oct, 2015

1 commit

  • for_each_child_of_node performs an of_node_get on each iteration, so
    a break out of the loop requires an of_node_put.

    A simplified version of the semantic patch that fixes this problem is as
    follows (http://coccinelle.lip6.fr):

    //
    @@
    local idexpression n;
    expression root,e;
    @@

    for_each_child_of_node(root,n) {
    ...
    (
    of_node_put(n);
    |
    e = n
    |
    + of_node_put(n);
    ? break;
    )
    ...
    }
    ... when != n
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Rob Herring

    Julia Lawall
     

02 Sep, 2015

1 commit

  • Pull devicetree updates from Rob Herring:
    - added Frank Rowand as DT maintainer in preparation for Grant's
    retirement.
    - generic MSI binding documentation and a few other minor doc updates
    - fix long standing issue with DT platorm device unregistration
    - fix loop forever bug in of_find_matching_node_by_address()

    * tag 'devicetree-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    MAINTAINERS: Add Frank Rowand as DT maintainer
    mtd: nand: pxa3xx: add optional dma for pxa architecture
    Documentation: DT: cpsw: document missing compatible
    Docs: dt: add generic MSI bindings
    drivercore: Fix unregistration path of platform devices
    of/address: Don't loop forever in of_find_matching_node_by_address().
    of: Add vendor prefix for JEDEC Solid State Technology Association
    of/platform: add function to populate default bus
    of: Add vendor prefix for Sharp Corporation

    Linus Torvalds
     

26 Aug, 2015

1 commit

  • When a default bus like the simple-bus should be used someone had to
    call of_platform_populate() with the default match table. This match
    table was not exported, so it is impossible for code build as a module
    to use this. Instead of exporting of_default_bus_match_table, add a new
    function which uses this default match table and populates the bus.

    Signed-off-by: Hauke Mehrtens
    Signed-off-by: Rob Herring

    Hauke Mehrtens
     

30 Jul, 2015

1 commit

  • As for PCI, we're able to populate the msi_domain field at probe time,
    provided that the device tree has an "msi-parent" property.

    Signed-off-by: Marc Zyngier
    Cc:
    Cc: Yijing Wang
    Cc: Ma Jun
    Cc: Lorenzo Pieralisi
    Cc: Duc Dang
    Cc: Hanjun Guo
    Cc: Bjorn Helgaas
    Cc: Jiang Liu
    Cc: Jason Cooper
    Link: http://lkml.kernel.org/r/1438091186-10244-9-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

11 May, 2015

1 commit

  • This defines a new compatible option for MFD devices "simple-mfd" that will
    make the OF core spawn child devices for all subnodes of that MFD device.
    It is optional but handy for things like syscon and possibly other
    simpler MFD devices.

    Since there was no file to put the documentation in, I took this opportunity
    to make a small writeup on MFD devices and add the compatible definition
    there.

    Suggested-by: Lee Jones
    Acked-by: Lee Jones
    Acked-by: Antoine Tenart
    Acked-by: Alexandre Belloni
    Cc: Arnd Bergmann
    Cc: Devicetree
    Cc: Rob Herring
    Cc: Benjamin Herrenschmidt
    Cc: Grant Likely
    Cc: Pawel Moll
    Cc: Mark Rutland
    Cc: Ian Campbell
    Cc: Kumar Gala
    Signed-off-by: Linus Walleij

    Linus Walleij
     

04 Mar, 2015

2 commits

  • Move of_dma_configure() to device.c so it can be re-used for PCI devices to
    obtain DMA configuration from DT. Also add a second argument so that for
    PCI, the DT node of root bus host bridge can be used to obtain the DMA
    configuration for the slave PCI device.

    Tested-by: Suravee Suthikulpanit (AMD Seattle)
    Signed-off-by: Murali Karicheri
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Catalin Marinas
    Acked-by: Will Deacon
    Acked-by: Rob Herring
    CC: Joerg Roedel
    CC: Grant Likely
    CC: Russell King
    CC: Arnd Bergmann

    Murali Karicheri
     
  • of_iommu_configure() is called from of_dma_configure() to setup iommu ops
    using DT property. This API is currently used for platform devices for
    which DMA configuration (including IOMMU ops) may come from the device's
    parent. To extend this functionality for PCI devices, this API needs to
    take a parent node ptr as an argument instead of assuming device's parent.
    This is needed since for PCI, the DMA configuration may be defined in the
    DT node of the root bus bridge's parent device. Currently only dma-range
    is used for PCI and IOMMU is not supported. Return error if the device is
    PCI.

    Add "parent" parameter (a struct device_node *) to of_iommu_configure().

    Tested-by: Suravee Suthikulpanit (AMD Seattle)
    Signed-off-by: Murali Karicheri
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Catalin Marinas
    Acked-by: Rob Herring
    Acked-by: Will Deacon
    CC: Joerg Roedel
    CC: Grant Likely
    CC: Russell King
    CC: Arnd Bergmann

    Murali Karicheri
     

18 Feb, 2015

1 commit

  • Pull ARM SoC driver updates from Olof Johansson:
    "These are changes for drivers that are intimately tied to some SoC and
    for some reason could not get merged through the respective subsystem
    maintainer tree.

    This time around, much of this is for at91, with the bulk of it being
    syscon and udc drivers.

    Also, there's:
    - coupled cpuidle support for Samsung Exynos4210
    - Renesas 73A0 common-clk work
    - of/platform changes to tear down DMA mappings on device destruction
    - a few updates to the TI Keystone knav code"

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
    cpuidle: exynos: add coupled cpuidle support for exynos4210
    ARM: EXYNOS: apply S5P_CENTRAL_SEQ_OPTION fix only when necessary
    soc: ti: knav_qmss_queue: change knav_range_setup_acc_irq to static
    soc: ti: knav_qmss_queue: makefile tweak to build as dynamic module
    pcmcia: at91_cf: depend on !ARCH_MULTIPLATFORM
    soc: ti: knav_qmss_queue: export API calls for use by user driver
    of/platform: teardown DMA mappings on device destruction
    usb: gadget: at91_udc: Allocate udc instance
    usb: gadget: at91_udc: Update DT binding documentation
    usb: gadget: at91_udc: Rework for multi-platform kernel support
    usb: gadget: at91_udc: Simplify probe and remove functions
    usb: gadget: at91_udc: Remove non-DT handling code
    usb: gadget: at91_udc: Document DT clocks and clock-names property
    usb: gadget: at91_udc: Drop uclk clock
    usb: gadget: at91_udc: Fix clock names
    mfd: syscon: Add Atmel SMC binding doc
    mfd: syscon: Add atmel-smc registers definition
    mfd: syscon: Add Atmel Matrix bus DT binding documentation
    mfd: syscon: Add atmel-matrix registers definition
    clk: shmobile: fix sparse NULL pointer warning
    ...

    Linus Torvalds
     

22 Jan, 2015

2 commits


14 Jan, 2015

1 commit