<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/remoteproc, branch v5.2-rc1</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v5.2-rc1</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v5.2-rc1'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2019-03-14T16:00:06Z</updated>
<entry>
<title>Merge tag 'rproc-v5.1' of git://github.com/andersson/remoteproc</title>
<updated>2019-03-14T16:00:06Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2019-03-14T16:00:06Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=2f194646fecaa9fd4607b670ee9ef84d9ed04566'/>
<id>urn:sha1:2f194646fecaa9fd4607b670ee9ef84d9ed04566</id>
<content type='text'>
Pull remoteproc updates from Bjorn Andersson:
 "This contains the last patches in Loic's remoteproc resource table
  handling changes, a number of updates to documentation, support for
  invoking the crash handler (for testing purposes), a fix for the
  handling of virtio devices during recovery, performance state votes in
  Qualcomm modem driver, support for specifying board specific firmware
  path for Qualcomm modem driver and improved support for graceful
  shutdown of Qualcomm remoteprocs"

* tag 'rproc-v5.1' of git://github.com/andersson/remoteproc: (33 commits)
  remoteproc: fix for "dma-mapping: remove the DMA_MEMORY_EXCLUSIVE flag"
  remoteproc: fix rproc_check_carveout_da() returned error and comments
  remoteproc: fix trace buffer va initialization
  remoteproc: fix rproc_alloc_carveout() for rproc with iommu domain
  remoteproc: add warning on resource table cast
  remoteproc: fix rproc_alloc_carveout() bad variable cast
  remoteproc: fix rproc_da_to_va in case of unallocated carveout
  remoteproc: correct rproc_mem_entry_init() comments
  remoteproc: fix recovery procedure
  rpmsg: virtio: change header file sort style
  rpmsg: virtio: allocate buffer from parent
  remoteproc: st: add reserved memory support
  remoteproc: create vdev subdevice with specific dma memory pool
  remoteproc: q6v5_adsp: Remove voting for lpass_aon clock
  dt-binding: remoteproc: Remove lpass_aon clock from adsp pil clock list
  remoteproc: q6v5-mss: Active powerdomain for SDM845
  remoteproc: q6v5-mss: Vote for rpmh power domains
  remoteproc: qcom: Add support for parsing fw dt bindings
  remoteproc: qcom_q6v5: don't auto boot remote processor
  remoteproc: qcom: Wait for shutdown-ack/ind on sysmon shutdown
  ...
</content>
</entry>
<entry>
<title>remoteproc: fix for "dma-mapping: remove the DMA_MEMORY_EXCLUSIVE flag"</title>
<updated>2019-03-13T00:00:42Z</updated>
<author>
<name>Stephen Rothwell</name>
<email>sfr@canb.auug.org.au</email>
</author>
<published>2019-02-22T05:14:45Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=d664ce75ae1c7c1e0e3fd8fa71f7ca779906a9be'/>
<id>urn:sha1:d664ce75ae1c7c1e0e3fd8fa71f7ca779906a9be</id>
<content type='text'>
The commit 82c5de0ab8db ("dma-mapping: remove the DMA_MEMORY_EXCLUSIVE
flag") removed the "flags" parameter for dma_declare_coherent_memory().
Remove the parameter from the call in rproc_add_virtio_dev().

Signed-off-by: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
[bjorn: Extended commit message]
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: fix rproc_check_carveout_da() returned error and comments</title>
<updated>2019-02-21T05:34:19Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-10T13:49:11Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=28d7d5c66d560730fdfe021b129e7d3f72a4b97f'/>
<id>urn:sha1:28d7d5c66d560730fdfe021b129e7d3f72a4b97f</id>
<content type='text'>
Fix typo in comments.
Change returned error from ENOMEM to EINVAL as
not dealing with memory allocation.
Remove carveout forced da update and return an error
when no configuration match

Fixes: c874bf59add0 ("remoteproc: add helper function to check carveout device address")

Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: fix trace buffer va initialization</title>
<updated>2019-02-21T05:34:18Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-10T13:49:10Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=a987e6b91a5ac0e08782506b1f879e37dab3b605'/>
<id>urn:sha1:a987e6b91a5ac0e08782506b1f879e37dab3b605</id>
<content type='text'>
With rproc_alloc_registered_carveouts() introduction, carveouts are
allocated after resource table parsing.
rproc_da_to_va() may return NULL at trace resource registering.
This patch modifies trace debufs registering to provide device address
(da) instead of va.
da to va translation is done at each trace buffer access
through debugfs interface.

Fixes: d7c51706d095 ("remoteproc: add alloc ops in rproc_mem_entry struct")

Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: fix rproc_alloc_carveout() for rproc with iommu domain</title>
<updated>2019-02-21T05:34:18Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-10T13:49:09Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=60f849a5c1537d28dca28b68697dcc82f3fa44e1'/>
<id>urn:sha1:60f849a5c1537d28dca28b68697dcc82f3fa44e1</id>
<content type='text'>
Correct remoteproc core behavior when memory carveout device
address is fixed in resource table and rproc device doesn't have
associated IOMMU.
Current returned error is breaking legacy on TI platforms.
This patch restores previous behavior. It adds a warn message when
allocation doesn't fit carveout request, but doesn't stop rproc_start()
sequence anymore.

Fixes: 3bc8140b157c ("remoteproc: configure IOMMU only if device address requested")

Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: add warning on resource table cast</title>
<updated>2019-02-21T05:34:18Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-10T13:49:08Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=b36de8cfd16ee288eb1fbe60a6e5025ae0a465d5'/>
<id>urn:sha1:b36de8cfd16ee288eb1fbe60a6e5025ae0a465d5</id>
<content type='text'>
Today resource table supports only 32bit address fields.
This is not compliant with 64bit platform for which addresses
are cast in 32bit.
This patch adds warn messages when address cast is done.

Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: fix rproc_alloc_carveout() bad variable cast</title>
<updated>2019-02-21T05:34:18Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-10T13:49:07Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=80137b4072853f47fce029b20ec335439e9448ae'/>
<id>urn:sha1:80137b4072853f47fce029b20ec335439e9448ae</id>
<content type='text'>
As dma member of struct rproc_mem_entry is dma_addr_t, no
need to cast in u32.

Fixes: d7c51706d095 ("remoteproc: add alloc ops in rproc_mem_entry struct")

Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: fix rproc_da_to_va in case of unallocated carveout</title>
<updated>2019-02-21T05:34:18Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-10T13:49:06Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=74457c40f97a98142bb13153395d304ad3c85cdd'/>
<id>urn:sha1:74457c40f97a98142bb13153395d304ad3c85cdd</id>
<content type='text'>
With introduction of rproc_alloc_registered_carveouts() which
delays carveout allocation just before the start of the remote
processor, rproc_da_to_va() could be called before all carveouts
are allocated.
This patch adds a check in rproc_da_to_va() to return NULL if
carveout is not allocated.

Fixes: d7c51706d095 ("remoteproc: add alloc ops in rproc_mem_entry struct")

Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: correct rproc_mem_entry_init() comments</title>
<updated>2019-02-21T05:34:18Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-10T13:49:05Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=a9f6fe0d728e615f344cd42567e6894ca3070de9'/>
<id>urn:sha1:a9f6fe0d728e615f344cd42567e6894ca3070de9</id>
<content type='text'>
Add alloc parameter description and correct comment
about release one.

Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
<entry>
<title>remoteproc: fix recovery procedure</title>
<updated>2019-02-21T05:34:17Z</updated>
<author>
<name>Loic Pallardy</name>
<email>loic.pallardy@st.com</email>
</author>
<published>2019-01-21T13:55:15Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=d4c036fec321341f378ca95d3e99976e835a7404'/>
<id>urn:sha1:d4c036fec321341f378ca95d3e99976e835a7404</id>
<content type='text'>
Commit 7e83cab824a87e83cab824a8 ("remoteproc: Modify recovery path
to use rproc_{start,stop}()") replaces rproc_{shutdown,boot}() with
rproc_{stop,start}(), which skips destroy the virtio device at stop
but re-initializes it again at start.

Issue is that struct virtio_dev is not correctly reinitialized like done
at initial allocation thanks to kzalloc() and kobject is considered as
already initialized by kernel. That is due to the fact struct virtio_dev
is allocated and released at vdev resource handling level managed and
virtio device is registered and unregistered at rproc subdevices level.

Moreover kernel documentation mentions that device struct must be
zero initialized before calling device_initialize().

This patch disentangles struct virtio_dev from struct rproc_vdev as
the two struct don't have the same life-cycle.

struct virtio_dev is now allocated on rproc_start() and released
on rproc_stop().

This patch applies on top of patch
remoteproc: create vdev subdevice with specific dma memory pool [1]

[1]: https://patchwork.kernel.org/patch/10755781/

Fixes: 7e83cab824a8 ("remoteproc: Modify recovery path to use rproc_{start,stop}()")

Reported-by: Xiang Xiao &lt;xiaoxiang781216@gmail.com&gt;
Signed-off-by: Loic Pallardy &lt;loic.pallardy@st.com&gt;
Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
</content>
</entry>
</feed>
