Uwe Kleine-König
fc7a6209d5
bus: Make remove callback return void
...
The driver core ignores the return value of this callback because there
is only little it can do when a device disappears.
This is the final bit of a long lasting cleanup quest where several
buses were converted to also return void from their remove callback.
Additionally some resource leaks were fixed that were caused by drivers
returning an error code in the expectation that the driver won't go
away.
With struct bus_type::remove returning void it's prevented that newly
implemented buses return an ignored error code and so don't anticipate
wrong expectations for driver authors.
Reviewed-by: Tom Rix <trix@redhat.com > (For fpga)
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Reviewed-by: Cornelia Huck <cohuck@redhat.com > (For drivers/s390 and drivers/vfio)
Acked-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk > (For ARM, Amba and related parts)
Acked-by: Mark Brown <broonie@kernel.org >
Acked-by: Chen-Yu Tsai <wens@csie.org > (for sunxi-rsb)
Acked-by: Pali Rohár <pali@kernel.org >
Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org > (for media)
Acked-by: Hans de Goede <hdegoede@redhat.com > (For drivers/platform)
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Acked-By: Vinod Koul <vkoul@kernel.org >
Acked-by: Juergen Gross <jgross@suse.com > (For xen)
Acked-by: Lee Jones <lee.jones@linaro.org > (For mfd)
Acked-by: Johannes Thumshirn <jth@kernel.org > (For mcb)
Acked-by: Johan Hovold <johan@kernel.org >
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org > (For slimbus)
Acked-by: Kirti Wankhede <kwankhede@nvidia.com > (For vfio)
Acked-by: Maximilian Luz <luzmaximilian@gmail.com >
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com > (For ulpi and typec)
Acked-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com > (For ipack)
Acked-by: Geoff Levand <geoff@infradead.org > (For ps3)
Acked-by: Yehezkel Bernat <YehezkelShB@gmail.com > (For thunderbolt)
Acked-by: Alexander Shishkin <alexander.shishkin@linux.intel.com > (For intel_th)
Acked-by: Dominik Brodowski <linux@dominikbrodowski.net > (For pcmcia)
Acked-by: Rafael J. Wysocki <rafael@kernel.org > (For ACPI)
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org > (rpmsg and apr)
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com > (For intel-ish-hid)
Acked-by: Dan Williams <dan.j.williams@intel.com > (For CXL, DAX, and NVDIMM)
Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com > (For isa)
Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de > (For firewire)
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com > (For hid)
Acked-by: Thorsten Scherer <t.scherer@eckelmann.de > (For siox)
Acked-by: Sven Van Asbroeck <TheSven73@gmail.com > (For anybuss)
Acked-by: Ulf Hansson <ulf.hansson@linaro.org > (For MMC)
Acked-by: Wolfram Sang <wsa@kernel.org > # for I2C
Acked-by: Sudeep Holla <sudeep.holla@arm.com >
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org >
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com >
Acked-by: Finn Thain <fthain@linux-m68k.org >
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de >
Link: https://lore.kernel.org/r/20210713193522.1770306-6-u.kleine-koenig@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2021-07-21 11:53:42 +02:00
Stephan Gerhold
60302ce4ea
rpmsg: core: Add driver_data for rpmsg_device_id
...
Most device_id structs provide a driver_data field that can be used
by drivers to associate data more easily for a particular device ID.
Add the same for the rpmsg_device_id.
Cc: Bjorn Andersson <bjorn.andersson@linaro.org >
Signed-off-by: Stephan Gerhold <stephan@gerhold.net >
Signed-off-by: David S. Miller <davem@davemloft.net >
2021-06-18 13:13:40 -07:00
Jia-Ju Bai
26594c6bbb
rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data()
...
When idr_find() returns NULL to intent, no error return code of
qcom_glink_rx_data() is assigned.
To fix this bug, ret is assigned with -ENOENT in this case.
Fixes: 64f95f8792 ("rpmsg: glink: Use the local intents when receiving data")
Reported-by: TOTE Robot <oslab@tsinghua.edu.cn >
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com >
Link: https://lore.kernel.org/r/20210306133624.17237-1-baijiaju1990@gmail.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-04-09 11:08:42 -05:00
Arnaud Pouliquen
964e8bedd5
rpmsg: char: Return an error if device already open
...
The rpmsg_create_ept function is invoked when the device is opened.
As only one endpoint must be created per device. It is not possible to
open the same device twice. But there is nothing to prevent multi open.
Return -EBUSY when device is already opened to have a generic error
instead of relying on the back-end to potentially detect the error.
Without this patch for instance the GLINK driver return -EBUSY while
the virtio bus return -ENOSPC.
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com >
Link: https://lore.kernel.org/r/20210311140413.31725-7-arnaud.pouliquen@foss.st.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-03-17 14:16:58 -05:00
Arnaud Pouliquen
c486682ae1
rpmsg: virtio: Register the rpmsg_char device
...
Instantiate the rpmsg_char device on virtio RPMsg bus creation.
This provides the capability, with the RPMSG_CREATE_EPT_IOCTL ioctl,
to create RPMsg char device endpoints relying on the
rpmsg_chrdev_create_eptdev API.
Notice that the created endpoints are attached to the rpmsg_ctldev
device, but not associated to a channel.
As consequence, the endpoint source and destination addresses have to
been specified and there is no channel creation and no name service
announcement to inform the remote side.
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com >
Link: https://lore.kernel.org/r/20210311140413.31725-6-arnaud.pouliquen@foss.st.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-03-17 14:16:47 -05:00
Arnaud Pouliquen
b4ce7e2ebc
rpmsg: char: Use rpmsg_sendto to specify the message destination address
...
When the endpoint device is created by the application, a destination
address is specified in the rpmsg_channel_info structure. Since the
rpmsg_endpoint structure does not store the destination address,
this destination address must be specified when sending a message.
Replaces rpmsg_send with rpmsg_sendto to allow to specify the
destination address. This implementation is requested for compatibly with
some rpmsg backends like the virtio backend.
For this, the GLINK an SMD drivers have been updated to support the
rpmsg_sendto, even if the destination address is ignored for these
backends. For these drivers, the rpmsg_send and rpmsg_trysend ops are
preserved to avoid breaking the legacy.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com >
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Link: https://lore.kernel.org/r/20210311140413.31725-5-arnaud.pouliquen@foss.st.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-03-17 14:16:36 -05:00
Arnaud Pouliquen
60d7b22d25
rpmsg: char: Rename rpmsg_char_init to rpmsg_chrdev_init
...
To be coherent with the other functions which are prefixed by
rpmsg_chrdev, rename the rpmsg_char_init function.
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org >
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com >
Link: https://lore.kernel.org/r/20210311140413.31725-2-arnaud.pouliquen@foss.st.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-03-17 14:16:04 -05:00
Alex Elder
3e35772bc1
rpmsg: glink: add include of header file
...
With an x86_64 architecture W=1 build, qcom_glink_ssr_notify() is
reported as having no previous prototype. The prototype is found in
"qcom_glink.h", so we just need "qcom_glink_ssr.c" to include that
file.
Signed-off-by: Alex Elder <elder@linaro.org >
Link: https://lore.kernel.org/r/20210105235528.32538-1-elder@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-01-05 22:22:40 -06:00
Alex Elder
df2f392c61
rpmsg: glink: fix some kerneldoc comments
...
The kerneldoc comments for the do_cleanup_msg and cleanup_done_msg
structures describe the fields, but don't prefix the field names
with "@". Add those, to get rid of some W=1 build warnings on
an x86_64 architecture build.
Signed-off-by: Alex Elder <elder@linaro.org >
Link: https://lore.kernel.org/r/20210105235603.32663-1-elder@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2021-01-05 21:45:06 -06:00
Arnaud Pouliquen
950a7388f0
rpmsg: Turn name service into a stand alone driver
...
Make the RPMSG name service announcement a stand alone driver so that it
can be reused by other subsystems. It is also the first step in making the
functionatlity transport independent, i.e that is not tied to virtIO.
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Co-developed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Co-developed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Link: https://lore.kernel.org/r/20201120214245.172963-9-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-11-24 10:11:59 -06:00
Mathieu Poirier
55488110ac
rpmsg: Make rpmsg_{register|unregister}_device() public
...
Make function rpmsg_register_device() and rpmsg_unregister_device()
functions public so that they can be used by other clients. While
doing so get rid of two obsolete function, i.e register_rpmsg_device()
and unregister_rpmsg_device(), to prevent confusion.
Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Reviewed-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Link: https://lore.kernel.org/r/20201120214245.172963-8-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-11-24 10:11:52 -06:00
Arnaud Pouliquen
1ee1e5e162
rpmsg: virtio: Add rpmsg channel device ops
...
Implement the create and release of the RPMsg channel
for the RPMsg virtio bus.
Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Link: https://lore.kernel.org/r/20201120214245.172963-7-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-11-24 10:11:44 -06:00
Arnaud Pouliquen
9753e12cd3
rpmsg: core: Add channel creation internal API
...
Add the channel creation API as a first step to be able to define the
name service announcement as a rpmsg driver independent from the RPMsg
virtio bus.
Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Link: https://lore.kernel.org/r/20201120214245.172963-6-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-11-24 10:11:35 -06:00
Arnaud Pouliquen
77d372989d
rpmsg: virtio: Rename rpmsg_create_channel
...
Rename the internal function as it is internal, and as
the name will be used in rpmsg_core.
Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Link: https://lore.kernel.org/r/20201120214245.172963-5-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-11-24 10:11:27 -06:00
Mathieu Poirier
c435a04189
rpmsg: Move structure rpmsg_ns_msg to header file
...
Move structure rpmsg_ns_msg to its own header file so that
it can be used by other entities.
Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Reviewed-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Link: https://lore.kernel.org/r/20201120214245.172963-4-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-11-24 10:11:18 -06:00
Mathieu Poirier
5f2f6b7db1
rpmsg: virtio: Move from virtio to rpmsg byte conversion
...
Use rpmsg byte conversion functions in order for the RPMSG
headers and generic functions to be used by external entities.
Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Reviewed-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com >
Link: https://lore.kernel.org/r/20201120214245.172963-3-mathieu.poirier@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-11-24 10:11:09 -06:00
Linus Torvalds
60573c2966
Merge tag 'rpmsg-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc
...
Pull rpmsg updates from Bjorn Andersson:
"This introduces rpmsg_char support for GLINK and fixes a few issues"
* tag 'rpmsg-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
rpmsg: glink: Expose rpmsg name attr for glink
rpmsg: glink: Add support for rpmsg glink chrdev
rpmsg: Guard against null endpoint ops in destroy
rpmsg: glink: Use complete_all for open states
rpmsg: virtio: fix compilation warning for virtio_rpmsg_channel description
rpmsg: Avoid double-free in mtk_rpmsg_register_device
rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
2020-10-22 12:58:21 -07:00
Chris Lew
4e3dda0bc6
rpmsg: glink: Expose rpmsg name attr for glink
...
Expose the name field as an attr so clients listening to uevents for
rpmsg can identify the edge the events correspond to.
Signed-off-by: Chris Lew <clew@codeaurora.org >
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org >
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org >
Link: https://lore.kernel.org/r/1593017121-7953-5-git-send-email-deesin@codeaurora.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-09-15 03:51:13 +00:00
Deepak Kumar Singh
0f579e5247
rpmsg: glink: Add support for rpmsg glink chrdev
...
RPMSG provides a char device interface to userspace. Probe the rpmsg
chrdev channel to enable the rpmsg_ctrl device creation on glink
transports.
Signed-off-by: Chris Lew <clew@codeaurora.org >
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org >
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org >
Link: https://lore.kernel.org/r/1593017121-7953-4-git-send-email-deesin@codeaurora.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-09-15 03:51:07 +00:00
Chris Lew
d5158cda9e
rpmsg: Guard against null endpoint ops in destroy
...
In RPMSG GLINK the chrdev device will allocate an ept as part of the
rpdev creation. This device will not register endpoint ops even though
it has an allocated ept. Protect against the case where the device is
being destroyed.
Signed-off-by: Chris Lew <clew@codeaurora.org >
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org >
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org >
Link: https://lore.kernel.org/r/1593017121-7953-3-git-send-email-deesin@codeaurora.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-09-15 03:51:03 +00:00
Chris Lew
4fcdaf6e28
rpmsg: glink: Use complete_all for open states
...
The open_req and open_ack completion variables are the state variables
to represet a remote channel as open. Use complete_all so there are no
races with waiters and using completion_done.
Signed-off-by: Chris Lew <clew@codeaurora.org >
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org >
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org >
Link: https://lore.kernel.org/r/1593017121-7953-2-git-send-email-deesin@codeaurora.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-09-15 03:50:42 +00:00
Arnaud Pouliquen
6c09ea0b0a
rpmsg: virtio: fix compilation warning for virtio_rpmsg_channel description
...
Complete the virtio_rpmsg_channel structure description to fix a
compilation warning with W=1 option:
drivers/rpmsg/virtio_rpmsg_bus.c:95: warning: Cannot understand
* @vrp: the remote processor this channel belongs to
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com >
Link: https://lore.kernel.org/r/20200731074850.3262-1-arnaud.pouliquen@st.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-09-15 03:48:12 +00:00
Nicolas Boichat
231331b2db
rpmsg: Avoid double-free in mtk_rpmsg_register_device
...
If rpmsg_register_device fails, it will call
mtk_rpmsg_release_device which already frees mdev.
Fixes: 7017996951 ("rpmsg: add rpmsg support for mt8183 SCP.")
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org >
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org >
Link: https://lore.kernel.org/r/20200903080547.v3.1.I56cf27cd59f4013bd074dc622c8b8248b034a4cc@changeid
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-09-15 03:43:24 +00:00
Dan Carpenter
e69ee0cf65
rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
...
We need to call of_node_put(node) on the error paths for this function.
Fixes: 53e2822e56 ("rpmsg: Introduce Qualcomm SMD backend")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com >
Link: https://lore.kernel.org/r/20200908071841.GA294938@mwanda
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org >
2020-09-15 03:41:37 +00:00
Gustavo A. R. Silva
df561f6688
treewide: Use fallthrough pseudo-keyword
...
Replace the existing /* fall through */ comments and its variants with
the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
fall-through markings when it is the case.
[1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org >
2020-08-23 17:36:59 -05:00