All of lore.kernel.org
 help / color / mirror / Atom feed
From: Suman Anna <s-anna@ti.com>
To: Loic PALLARDY <loic.pallardy@st.com>,
	Wendy Liang <sunnyliangjy@gmail.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>,
	Ohad Ben-Cohen <ohad@wizery.com>,
	"linux-remoteproc@vger.kernel.org"
	<linux-remoteproc@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Arnaud POULIQUEN <arnaud.pouliquen@st.com>,
	"benjamin.gaignard@linaro.org" <benjamin.gaignard@linaro.org>
Subject: Re: [PATCH v4 13/17] remoteproc: create vdev subdevice with specific dma memory pool
Date: Thu, 25 Oct 2018 15:16:40 -0500	[thread overview]
Message-ID: <3689cf80-c48b-08d0-e72b-f53138830735@ti.com> (raw)
In-Reply-To: <5ef0c9cddc52458a858c2af0590f3b5f@SFHDAG7NODE2.st.com>

On 10/24/18 7:40 AM, Loic PALLARDY wrote:
> Hi Suman,
> 
>> -----Original Message-----
>> From: Suman Anna <s-anna@ti.com>
>> Sent: mercredi 24 octobre 2018 03:22
>> To: Wendy Liang <sunnyliangjy@gmail.com>; Loic PALLARDY
>> <loic.pallardy@st.com>
>> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>; Ohad Ben-Cohen
>> <ohad@wizery.com>; linux-remoteproc@vger.kernel.org; Linux Kernel
>> Mailing List <linux-kernel@vger.kernel.org>; Arnaud POULIQUEN
>> <arnaud.pouliquen@st.com>; benjamin.gaignard@linaro.org
>> Subject: Re: [PATCH v4 13/17] remoteproc: create vdev subdevice with
>> specific dma memory pool
>>
>> On 9/27/18 3:18 PM, Wendy Liang wrote:
>>> Hi Loic,
>>>
>>>
>>> On Thu, Sep 27, 2018 at 12:22 PM Loic PALLARDY <loic.pallardy@st.com>
>> wrote:
>>>>
>>>> Hi Wendy
>>>>
>>>>> -----Original Message-----
>>>>> From: Wendy Liang <sunnyliangjy@gmail.com>
>>>>> Sent: Thursday, September 27, 2018 7:17 PM
>>>>> To: Loic PALLARDY <loic.pallardy@st.com>
>>>>> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>; Ohad Ben-Cohen
>>>>> <ohad@wizery.com>; linux-remoteproc@vger.kernel.org; Linux Kernel
>>>>> Mailing List <linux-kernel@vger.kernel.org>; Arnaud POULIQUEN
>>>>> <arnaud.pouliquen@st.com>; benjamin.gaignard@linaro.org; Suman
>> Anna
>>>>> <s-anna@ti.com>
>>>>> Subject: Re: [PATCH v4 13/17] remoteproc: create vdev subdevice with
>>>>> specific dma memory pool
>>>>>
>>>>> On Fri, Jul 27, 2018 at 6:16 AM Loic Pallardy <loic.pallardy@st.com>
>> wrote:
>>>>>>
>>>>>> This patch creates a dedicated vdev subdevice for each vdev declared
>>>>>> in firmware resource table and associates carveout named
>> "vdev%dbuffer"
>>>>>> (with %d vdev index in resource table) if any as dma coherent memory
>>>>> pool.
>>>>>>
>>>>>> Then vdev subdevice is used as parent for virtio device.
>>>>>>
>>>>>> Signed-off-by: Loic Pallardy <loic.pallardy@st.com>
>>>>>> ---
>>>>>>  drivers/remoteproc/remoteproc_core.c     | 35
>>>>> +++++++++++++++++++++++---
>>>>>>  drivers/remoteproc/remoteproc_internal.h |  1 +
>>>>>>  drivers/remoteproc/remoteproc_virtio.c   | 42
>>>>> +++++++++++++++++++++++++++++++-
>>>>>>  include/linux/remoteproc.h               |  1 +
>>>>>>  4 files changed, 75 insertions(+), 4 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/remoteproc/remoteproc_core.c
>>>>> b/drivers/remoteproc/remoteproc_core.c
>>>>>> index 4edc6f0..adcc66e 100644
>>>>>> --- a/drivers/remoteproc/remoteproc_core.c
>>>>>> +++ b/drivers/remoteproc/remoteproc_core.c
>>>>>> @@ -39,6 +39,7 @@
>>>>>>  #include <linux/idr.h>
>>>>>>  #include <linux/elf.h>
>>>>>>  #include <linux/crc32.h>
>>>>>> +#include <linux/of_reserved_mem.h>
>>>>>>  #include <linux/virtio_ids.h>
>>>>>>  #include <linux/virtio_ring.h>
>>>>>>  #include <asm/byteorder.h>
>>>>>> @@ -145,7 +146,7 @@ static void rproc_disable_iommu(struct rproc
>>>>> *rproc)
>>>>>>         iommu_domain_free(domain);
>>>>>>  }
>>>>>>
>>>>>> -static phys_addr_t rproc_va_to_pa(void *cpu_addr)
>>>>>> +phys_addr_t rproc_va_to_pa(void *cpu_addr)
>>>>>>  {
>>>>>>         /*
>>>>>>          * Return physical address according to virtual address location
>>>>>> @@ -160,6 +161,7 @@ static phys_addr_t rproc_va_to_pa(void
>>>>> *cpu_addr)
>>>>>>         WARN_ON(!virt_addr_valid(cpu_addr));
>>>>>>         return virt_to_phys(cpu_addr);
>>>>>>  }
>>>>>> +EXPORT_SYMBOL(rproc_va_to_pa);
>>>>>>
>>>>>>  /**
>>>>>>   * rproc_da_to_va() - lookup the kernel virtual address for a
>> remoteproc
>>>>> address
>>>>>> @@ -423,6 +425,20 @@ static void rproc_vdev_do_stop(struct
>>>>> rproc_subdev *subdev, bool crashed)
>>>>>>  }
>>>>>>
>>>>>>  /**
>>>>>> + * rproc_rvdev_release() - release the existence of a rvdev
>>>>>> + *
>>>>>> + * @dev: the subdevice's dev
>>>>>> + */
>>>>>> +static void rproc_rvdev_release(struct device *dev)
>>>>>> +{
>>>>>> +       struct rproc_vdev *rvdev = container_of(dev, struct rproc_vdev,
>> dev);
>>>>>> +
>>>>>> +       of_reserved_mem_device_release(dev);
>>>>>> +
>>>>>> +       kfree(rvdev);
>>>>>> +}
>>>>>> +
>>>>>> +/**
>>>>>>   * rproc_handle_vdev() - handle a vdev fw resource
>>>>>>   * @rproc: the remote processor
>>>>>>   * @rsc: the vring resource descriptor
>>>>>> @@ -455,6 +471,7 @@ static int rproc_handle_vdev(struct rproc
>> *rproc,
>>>>> struct fw_rsc_vdev *rsc,
>>>>>>         struct device *dev = &rproc->dev;
>>>>>>         struct rproc_vdev *rvdev;
>>>>>>         int i, ret;
>>>>>> +       char name[16];
>>>>>>
>>>>>>         /* make sure resource isn't truncated */
>>>>>>         if (sizeof(*rsc) + rsc->num_of_vrings * sizeof(struct
>>>>> fw_rsc_vdev_vring)
>>>>>> @@ -488,6 +505,18 @@ static int rproc_handle_vdev(struct rproc
>> *rproc,
>>>>> struct fw_rsc_vdev *rsc,
>>>>>>         rvdev->rproc = rproc;
>>>>>>         rvdev->index = rproc->nb_vdev++;
>>>>>>
>>>>>> +       /* Initialise vdev subdevice */
>>>>>> +       snprintf(name, sizeof(name), "vdev%dbuffer", rvdev->index);
>>>>>> +       rvdev->dev.parent = rproc->dev.parent;
>>>>>> +       rvdev->dev.release = rproc_rvdev_release;
>>>>>> +       dev_set_name(&rvdev->dev, "%s#%s", dev_name(rvdev-
>>>>>> dev.parent), name);
>>>>>> +       dev_set_drvdata(&rvdev->dev, rvdev);
>>>>>> +       dma_set_coherent_mask(&rvdev->dev, DMA_BIT_MASK(32));
>>>>> I tried the latest kernel, this function will not set the DMA coherent mask
>> as
>>>>> dma_supported() of the &rvdev->dev will return false.
>>>>> As this is a device created at run time, should it be force to support
>> DMA?
>>>>> should it directly set the dma_coherent_mask?
>>>>
>>>> Thanks for pointing me this issue. I tested on top of 4.18-rc1 few months
>> ago...
>>>> Could you please give me kernel version on which you are testing the
>> series?
>>>> Is you platform 32bit or 64bit ?
>>>> I'll rebase and check on my side.
>>>
>>> I am testing with 4.19-rc4 on aarch64 platform.
>>
>> Btw, I ran into this on my v7 platform as well (4.19-rc6). The
>> dma_set_coherent_mask fails with error EIO. I did get my allocations
>> through though.
> 
> I don't have issue on v7 platform. Anyway I have now an Xilinx Ultra96 board running on my desk. It looks like vdev device doesn't have dma support, so not possible to set mask.
> Need to continue the investigations...

Strange how it is working for you, the dma support on vdev device should
be the same for all of us right - vdevs are created during runtime.

Think somehow, dma_supported() function is returning non-zero value for you.

regards
Suman

> Regards,
> Loic
>>
>> regards
>> Suman
>>
>>>
>>> Best Regards,
>>> Wendy
>>>>
>>>> Regards,
>>>> Loic
>>>>
>>>>>
>>>>>> +
>>>>>> +       ret = device_register(&rvdev->dev);
>>>>>> +       if (ret)
>>>>>> +               goto free_rvdev;
>>>>>> +
>>>>>>         /* parse the vrings */
>>>>>>         for (i = 0; i < rsc->num_of_vrings; i++) {
>>>>>>                 ret = rproc_parse_vring(rvdev, rsc, i);
>>>>>> @@ -518,7 +547,7 @@ static int rproc_handle_vdev(struct rproc
>> *rproc,
>>>>> struct fw_rsc_vdev *rsc,
>>>>>>         for (i--; i >= 0; i--)
>>>>>>                 rproc_free_vring(&rvdev->vring[i]);
>>>>>>  free_rvdev:
>>>>>> -       kfree(rvdev);
>>>>>> +       device_unregister(&rvdev->dev);
>>>>>>         return ret;
>>>>>>  }
>>>>>>
>>>>>> @@ -536,7 +565,7 @@ void rproc_vdev_release(struct kref *ref)
>>>>>>
>>>>>>         rproc_remove_subdev(rproc, &rvdev->subdev);
>>>>>>         list_del(&rvdev->node);
>>>>>> -       kfree(rvdev);
>>>>>> +       device_unregister(&rvdev->dev);
>>>>>>  }
>>>>>>
>>>>>>  /**
>>>>>> diff --git a/drivers/remoteproc/remoteproc_internal.h
>>>>> b/drivers/remoteproc/remoteproc_internal.h
>>>>>> index f6cad24..bfeacfd 100644
>>>>>> --- a/drivers/remoteproc/remoteproc_internal.h
>>>>>> +++ b/drivers/remoteproc/remoteproc_internal.h
>>>>>> @@ -52,6 +52,7 @@ struct dentry *rproc_create_trace_file(const char
>>>>> *name, struct rproc *rproc,
>>>>>>  int rproc_alloc_vring(struct rproc_vdev *rvdev, int i);
>>>>>>
>>>>>>  void *rproc_da_to_va(struct rproc *rproc, u64 da, int len);
>>>>>> +phys_addr_t rproc_va_to_pa(void *cpu_addr);
>>>>>>  int rproc_trigger_recovery(struct rproc *rproc);
>>>>>>
>>>>>>  int rproc_elf_sanity_check(struct rproc *rproc, const struct firmware
>> *fw);
>>>>>> diff --git a/drivers/remoteproc/remoteproc_virtio.c
>>>>> b/drivers/remoteproc/remoteproc_virtio.c
>>>>>> index de21f62..9ee63c0 100644
>>>>>> --- a/drivers/remoteproc/remoteproc_virtio.c
>>>>>> +++ b/drivers/remoteproc/remoteproc_virtio.c
>>>>>> @@ -17,7 +17,9 @@
>>>>>>   * GNU General Public License for more details.
>>>>>>   */
>>>>>>
>>>>>> +#include <linux/dma-mapping.h>
>>>>>>  #include <linux/export.h>
>>>>>> +#include <linux/of_reserved_mem.h>
>>>>>>  #include <linux/remoteproc.h>
>>>>>>  #include <linux/virtio.h>
>>>>>>  #include <linux/virtio_config.h>
>>>>>> @@ -315,10 +317,48 @@ static void rproc_virtio_dev_release(struct
>> device
>>>>> *dev)
>>>>>>  int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id)
>>>>>>  {
>>>>>>         struct rproc *rproc = rvdev->rproc;
>>>>>> -       struct device *dev = &rproc->dev;
>>>>>> +       struct device *dev = &rvdev->dev;
>>>>>>         struct virtio_device *vdev = &rvdev->vdev;
>>>>>> +       struct rproc_mem_entry *mem;
>>>>>>         int ret;
>>>>>>
>>>>>> +       /* Try to find dedicated vdev buffer carveout */
>>>>>> +       mem = rproc_find_carveout_by_name(rproc, "vdev%dbuffer",
>> rvdev-
>>>>>> index);
>>>>>> +       if (mem) {
>>>>>> +               phys_addr_t pa;
>>>>>> +
>>>>>> +               if (mem->of_resm_idx != -1) {
>>>>>> +                       struct device_node *np = rproc->dev.parent->of_node;
>>>>>> +
>>>>>> +                       /* Associate reserved memory to vdev device */
>>>>>> +                       ret = of_reserved_mem_device_init_by_idx(dev, np,
>>>>>> +                                                                mem->of_resm_idx);
>>>>>> +                       if (ret) {
>>>>>> +                               dev_err(dev, "Can't associate reserved memory\n");
>>>>>> +                               goto out;
>>>>>> +                       }
>>>>>> +               } else {
>>>>>> +                       if (mem->va) {
>>>>>> +                               dev_warn(dev, "vdev %d buffer already mapped\n",
>>>>>> +                                        rvdev->index);
>>>>>> +                               pa = rproc_va_to_pa(mem->va);
>>>>>> +                       } else {
>>>>>> +                               /* Use dma address as carveout no memmapped yet
>> */
>>>>>> +                               pa = (phys_addr_t)mem->dma;
>>>>>> +                       }
>>>>>> +
>>>>>> +                       /* Associate vdev buffer memory pool to vdev subdev */
>>>>>> +                       ret = dmam_declare_coherent_memory(dev, pa,
>>>>>> +                                                          mem->da,
>>>>>> +                                                          mem->len,
>>>>>> +                                                          DMA_MEMORY_EXCLUSIVE);
>>>>>> +                       if (ret < 0) {
>>>>>> +                               dev_err(dev, "Failed to associate buffer\n");
>>>>>> +                               goto out;
>>>>>> +                       }
>>>>>> +               }
>>>>>> +       }
>>>>>> +
>>>>>>         vdev->id.device = id,
>>>>>>         vdev->config = &rproc_virtio_config_ops,
>>>>>>         vdev->dev.parent = dev;
>>>>>> diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h
>>>>>> index 6b3a234..2921dd2 100644
>>>>>> --- a/include/linux/remoteproc.h
>>>>>> +++ b/include/linux/remoteproc.h
>>>>>> @@ -547,6 +547,7 @@ struct rproc_vdev {
>>>>>>         struct kref refcount;
>>>>>>
>>>>>>         struct rproc_subdev subdev;
>>>>>> +       struct device dev;
>>>>>>
>>>>>>         unsigned int id;
>>>>>>         struct list_head node;
>>>>>> --
>>>>>> 1.9.1
>>>>>>
>>>>>> --
>>>>>> To unsubscribe from this list: send the line "unsubscribe linux-
>> remoteproc"
>>>>> in
>>>>>> the body of a message to majordomo@vger.kernel.org
>>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

  reply	other threads:[~2018-10-25 20:16 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-27 13:14 [PATCH v4 00/17] remoteproc: add fixed memory region support Loic Pallardy
2018-07-27 13:14 ` Loic Pallardy
2018-07-27 13:14 ` [PATCH v4 01/17] remoteproc: configure IOMMU only if device address requested Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 17:25   ` Suman Anna
2018-10-23 17:25     ` Suman Anna
2018-10-23 19:40     ` Loic PALLARDY
2018-10-23 19:40       ` Loic PALLARDY
2018-10-24  3:46       ` Suman Anna
2018-10-24 12:56         ` Loic PALLARDY
2018-10-24 12:56           ` Loic PALLARDY
2018-10-26  0:46           ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 02/17] remoteproc: add rproc_va_to_pa function Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 16:50   ` Suman Anna
2018-10-23 16:50     ` Suman Anna
2018-10-23 19:51     ` Loic PALLARDY
2018-10-23 19:51       ` Loic PALLARDY
2018-10-24  3:19       ` Suman Anna
2018-10-24 12:58         ` Loic PALLARDY
2018-10-24 12:58           ` Loic PALLARDY
2018-10-25 22:50           ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 03/17] remoteproc: add release ops in rproc_mem_entry struct Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 16:53   ` Suman Anna
2018-10-23 16:53     ` Suman Anna
2018-10-23 20:48     ` Suman Anna
2018-10-23 20:48       ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 04/17] remoteproc: add name " Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 17:06   ` Suman Anna
2018-10-23 17:06     ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 05/17] remoteproc: add helper function to allocate and init " Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 19:24   ` Suman Anna
2018-10-23 19:24     ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 06/17] remoteproc: introduce rproc_add_carveout function Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 17:05   ` Suman Anna
2018-10-23 17:05     ` Suman Anna
2018-10-23 19:48     ` Loic PALLARDY
2018-10-23 19:48       ` Loic PALLARDY
2018-07-27 13:14 ` [PATCH v4 07/17] remoteproc: introduce rproc_find_carveout_by_name function Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 19:28   ` Suman Anna
2018-10-23 19:28     ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 08/17] remoteproc: add alloc ops in rproc_mem_entry struct Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 21:20   ` Suman Anna
2018-10-23 21:20     ` Suman Anna
2018-10-24 16:00     ` Loic PALLARDY
2018-10-24 16:00       ` Loic PALLARDY
2018-10-25 22:37       ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 09/17] remoteproc: add helper function to allocate rproc_mem_entry from reserved memory Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-07-27 13:14 ` [PATCH v4 10/17] remoteproc: add helper function to check carveout device address Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-23 22:14   ` Suman Anna
2018-10-23 22:14     ` Suman Anna
2018-10-24 15:24     ` Loic PALLARDY
2018-10-24 15:24       ` Loic PALLARDY
2018-10-25 22:50       ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 11/17] remoteproc: modify rproc_handle_carveout to support pre-registered region Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-07-27 13:14 ` [PATCH v4 12/17] remoteproc: modify vring allocation to rely on centralized carveout allocator Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-10  5:32   ` Bjorn Andersson
2018-10-10 18:58     ` Loic PALLARDY
2018-10-15  6:40       ` Bjorn Andersson
2018-10-15  6:40         ` Bjorn Andersson
2018-10-23 23:24         ` Suman Anna
2018-10-24  0:14   ` Suman Anna
2018-10-24  0:14     ` Suman Anna
2018-10-24 15:14     ` Loic PALLARDY
2018-10-24 15:14       ` Loic PALLARDY
2018-10-29 20:17       ` Suman Anna
2018-12-04 17:56         ` Wendy Liang
2018-12-04 18:04           ` Loic PALLARDY
2018-12-04 18:58             ` Wendy Liang
2018-12-04 19:57               ` Loic PALLARDY
2018-12-04 21:24                 ` Wendy Liang
2018-07-27 13:14 ` [PATCH v4 13/17] remoteproc: create vdev subdevice with specific dma memory pool Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-09-27 17:17   ` Wendy Liang
2018-09-27 19:22     ` Loic PALLARDY
2018-09-27 20:18       ` Wendy Liang
2018-10-24  1:22         ` Suman Anna
2018-10-24  1:22           ` Suman Anna
2018-10-24  1:48           ` Suman Anna
2018-10-24  1:48             ` Suman Anna
2018-10-24 12:42             ` Loic PALLARDY
2018-10-25 22:06               ` Suman Anna
2018-10-24 12:40           ` Loic PALLARDY
2018-10-25 20:16             ` Suman Anna [this message]
2018-10-10  5:58   ` Bjorn Andersson
2018-10-10 19:17     ` Loic PALLARDY
2018-10-24  1:27       ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 14/17] remoteproc: keystone: declare reserved memory region for vdev device Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-07-27 13:14 ` [PATCH v4 15/17] remoteproc: da8xx: " Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-24  2:57   ` Suman Anna
2018-10-24  2:57     ` Suman Anna
2018-10-24 13:19     ` Loic PALLARDY
2018-10-24 13:19       ` Loic PALLARDY
2018-10-25 22:11       ` Suman Anna
2018-07-27 13:14 ` [PATCH v4 16/17] remoteproc: st: add reserved memory support Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-10-24  3:01   ` Suman Anna
2018-10-24  3:01     ` Suman Anna
2018-10-24 12:37     ` Loic PALLARDY
2018-10-24 12:37       ` Loic PALLARDY
2018-07-27 13:14 ` [PATCH v4 17/17] rpmsg: virtio: allocate buffer from parent Loic Pallardy
2018-07-27 13:14   ` Loic Pallardy
2018-09-28  7:56   ` Anup Patel
2018-09-21  6:04 ` [PATCH v4 00/17] remoteproc: add fixed memory region support Anup Patel
2018-09-26 16:00   ` Loic PALLARDY
2018-09-28  7:54     ` Anup Patel
2018-10-23 16:42 ` Suman Anna
2018-10-23 16:42   ` Suman Anna

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3689cf80-c48b-08d0-e72b-f53138830735@ti.com \
    --to=s-anna@ti.com \
    --cc=arnaud.pouliquen@st.com \
    --cc=benjamin.gaignard@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=loic.pallardy@st.com \
    --cc=ohad@wizery.com \
    --cc=sunnyliangjy@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.