Message ID | 1612470486-10440-8-git-send-email-bbhatt@codeaurora.org |
---|---|
State | Superseded |
Headers | show |
Series | Updates to MHI channel handling | expand |
On Thu, Feb 04, 2021 at 12:28:05PM -0800, Bhaumik Bhatt wrote: > The mhi_prepare_for_transfer() and mhi_unprepare_from_transfer() > APIs could use better explanation. Add details on what MHI does > when these APIs are used. > > Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org> > Reviewed-by: Hemant Kumar <hemantk@codeaurora.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Thanks, Mani > --- > include/linux/mhi.h | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/include/linux/mhi.h b/include/linux/mhi.h > index d26acc8..56c4c52 100644 > --- a/include/linux/mhi.h > +++ b/include/linux/mhi.h > @@ -712,13 +712,27 @@ int mhi_device_get_sync(struct mhi_device *mhi_dev); > void mhi_device_put(struct mhi_device *mhi_dev); > > /** > - * mhi_prepare_for_transfer - Setup channel for data transfer > + * mhi_prepare_for_transfer - Setup UL and DL channels for data transfer. > + * Allocate and initialize the channel context and > + * also issue the START channel command to both > + * channels. Channels can be started only if both > + * host and device execution environments match and > + * channels are in a DISABLED state. > * @mhi_dev: Device associated with the channels > */ > int mhi_prepare_for_transfer(struct mhi_device *mhi_dev); > > /** > - * mhi_unprepare_from_transfer - Unprepare the channels > + * mhi_unprepare_from_transfer - Reset UL and DL channels for data transfer. > + * Issue the RESET channel command and let the > + * device clean-up the context so no incoming > + * transfers are seen on the host. Free memory > + * associated with the context on host. If device > + * is unresponsive, only perform a host side > + * clean-up. Channels can be reset only if both > + * host and device execution environments match > + * and channels are in an ENABLED, STOPPED or > + * SUSPENDED state. > * @mhi_dev: Device associated with the channels > */ > void mhi_unprepare_from_transfer(struct mhi_device *mhi_dev); > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > a Linux Foundation Collaborative Project >
diff --git a/include/linux/mhi.h b/include/linux/mhi.h index d26acc8..56c4c52 100644 --- a/include/linux/mhi.h +++ b/include/linux/mhi.h @@ -712,13 +712,27 @@ int mhi_device_get_sync(struct mhi_device *mhi_dev); void mhi_device_put(struct mhi_device *mhi_dev); /** - * mhi_prepare_for_transfer - Setup channel for data transfer + * mhi_prepare_for_transfer - Setup UL and DL channels for data transfer. + * Allocate and initialize the channel context and + * also issue the START channel command to both + * channels. Channels can be started only if both + * host and device execution environments match and + * channels are in a DISABLED state. * @mhi_dev: Device associated with the channels */ int mhi_prepare_for_transfer(struct mhi_device *mhi_dev); /** - * mhi_unprepare_from_transfer - Unprepare the channels + * mhi_unprepare_from_transfer - Reset UL and DL channels for data transfer. + * Issue the RESET channel command and let the + * device clean-up the context so no incoming + * transfers are seen on the host. Free memory + * associated with the context on host. If device + * is unresponsive, only perform a host side + * clean-up. Channels can be reset only if both + * host and device execution environments match + * and channels are in an ENABLED, STOPPED or + * SUSPENDED state. * @mhi_dev: Device associated with the channels */ void mhi_unprepare_from_transfer(struct mhi_device *mhi_dev);