Message ID | 20210219111501.14261-9-arnaud.pouliquen@foss.st.com |
---|---|
State | New |
Headers | show |
Series | introduce a generic IOCTL interface for RPMsg channels management | expand |
On Fri, Feb 19, 2021 at 12:14:53PM +0100, Arnaud Pouliquen wrote: > Implement the sendto ops to support the future rpmsg_char update for the > vitio backend support. Add a new line, otherwise it is very easy to read. > The use of sendto in rpmsg_char is needed as a destination address is > requested at least by the virtio backend. Same here and throughout the patchset. > The glink implementation does not need a destination address so ignores it. > > Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> > --- > drivers/rpmsg/qcom_glink_native.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c > index d4e4dd482614..ae2c03b59c55 100644 > --- a/drivers/rpmsg/qcom_glink_native.c > +++ b/drivers/rpmsg/qcom_glink_native.c > @@ -1332,6 +1332,20 @@ static int qcom_glink_trysend(struct rpmsg_endpoint *ept, void *data, int len) > return __qcom_glink_send(channel, data, len, false); > } > > +static int qcom_glink_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) > +{ > + struct glink_channel *channel = to_glink_channel(ept); > + > + return __qcom_glink_send(channel, data, len, true); > +} > + > +static int qcom_glink_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) > +{ > + struct glink_channel *channel = to_glink_channel(ept); > + > + return __qcom_glink_send(channel, data, len, false); > +} Just rename send() to sendto() and trysend() to trysendto() and ignore the destination address. The same goes for the next patch. I would fold patch 08 and 09 into 10 to help get the big picture. > + > /* > * Finds the device_node for the glink child interested in this channel. > */ > @@ -1364,7 +1378,9 @@ static const struct rpmsg_device_ops glink_device_ops = { > static const struct rpmsg_endpoint_ops glink_endpoint_ops = { > .destroy_ept = qcom_glink_destroy_ept, > .send = qcom_glink_send, > + .sendto = qcom_glink_sendto, > .trysend = qcom_glink_trysend, > + .trysendto = qcom_glink_trysendto, > }; > > static void qcom_glink_rpdev_release(struct device *dev) > -- > 2.17.1 >
Hi Mathieu, On 3/4/21 8:11 PM, Mathieu Poirier wrote: > On Fri, Feb 19, 2021 at 12:14:53PM +0100, Arnaud Pouliquen wrote: >> Implement the sendto ops to support the future rpmsg_char update for the >> vitio backend support. > > Add a new line, otherwise it is very easy to read. > >> The use of sendto in rpmsg_char is needed as a destination address is >> requested at least by the virtio backend. > > Same here and throughout the patchset. > >> The glink implementation does not need a destination address so ignores it. >> >> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> >> --- >> drivers/rpmsg/qcom_glink_native.c | 16 ++++++++++++++++ >> 1 file changed, 16 insertions(+) >> >> diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c >> index d4e4dd482614..ae2c03b59c55 100644 >> --- a/drivers/rpmsg/qcom_glink_native.c >> +++ b/drivers/rpmsg/qcom_glink_native.c >> @@ -1332,6 +1332,20 @@ static int qcom_glink_trysend(struct rpmsg_endpoint *ept, void *data, int len) >> return __qcom_glink_send(channel, data, len, false); >> } >> >> +static int qcom_glink_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) >> +{ >> + struct glink_channel *channel = to_glink_channel(ept); >> + >> + return __qcom_glink_send(channel, data, len, true); >> +} >> + >> +static int qcom_glink_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) >> +{ >> + struct glink_channel *channel = to_glink_channel(ept); >> + >> + return __qcom_glink_send(channel, data, len, false); >> +} > > Just rename send() to sendto() and trysend() to trysendto() and ignore the > destination address. Function prototypes have to match with rpmsg_endpoint_ops structure defined below. So seems to me not possible to just rename the functions. Please could you clarify if i missed something? > The same goes for the next patch. I would fold patch 08 > and 09 into 10 to help get the big picture. I'm going to squash all in one. Thanks, Arnaud > >> + >> /* >> * Finds the device_node for the glink child interested in this channel. >> */ >> @@ -1364,7 +1378,9 @@ static const struct rpmsg_device_ops glink_device_ops = { >> static const struct rpmsg_endpoint_ops glink_endpoint_ops = { >> .destroy_ept = qcom_glink_destroy_ept, >> .send = qcom_glink_send, >> + .sendto = qcom_glink_sendto, >> .trysend = qcom_glink_trysend, >> + .trysendto = qcom_glink_trysendto, >> }; >> >> static void qcom_glink_rpdev_release(struct device *dev) >> -- >> 2.17.1 >>
[...] > >> } > >> > >> +static int qcom_glink_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) > >> +{ > >> + struct glink_channel *channel = to_glink_channel(ept); > >> + > >> + return __qcom_glink_send(channel, data, len, true); > >> +} > >> + > >> +static int qcom_glink_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) > >> +{ > >> + struct glink_channel *channel = to_glink_channel(ept); > >> + > >> + return __qcom_glink_send(channel, data, len, false); > >> +} > > > > Just rename send() to sendto() and trysend() to trysendto() and ignore the > > destination address. > Apologies for not being clear. > Function prototypes have to match with rpmsg_endpoint_ops structure defined > below. So seems to me not possible to just rename the functions. > Please could you clarify if i missed something? I don't think rproc_ops::send() and rproc_ops::trysend() are used anywhere else. So replace them with rproc_ops::sendto() and rproc_ops::trysendto() where the destination address would be ingnored. > > > The same goes for the next patch. I would fold patch 08 > > and 09 into 10 to help get the big picture. > > I'm going to squash all in one. Perfect > > Thanks, > Arnaud > > > > >> + > >> /* > >> * Finds the device_node for the glink child interested in this channel. > >> */ > >> @@ -1364,7 +1378,9 @@ static const struct rpmsg_device_ops glink_device_ops = { > >> static const struct rpmsg_endpoint_ops glink_endpoint_ops = { > >> .destroy_ept = qcom_glink_destroy_ept, > >> .send = qcom_glink_send, > >> + .sendto = qcom_glink_sendto, > >> .trysend = qcom_glink_trysend, > >> + .trysendto = qcom_glink_trysendto, > >> }; > >> > >> static void qcom_glink_rpdev_release(struct device *dev) > >> -- > >> 2.17.1 > >>
diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c index d4e4dd482614..ae2c03b59c55 100644 --- a/drivers/rpmsg/qcom_glink_native.c +++ b/drivers/rpmsg/qcom_glink_native.c @@ -1332,6 +1332,20 @@ static int qcom_glink_trysend(struct rpmsg_endpoint *ept, void *data, int len) return __qcom_glink_send(channel, data, len, false); } +static int qcom_glink_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) +{ + struct glink_channel *channel = to_glink_channel(ept); + + return __qcom_glink_send(channel, data, len, true); +} + +static int qcom_glink_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) +{ + struct glink_channel *channel = to_glink_channel(ept); + + return __qcom_glink_send(channel, data, len, false); +} + /* * Finds the device_node for the glink child interested in this channel. */ @@ -1364,7 +1378,9 @@ static const struct rpmsg_device_ops glink_device_ops = { static const struct rpmsg_endpoint_ops glink_endpoint_ops = { .destroy_ept = qcom_glink_destroy_ept, .send = qcom_glink_send, + .sendto = qcom_glink_sendto, .trysend = qcom_glink_trysend, + .trysendto = qcom_glink_trysendto, }; static void qcom_glink_rpdev_release(struct device *dev)
Implement the sendto ops to support the future rpmsg_char update for the vitio backend support. The use of sendto in rpmsg_char is needed as a destination address is requested at least by the virtio backend. The glink implementation does not need a destination address so ignores it. Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> --- drivers/rpmsg/qcom_glink_native.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)