17 Aug, 2017

1 commit

  • Subdevices of bpmp, such as bpmp-i2c, require the bpmp device's
    drvdata to be set during their probe. Currently this is not always the
    case. Fix this by calling platform_set_drvdata() earlier during bpmp's
    probe.

    Signed-off-by: Timo Alho
    Signed-off-by: Thierry Reding

    Timo Alho
     

07 Jul, 2017

1 commit

  • Pull dma-mapping infrastructure from Christoph Hellwig:
    "This is the first pull request for the new dma-mapping subsystem

    In this new subsystem we'll try to properly maintain all the generic
    code related to dma-mapping, and will further consolidate arch code
    into common helpers.

    This pull request contains:

    - removal of the DMA_ERROR_CODE macro, replacing it with calls to
    ->mapping_error so that the dma_map_ops instances are more self
    contained and can be shared across architectures (me)

    - removal of the ->set_dma_mask method, which duplicates the
    ->dma_capable one in terms of functionality, but requires more
    duplicate code.

    - various updates for the coherent dma pool and related arm code
    (Vladimir)

    - various smaller cleanups (me)"

    * tag 'dma-mapping-4.13' of git://git.infradead.org/users/hch/dma-mapping: (56 commits)
    ARM: dma-mapping: Remove traces of NOMMU code
    ARM: NOMMU: Set ARM_DMA_MEM_BUFFERABLE for M-class cpus
    ARM: NOMMU: Introduce dma operations for noMMU
    drivers: dma-mapping: allow dma_common_mmap() for NOMMU
    drivers: dma-coherent: Introduce default DMA pool
    drivers: dma-coherent: Account dma_pfn_offset when used with device tree
    dma: Take into account dma_pfn_offset
    dma-mapping: replace dmam_alloc_noncoherent with dmam_alloc_attrs
    dma-mapping: remove dmam_free_noncoherent
    crypto: qat - avoid an uninitialized variable warning
    au1100fb: remove a bogus dma_free_nonconsistent call
    MAINTAINERS: add entry for dma mapping helpers
    powerpc: merge __dma_set_mask into dma_set_mask
    dma-mapping: remove the set_dma_mask method
    powerpc/cell: use the dma_supported method for ops switching
    powerpc/cell: clean up fixed mapping dma_ops initialization
    tile: remove dma_supported and mapping_error methods
    xen-swiotlb: remove xen_swiotlb_set_dma_mask
    arm: implement ->dma_supported instead of ->set_dma_mask
    mips/loongson64: implement ->dma_supported instead of ->set_dma_mask
    ...

    Linus Torvalds
     

20 Jun, 2017

1 commit


19 Jun, 2017

1 commit


14 Jun, 2017

1 commit

  • There are a bunch of error paths were we don't unlock the bpmp->threaded
    lock. Also if __tegra_bpmp_channel_write() fails then we returned
    success instead of an error code.

    Fixes: 983de5f97169 ("firmware: tegra: Add BPMP support")
    Signed-off-by: Dan Carpenter
    Signed-off-by: Thierry Reding

    Dan Carpenter
     

13 Jun, 2017

1 commit

  • The BPMP firmware, found on Tegra186 and later, provides an ABI that can
    be used to enable and disable power to several power partitions in Tegra
    SoCs. The ABI allows for enumeration of the available power partitions,
    so the driver can be reused on future generations, provided the BPMP ABI
    remains stable.

    Based on work by Stefan Kristiansson and Mikko
    Perttunen .

    Signed-off-by: Thierry Reding
    Reviewed-by: Ulf Hansson
    Signed-off-by: Thierry Reding

    Thierry Reding
     

02 Mar, 2017

1 commit


18 Nov, 2016

2 commits

  • The Boot and Power Management Processor (BPMP) is a co-processor found
    on Tegra SoCs. It is designed to handle the early stages of the boot
    process and offload power management tasks (such as clocks, resets,
    powergates, ...) as well as system control services.

    Compared to the ARM SCPI, the services provided by BPMP are message-
    based rather than method-based. The BPMP firmware driver provides the
    services to transmit data to and receive data from the BPMP. Users can
    also register a Message ReQuest (MRQ), for which a service routine will
    be run when a corresponding event is received from the firmware.

    A set of messages, called the BPMP ABI, are specified for a number of
    different services provided by the BPMP (such as clocks or resets).

    Based on work by Sivaram Nair and Joseph Lo
    .

    Signed-off-by: Thierry Reding

    Thierry Reding
     
  • The Inter-VM communication (IVC) is a communication protocol which is
    designed for interprocessor communication (IPC) or the communication
    between the hypervisor and the virtual machine with a guest OS.

    Message channels are used to communicate between processors. They are
    backed by DRAM or SRAM, so care must be taken to maintain coherence of
    data.

    The IVC library maintains memory-based descriptors for the transmission
    and reception channels as well as the data coherence of the counter and
    payload. Clients, such as the driver for the BPMP firmware, can use the
    library to exchange messages with remote processors.

    Based on work by Peter Newman and Joseph Lo
    .

    Signed-off-by: Thierry Reding

    Thierry Reding