diff mbox series

[v3,3/4] docs: Add documentation for user space client interface

Message ID 1591899224-3403-4-git-send-email-hemantk@codeaurora.org
State New
Headers show
Series user space client interface driver | expand

Commit Message

Hemant Kumar June 11, 2020, 6:13 p.m. UTC
MHI user space client driver is creating device file node
for user application to perform file operations. File
operations are handled by MHI core driver. Currently
Loopback MHI channel is supported by this driver.

Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
---
 Documentation/mhi/index.rst |  1 +
 Documentation/mhi/uci.rst   | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 Documentation/mhi/uci.rst

Comments

Manivannan Sadhasivam June 19, 2020, 6:39 a.m. UTC | #1
On Thu, Jun 11, 2020 at 11:13:43AM -0700, Hemant Kumar wrote:
> MHI user space client driver is creating device file node

> for user application to perform file operations. File

> operations are handled by MHI core driver. Currently

> Loopback MHI channel is supported by this driver.

> 

> Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>

> ---

>  Documentation/mhi/index.rst |  1 +

>  Documentation/mhi/uci.rst   | 19 +++++++++++++++++++

>  2 files changed, 20 insertions(+)

>  create mode 100644 Documentation/mhi/uci.rst

> 

> diff --git a/Documentation/mhi/index.rst b/Documentation/mhi/index.rst

> index 1d8dec3..c75a371 100644

> --- a/Documentation/mhi/index.rst

> +++ b/Documentation/mhi/index.rst

> @@ -9,6 +9,7 @@ MHI

>  

>     mhi

>     topology

> +   uci

>  

>  .. only::  subproject and html

>  

> diff --git a/Documentation/mhi/uci.rst b/Documentation/mhi/uci.rst

> new file mode 100644

> index 0000000..a5c5c4f

> --- /dev/null

> +++ b/Documentation/mhi/uci.rst

> @@ -0,0 +1,19 @@

> +.. SPDX-License-Identifier: GPL-2.0

> +

> +=================================

> +User space Client Interface (UCI)


Stick to 'Userspace' everywhere.

> +=================================

> +

> +UCI driver enables user space clients to communicate to external MHI devices

> +like modem and WLAN. It creates standard character device file nodes for user


UCI driver creates a single char device, isn't it?

> +space clients to perform open, read, write, pool and close file operations.

> +


poll? Btw, you need to mention explicitly how this char device can be used.
You are just mentioning standard file operations.

> +Device file node is created with format:-

> +

> +/dev/mhi_<controller_name>_<mhi_device_name>

> +

> +controller_name is the name of underlying bus used to transfer data.


underlying controller instance.

> +mhi_device_name is the name of the MHI channel being used by MHI client


What do you mean by MHI client here? Are you referring to userspace client?

> +to send or receive data using MHI protocol. MHI channels are statically

> +defined by MHI specification. Driver currently supports LOOPBACK channel

> +index 0 (Host to device) and 1 (Device to Host).


s/index/identifier

And explain a bit on how this LOOPBACK channel is getting used.

Thanks,
Mani

> -- 

> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> a Linux Foundation Collaborative Project

>
Hemant Kumar June 25, 2020, 1:52 a.m. UTC | #2
Hi Mani,

On 6/18/20 11:39 PM, Manivannan Sadhasivam wrote:
> On Thu, Jun 11, 2020 at 11:13:43AM -0700, Hemant Kumar wrote:

>> MHI user space client driver is creating device file node

>> for user application to perform file operations. File

>> operations are handled by MHI core driver. Currently

>> Loopback MHI channel is supported by this driver.

>>

>> Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>

>> ---

>>   Documentation/mhi/index.rst |  1 +

>>   Documentation/mhi/uci.rst   | 19 +++++++++++++++++++

>>   2 files changed, 20 insertions(+)

>>   create mode 100644 Documentation/mhi/uci.rst

>>

>> diff --git a/Documentation/mhi/index.rst b/Documentation/mhi/index.rst

>> index 1d8dec3..c75a371 100644

>> --- a/Documentation/mhi/index.rst

>> +++ b/Documentation/mhi/index.rst

>> @@ -9,6 +9,7 @@ MHI

>>   

>>      mhi

>>      topology

>> +   uci

>>   

>>   .. only::  subproject and html

>>   

>> diff --git a/Documentation/mhi/uci.rst b/Documentation/mhi/uci.rst

>> new file mode 100644

>> index 0000000..a5c5c4f

>> --- /dev/null

>> +++ b/Documentation/mhi/uci.rst

>> @@ -0,0 +1,19 @@

>> +.. SPDX-License-Identifier: GPL-2.0

>> +

>> +=================================

>> +User space Client Interface (UCI)

> 

> Stick to 'Userspace' everywhere.

Done.
> 

>> +=================================

>> +

>> +UCI driver enables user space clients to communicate to external MHI devices

>> +like modem and WLAN. It creates standard character device file nodes for user

> 

> UCI driver creates a single char device, isn't it?

No, it is created per device name. For example Loopback has its own char 
device file node. if we add another channel for a new mhi device new 
device file node would be created.
> 

>> +space clients to perform open, read, write, pool and close file operations.

>> +

> 

> poll? Btw, you need to mention explicitly how this char device can be used.

> You are just mentioning standard file operations.

Will fix poll.My idea was indeed to mention generic file operations so 
that we dont have to be specific with use case. Any userspace entity who 
wants to communicate over mhi can use the driver. Reason we have this 
driver is to abstract the mhi core specific details. Even for loopback 
use case, userspace can echo to device file node on one channel and get 
a same in response from another channel back. I can add more examples of
other user space drivers use case if that helps.
> 

>> +Device file node is created with format:-

>> +

>> +/dev/mhi_<controller_name>_<mhi_device_name>

>> +

>> +controller_name is the name of underlying bus used to transfer data.

> 

> underlying controller instance.

Done.
> 

>> +mhi_device_name is the name of the MHI channel being used by MHI client

> 

> What do you mean by MHI client here? Are you referring to userspace client?

yes. i can say "MHI client in userspace"?
> 

>> +to send or receive data using MHI protocol. MHI channels are statically

>> +defined by MHI specification. Driver currently supports LOOPBACK channel

>> +index 0 (Host to device) and 1 (Device to Host).

> 

> s/index/identifier

Done.
> 

> And explain a bit on how this LOOPBACK channel is getting used.

Done.
> 

> Thanks,

> Mani

> 

>> -- 

>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

>> a Linux Foundation Collaborative Project

>>


-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Manivannan Sadhasivam June 25, 2020, 6:23 a.m. UTC | #3
On Wed, Jun 24, 2020 at 06:52:20PM -0700, Hemant Kumar wrote:
> Hi Mani,

> 

> On 6/18/20 11:39 PM, Manivannan Sadhasivam wrote:

> > On Thu, Jun 11, 2020 at 11:13:43AM -0700, Hemant Kumar wrote:

> > > MHI user space client driver is creating device file node

> > > for user application to perform file operations. File

> > > operations are handled by MHI core driver. Currently

> > > Loopback MHI channel is supported by this driver.

> > > 

> > > Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>

> > > ---

> > >   Documentation/mhi/index.rst |  1 +

> > >   Documentation/mhi/uci.rst   | 19 +++++++++++++++++++

> > >   2 files changed, 20 insertions(+)

> > >   create mode 100644 Documentation/mhi/uci.rst

> > > 

> > > diff --git a/Documentation/mhi/index.rst b/Documentation/mhi/index.rst

> > > index 1d8dec3..c75a371 100644

> > > --- a/Documentation/mhi/index.rst

> > > +++ b/Documentation/mhi/index.rst

> > > @@ -9,6 +9,7 @@ MHI

> > >      mhi

> > >      topology

> > > +   uci

> > >   .. only::  subproject and html

> > > diff --git a/Documentation/mhi/uci.rst b/Documentation/mhi/uci.rst

> > > new file mode 100644

> > > index 0000000..a5c5c4f

> > > --- /dev/null

> > > +++ b/Documentation/mhi/uci.rst

> > > @@ -0,0 +1,19 @@

> > > +.. SPDX-License-Identifier: GPL-2.0

> > > +

> > > +=================================

> > > +User space Client Interface (UCI)

> > 

> > Stick to 'Userspace' everywhere.

> Done.

> > 

> > > +=================================

> > > +

> > > +UCI driver enables user space clients to communicate to external MHI devices

> > > +like modem and WLAN. It creates standard character device file nodes for user

> > 

> > UCI driver creates a single char device, isn't it?

> No, it is created per device name. For example Loopback has its own char

> device file node. if we add another channel for a new mhi device new device

> file node would be created.


Okay, then please add a line saying that there will be separate chardev nodes
for each channel specified.

> > 

> > > +space clients to perform open, read, write, pool and close file operations.

> > > +

> > 

> > poll? Btw, you need to mention explicitly how this char device can be used.

> > You are just mentioning standard file operations.

> Will fix poll.My idea was indeed to mention generic file operations so that

> we dont have to be specific with use case. Any userspace entity who wants to

> communicate over mhi can use the driver. Reason we have this driver is to

> abstract the mhi core specific details. Even for loopback use case,

> userspace can echo to device file node on one channel and get a same in

> response from another channel back. I can add more examples of

> other user space drivers use case if that helps.


Yes, just add couple of examples.

> > 

> > > +Device file node is created with format:-

> > > +

> > > +/dev/mhi_<controller_name>_<mhi_device_name>

> > > +

> > > +controller_name is the name of underlying bus used to transfer data.

> > 

> > underlying controller instance.

> Done.

> > 

> > > +mhi_device_name is the name of the MHI channel being used by MHI client

> > 

> > What do you mean by MHI client here? Are you referring to userspace client?

> yes. i can say "MHI client in userspace"?


Okay. The naming conventions used in MHI are a bit weird. So from the start
itself I stuck with some fixed names and client is one of them. The term client
itself refers to both client device and a driver used to talk to the device in
the host. So we should explicitly mention if it is a userspace client driver
or the client device.

Thanks,
Mani

> > 

> > > +to send or receive data using MHI protocol. MHI channels are statically

> > > +defined by MHI specification. Driver currently supports LOOPBACK channel

> > > +index 0 (Host to device) and 1 (Device to Host).

> > 

> > s/index/identifier

> Done.

> > 

> > And explain a bit on how this LOOPBACK channel is getting used.

> Done.

> > 

> > Thanks,

> > Mani

> > 

> > > -- 

> > > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> > > a Linux Foundation Collaborative Project

> > > 

> 

> -- 

> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> a Linux Foundation Collaborative Project
Manivannan Sadhasivam June 25, 2020, 6:27 a.m. UTC | #4
On Thu, Jun 25, 2020 at 11:53:27AM +0530, Manivannan Sadhasivam wrote:
> On Wed, Jun 24, 2020 at 06:52:20PM -0700, Hemant Kumar wrote:

> > Hi Mani,

> > 

> > On 6/18/20 11:39 PM, Manivannan Sadhasivam wrote:

> > > On Thu, Jun 11, 2020 at 11:13:43AM -0700, Hemant Kumar wrote:

> > > > MHI user space client driver is creating device file node

> > > > for user application to perform file operations. File

> > > > operations are handled by MHI core driver. Currently

> > > > Loopback MHI channel is supported by this driver.

> > > > 

> > > > Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>

> > > > ---

> > > >   Documentation/mhi/index.rst |  1 +

> > > >   Documentation/mhi/uci.rst   | 19 +++++++++++++++++++

> > > >   2 files changed, 20 insertions(+)

> > > >   create mode 100644 Documentation/mhi/uci.rst

> > > > 

> > > > diff --git a/Documentation/mhi/index.rst b/Documentation/mhi/index.rst

> > > > index 1d8dec3..c75a371 100644

> > > > --- a/Documentation/mhi/index.rst

> > > > +++ b/Documentation/mhi/index.rst

> > > > @@ -9,6 +9,7 @@ MHI

> > > >      mhi

> > > >      topology

> > > > +   uci

> > > >   .. only::  subproject and html

> > > > diff --git a/Documentation/mhi/uci.rst b/Documentation/mhi/uci.rst

> > > > new file mode 100644

> > > > index 0000000..a5c5c4f

> > > > --- /dev/null

> > > > +++ b/Documentation/mhi/uci.rst

> > > > @@ -0,0 +1,19 @@

> > > > +.. SPDX-License-Identifier: GPL-2.0

> > > > +

> > > > +=================================

> > > > +User space Client Interface (UCI)

> > > 

> > > Stick to 'Userspace' everywhere.

> > Done.

> > > 

> > > > +=================================

> > > > +

> > > > +UCI driver enables user space clients to communicate to external MHI devices

> > > > +like modem and WLAN. It creates standard character device file nodes for user

> > > 

> > > UCI driver creates a single char device, isn't it?

> > No, it is created per device name. For example Loopback has its own char

> > device file node. if we add another channel for a new mhi device new device

> > file node would be created.

> 

> Okay, then please add a line saying that there will be separate chardev nodes

> for each channel specified.

> 

> > > 

> > > > +space clients to perform open, read, write, pool and close file operations.

> > > > +

> > > 

> > > poll? Btw, you need to mention explicitly how this char device can be used.

> > > You are just mentioning standard file operations.

> > Will fix poll.My idea was indeed to mention generic file operations so that

> > we dont have to be specific with use case. Any userspace entity who wants to

> > communicate over mhi can use the driver. Reason we have this driver is to

> > abstract the mhi core specific details. Even for loopback use case,

> > userspace can echo to device file node on one channel and get a same in

> > response from another channel back. I can add more examples of

> > other user space drivers use case if that helps.

> 

> Yes, just add couple of examples.

> 


Or.. just add loopback as an example for now and then if we add more channels in
future let's make sure to document those here.

Thanks,
Mani

> > > 

> > > > +Device file node is created with format:-

> > > > +

> > > > +/dev/mhi_<controller_name>_<mhi_device_name>

> > > > +

> > > > +controller_name is the name of underlying bus used to transfer data.

> > > 

> > > underlying controller instance.

> > Done.

> > > 

> > > > +mhi_device_name is the name of the MHI channel being used by MHI client

> > > 

> > > What do you mean by MHI client here? Are you referring to userspace client?

> > yes. i can say "MHI client in userspace"?

> 

> Okay. The naming conventions used in MHI are a bit weird. So from the start

> itself I stuck with some fixed names and client is one of them. The term client

> itself refers to both client device and a driver used to talk to the device in

> the host. So we should explicitly mention if it is a userspace client driver

> or the client device.

> 

> Thanks,

> Mani

> 

> > > 

> > > > +to send or receive data using MHI protocol. MHI channels are statically

> > > > +defined by MHI specification. Driver currently supports LOOPBACK channel

> > > > +index 0 (Host to device) and 1 (Device to Host).

> > > 

> > > s/index/identifier

> > Done.

> > > 

> > > And explain a bit on how this LOOPBACK channel is getting used.

> > Done.

> > > 

> > > Thanks,

> > > Mani

> > > 

> > > > -- 

> > > > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> > > > a Linux Foundation Collaborative Project

> > > > 

> > 

> > -- 

> > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,

> > a Linux Foundation Collaborative Project
diff mbox series

Patch

diff --git a/Documentation/mhi/index.rst b/Documentation/mhi/index.rst
index 1d8dec3..c75a371 100644
--- a/Documentation/mhi/index.rst
+++ b/Documentation/mhi/index.rst
@@ -9,6 +9,7 @@  MHI
 
    mhi
    topology
+   uci
 
 .. only::  subproject and html
 
diff --git a/Documentation/mhi/uci.rst b/Documentation/mhi/uci.rst
new file mode 100644
index 0000000..a5c5c4f
--- /dev/null
+++ b/Documentation/mhi/uci.rst
@@ -0,0 +1,19 @@ 
+.. SPDX-License-Identifier: GPL-2.0
+
+=================================
+User space Client Interface (UCI)
+=================================
+
+UCI driver enables user space clients to communicate to external MHI devices
+like modem and WLAN. It creates standard character device file nodes for user
+space clients to perform open, read, write, pool and close file operations.
+
+Device file node is created with format:-
+
+/dev/mhi_<controller_name>_<mhi_device_name>
+
+controller_name is the name of underlying bus used to transfer data.
+mhi_device_name is the name of the MHI channel being used by MHI client
+to send or receive data using MHI protocol. MHI channels are statically
+defined by MHI specification. Driver currently supports LOOPBACK channel
+index 0 (Host to device) and 1 (Device to Host).