Message ID | 20210604091406.15901-3-arnaud.pouliquen@foss.st.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | rpmsg: ctrl: Add ability to instantiate rpmsg device locally | expand |
Good day, On Fri, Jun 04, 2021 at 11:14:04AM +0200, Arnaud Pouliquen wrote: > Implement the RPMSG_RELEASE_DEV_IOCTL to allow the user application to > release a rpmsg device created either by the remote processor or with > the RPMSG_CREATE_DEV_IOCTL call. > Depending on the back-end implementation, the associated rpmsg driver is > removed and a NS destroy rpmsg can be sent to the remote processor. > > Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> > --- > drivers/rpmsg/rpmsg_ctrl.c | 7 +++++++ > include/uapi/linux/rpmsg.h | 5 +++++ > 2 files changed, 12 insertions(+) > > diff --git a/drivers/rpmsg/rpmsg_ctrl.c b/drivers/rpmsg/rpmsg_ctrl.c > index 4aa962df3661..cb19e32d05e1 100644 > --- a/drivers/rpmsg/rpmsg_ctrl.c > +++ b/drivers/rpmsg/rpmsg_ctrl.c > @@ -98,6 +98,13 @@ static long rpmsg_ctrldev_ioctl(struct file *fp, unsigned int cmd, > } > break; > > + case RPMSG_RELEASE_DEV_IOCTL: > + ret = rpmsg_release_channel(ctrldev->rpdev, &chinfo); > + if (ret) > + dev_err(&ctrldev->dev, "failed to release %s channel (%d)\n", > + chinfo.name, ret); > + break; > + Please move the content of this patch in 1/4. > default: > ret = -EINVAL; > } > diff --git a/include/uapi/linux/rpmsg.h b/include/uapi/linux/rpmsg.h > index f9d5a74e7801..38639ba37438 100644 > --- a/include/uapi/linux/rpmsg.h > +++ b/include/uapi/linux/rpmsg.h > @@ -38,4 +38,9 @@ struct rpmsg_endpoint_info { > */ > #define RPMSG_CREATE_DEV_IOCTL _IOW(0xb5, 0x3, struct rpmsg_endpoint_info) > > +/** > + * Release a local rpmsg device. > + */ > +#define RPMSG_RELEASE_DEV_IOCTL _IOW(0xb5, 0x4, struct rpmsg_endpoint_info) > + > #endif > -- > 2.17.1 >
On 6/15/21 7:38 PM, Mathieu Poirier wrote: > Good day, > > On Fri, Jun 04, 2021 at 11:14:04AM +0200, Arnaud Pouliquen wrote: >> Implement the RPMSG_RELEASE_DEV_IOCTL to allow the user application to >> release a rpmsg device created either by the remote processor or with >> the RPMSG_CREATE_DEV_IOCTL call. >> Depending on the back-end implementation, the associated rpmsg driver is >> removed and a NS destroy rpmsg can be sent to the remote processor. >> >> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> >> --- >> drivers/rpmsg/rpmsg_ctrl.c | 7 +++++++ >> include/uapi/linux/rpmsg.h | 5 +++++ >> 2 files changed, 12 insertions(+) >> >> diff --git a/drivers/rpmsg/rpmsg_ctrl.c b/drivers/rpmsg/rpmsg_ctrl.c >> index 4aa962df3661..cb19e32d05e1 100644 >> --- a/drivers/rpmsg/rpmsg_ctrl.c >> +++ b/drivers/rpmsg/rpmsg_ctrl.c >> @@ -98,6 +98,13 @@ static long rpmsg_ctrldev_ioctl(struct file *fp, unsigned int cmd, >> } >> break; >> >> + case RPMSG_RELEASE_DEV_IOCTL: >> + ret = rpmsg_release_channel(ctrldev->rpdev, &chinfo); >> + if (ret) >> + dev_err(&ctrldev->dev, "failed to release %s channel (%d)\n", >> + chinfo.name, ret); >> + break; >> + > > Please move the content of this patch in 1/4. ok > >> default: >> ret = -EINVAL; >> } >> diff --git a/include/uapi/linux/rpmsg.h b/include/uapi/linux/rpmsg.h >> index f9d5a74e7801..38639ba37438 100644 >> --- a/include/uapi/linux/rpmsg.h >> +++ b/include/uapi/linux/rpmsg.h >> @@ -38,4 +38,9 @@ struct rpmsg_endpoint_info { >> */ >> #define RPMSG_CREATE_DEV_IOCTL _IOW(0xb5, 0x3, struct rpmsg_endpoint_info) >> >> +/** >> + * Release a local rpmsg device. >> + */ >> +#define RPMSG_RELEASE_DEV_IOCTL _IOW(0xb5, 0x4, struct rpmsg_endpoint_info) >> + >> #endif >> -- >> 2.17.1 >>
diff --git a/drivers/rpmsg/rpmsg_ctrl.c b/drivers/rpmsg/rpmsg_ctrl.c index 4aa962df3661..cb19e32d05e1 100644 --- a/drivers/rpmsg/rpmsg_ctrl.c +++ b/drivers/rpmsg/rpmsg_ctrl.c @@ -98,6 +98,13 @@ static long rpmsg_ctrldev_ioctl(struct file *fp, unsigned int cmd, } break; + case RPMSG_RELEASE_DEV_IOCTL: + ret = rpmsg_release_channel(ctrldev->rpdev, &chinfo); + if (ret) + dev_err(&ctrldev->dev, "failed to release %s channel (%d)\n", + chinfo.name, ret); + break; + default: ret = -EINVAL; } diff --git a/include/uapi/linux/rpmsg.h b/include/uapi/linux/rpmsg.h index f9d5a74e7801..38639ba37438 100644 --- a/include/uapi/linux/rpmsg.h +++ b/include/uapi/linux/rpmsg.h @@ -38,4 +38,9 @@ struct rpmsg_endpoint_info { */ #define RPMSG_CREATE_DEV_IOCTL _IOW(0xb5, 0x3, struct rpmsg_endpoint_info) +/** + * Release a local rpmsg device. + */ +#define RPMSG_RELEASE_DEV_IOCTL _IOW(0xb5, 0x4, struct rpmsg_endpoint_info) + #endif
Implement the RPMSG_RELEASE_DEV_IOCTL to allow the user application to release a rpmsg device created either by the remote processor or with the RPMSG_CREATE_DEV_IOCTL call. Depending on the back-end implementation, the associated rpmsg driver is removed and a NS destroy rpmsg can be sent to the remote processor. Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> --- drivers/rpmsg/rpmsg_ctrl.c | 7 +++++++ include/uapi/linux/rpmsg.h | 5 +++++ 2 files changed, 12 insertions(+)