lkml.org 
[lkml]   [2020]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 2/9] remoteproc: Add new attach() remoteproc operation
    Date
    Add an new attach() operation in order to properly deal with
    scenarios where the remoteproc core needs to attach to a
    remote processor that has been booted by another entity.

    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    ---
    drivers/remoteproc/remoteproc_internal.h | 8 ++++++++
    include/linux/remoteproc.h | 2 ++
    2 files changed, 10 insertions(+)

    diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h
    index 4ba7cb59d3e8..fc710866f8ce 100644
    --- a/drivers/remoteproc/remoteproc_internal.h
    +++ b/drivers/remoteproc/remoteproc_internal.h
    @@ -79,6 +79,14 @@ static inline int rproc_unprepare_device(struct rproc *rproc)
    return 0;
    }

    +static inline int rproc_attach_device(struct rproc *rproc)
    +{
    + if (rproc->ops->attach)
    + return rproc->ops->attach(rproc);
    +
    + return 0;
    +}
    +
    static inline
    int rproc_fw_sanity_check(struct rproc *rproc, const struct firmware *fw)
    {
    diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h
    index 21182ad2d059..bf6a310ba870 100644
    --- a/include/linux/remoteproc.h
    +++ b/include/linux/remoteproc.h
    @@ -359,6 +359,7 @@ enum rsc_handling_status {
    * @unprepare: unprepare device after stop
    * @start: power on the device and boot it
    * @stop: power off the device
    + * @attach: attach to a device that his already powered up
    * @kick: kick a virtqueue (virtqueue id given as a parameter)
    * @da_to_va: optional platform hook to perform address translations
    * @parse_fw: parse firmware to extract information (e.g. resource table)
    @@ -379,6 +380,7 @@ struct rproc_ops {
    int (*unprepare)(struct rproc *rproc);
    int (*start)(struct rproc *rproc);
    int (*stop)(struct rproc *rproc);
    + int (*attach)(struct rproc *rproc);
    void (*kick)(struct rproc *rproc, int vqid);
    void * (*da_to_va)(struct rproc *rproc, u64 da, size_t len);
    int (*parse_fw)(struct rproc *rproc, const struct firmware *fw);
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-07-07 23:10    [W:4.080 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site