20 Jan, 2017

2 commits

  • commit 1d701d3dd8caf6660ff33c3c23a115b4649c5cdb upstream.

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

    Fixes: 63edb0310a5c ("remoteproc: Supply controller driver for ST's Remote Processors")
    Signed-off-by: Wei Yongjun
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Greg Kroah-Hartman

    Wei Yongjun
     
  • commit 6de1a507c46bf22ed97043495b9ab96e4d5c213b upstream.

    The tie between the main WCNSS driver and the IRIS driver causes a
    circular dependency between the two modules. Neither part makes sense to
    have on their own so lets merge them into one module.

    For the sake of picking up the clock and regulator resources described
    in the iris of_node we need an associated struct device. But, to keep
    the size of the patch down we continue to represent the IRIS part as its
    own platform_driver, within the same module, rather than setting up a
    dummy device.

    Fixes: aed361adca9f ("remoteproc: qcom: Introduce WCNSS peripheral image loader")
    Reported-by: Andreas Färber
    Signed-off-by: Bjorn Andersson
    Signed-off-by: Greg Kroah-Hartman

    Bjorn Andersson
     

07 Oct, 2016

1 commit

  • Pull rpmsg updates from Bjorn Andersson:
    "The bulk of these patches involve splitting the rpmsg implementation
    into a framework/API part and a virtio specific backend part. It then
    adds the Qualcomm Shared Memory Device (SMD) as an additional
    supported wire format.

    Also included is a set of code style cleanups that have been lingering
    for a while"

    * tag 'rpmsg-v4.9' of git://github.com/andersson/remoteproc: (26 commits)
    rpmsg: smd: fix dependency on QCOM_SMD=n
    rpmsg: Introduce Qualcomm SMD backend
    rpmsg: Allow callback to return errors
    rpmsg: Move virtio specifics from public header
    rpmsg: virtio: Hide vrp pointer from the public API
    rpmsg: Hide rpmsg indirection tables
    rpmsg: Split rpmsg core and virtio backend
    rpmsg: Split off generic tail of create_channel()
    rpmsg: Move helper for finding rpmsg devices to core
    rpmsg: Move endpoint related interface to rpmsg core
    rpmsg: Indirection table for rpmsg_endpoint operations
    rpmsg: Move rpmsg_device API to new file
    rpmsg: Introduce indirection table for rpmsg_device operations
    rpmsg: Clean up rpmsg device vs channel naming
    rpmsg: Make rpmsg_create_ept() take channel_info struct
    rpmsg: rpmsg_send() operations takes rpmsg_endpoint
    rpmsg: Name rpmsg devices based on channel id
    rpmsg: Enable matching devices with drivers based on DT
    rpmsg: Drop prototypes for non-existing functions
    samples/rpmsg: add support for multiple instances
    ...

    Linus Torvalds
     

03 Oct, 2016

3 commits


20 Sep, 2016

1 commit


09 Sep, 2016

1 commit


07 Sep, 2016

1 commit

  • In current implementation, struct fw_rsc_vdev_vring which describes
    vring resource in firmware resource table owns only device address,
    because it assumes that host is responsible of vring allocation and
    only device address is needed by coprocessor.
    But if vrings need to be fixed in system memory map for any reasons
    (security, SoC charactieristics...), physical address is needed exatly
    identified the memory chunck by host.

    For that let's transform reserved field of struct fw_rsc_vdev_vring
    to pa (physical address).

    Signed-off-by: Loic Pallardy
    Signed-off-by: Bjorn Andersson

    Loic PALLARDY
     

23 Aug, 2016

1 commit


19 Aug, 2016

2 commits


18 Aug, 2016

4 commits

  • As we moved the vdev handling to the main boot/shutdown code path we can
    further simplify the resource table handling by moving the parsing spet
    to boot as well. The lifespan of the resource table is changed to live
    from rproc_boot() to rproc_shutdown().

    Cc: Lee Jones
    Cc: Loic Pallardy
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     
  • The newly introduced "always-on" flag allows us to stop giving the vdevs
    special treatment. The ordering of resource allocation and life cycle of
    the remote processor is kept intact.

    This allows us to mark a remote processor with vdevs to not boot unless
    explicitly requested to do so by a client driver.

    Cc: Lee Jones
    Cc: Loic Pallardy
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     
  • The calculation of max_notifyid must only be done before we call start()
    on the remoteproc drivers, so move the calculation to be part of the
    loading steps.

    Cc: Lee Jones
    Cc: Loic Pallardy
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     
  • Introduce an "auto-boot" flag on rprocs to make it possible to flag
    remote processors without vdevs to automatically boot once the firmware
    is found.

    Preserve previous behavior of the wkup_m3 processor being explicitly
    booted by a consumer.

    Cc: Lee Jones
    Cc: Loic Pallardy
    Cc: Suman Anna
    Signed-off-by: Bjorn Andersson

    Bjorn Andersson
     

13 Aug, 2016

8 commits


11 Aug, 2016

4 commits


04 Aug, 2016

1 commit

  • The dma-mapping core and the implementations do not change the DMA
    attributes passed by pointer. Thus the pointer can point to const data.
    However the attributes do not have to be a bitfield. Instead unsigned
    long will do fine:

    1. This is just simpler. Both in terms of reading the code and setting
    attributes. Instead of initializing local attributes on the stack
    and passing pointer to it to dma_set_attr(), just set the bits.

    2. It brings safeness and checking for const correctness because the
    attributes are passed by value.

    Semantic patches for this change (at least most of them):

    virtual patch
    virtual context

    @r@
    identifier f, attrs;

    @@
    f(...,
    - struct dma_attrs *attrs
    + unsigned long attrs
    , ...)
    {
    ...
    }

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    and

    // Options: --all-includes
    virtual patch
    virtual context

    @r@
    identifier f, attrs;
    type t;

    @@
    t f(..., struct dma_attrs *attrs);

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.com
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Vineet Gupta
    Acked-by: Robin Murphy
    Acked-by: Hans-Christian Noren Egtvedt
    Acked-by: Mark Salter [c6x]
    Acked-by: Jesper Nilsson [cris]
    Acked-by: Daniel Vetter [drm]
    Reviewed-by: Bart Van Assche
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Fabien Dessenne [bdisp]
    Reviewed-by: Marek Szyprowski [vb2-core]
    Acked-by: David Vrabel [xen]
    Acked-by: Konrad Rzeszutek Wilk [xen swiotlb]
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Richard Kuo [hexagon]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Gerald Schaefer [s390]
    Acked-by: Bjorn Andersson
    Acked-by: Hans-Christian Noren Egtvedt [avr32]
    Acked-by: Vineet Gupta [arc]
    Acked-by: Robin Murphy [arm64 and dma-iommu]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     

15 Jul, 2016

2 commits


14 Jul, 2016

1 commit


15 Jun, 2016

1 commit

  • rproc_add adds the newly created remoteproc to a list for use by
    rproc_get_by_phandle and then does some additional processing to finish
    adding the remoteproc. This leaves a small window of time in which the
    rproc is available in the list but not yet fully initialized, so if
    another driver comes along and gets a handle to the rproc, it will be
    invalid. Rearrange the code in rproc_add to make sure the rproc is added
    to the list only after it has been successfuly initialized.

    Fixes: fec47d863587 ("remoteproc: introduce rproc_get_by_phandle API")
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Gerlach
    Signed-off-by: Bjorn Andersson

    Dave Gerlach
     

13 May, 2016

2 commits


07 May, 2016

1 commit

  • By default, rproc_fw_boot() needs to wait for rproc to be configured,
    but a race may occur when using rpmsg/virtio. In this case, it can
    be called locally in a safe manor.

    This patch represents two usecases:

    - External call (via exported rproc_boot()), which waits
    - Internal call can use 'nowait' version of rproc_boot()

    Signed-off-by: Fabrice Gasnier
    Signed-off-by: Lee Jones
    Signed-off-by: Bjorn Andersson

    Lee Jones
     

29 Mar, 2016

1 commit


30 Jan, 2016

3 commits