Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1417109 > unrolled thread

[PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface

Started byRoger Quadros <rogerq@ti.com>
First post2016-06-08 11:10 +0200
Last post2016-06-09 10:00 +0200
Articles 9 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Roger Quadros <rogerq@ti.com> - 2016-06-08 11:10 +0200
    Re: [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> - 2016-06-08 13:40 +0200
      Re: [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Roger Quadros <rogerq@ti.com> - 2016-06-08 14:10 +0200
        Re: [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> - 2016-06-08 14:20 +0200
          Re: [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Roger Quadros <rogerq@ti.com> - 2016-06-09 09:40 +0200
            Re: [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> - 2016-06-09 12:20 +0200
              Re: [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Alan Stern <stern@rowland.harvard.edu> - 2016-06-09 16:20 +0200
                Re: [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface Roger Quadros <rogerq@ti.com> - 2016-06-10 09:10 +0200
    [PATCH v10 03/14] usb: hcd.h: Add OTG to HCD interface Roger Quadros <rogerq@ti.com> - 2016-06-09 10:00 +0200

#1417109 — [PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface

FromRoger Quadros <rogerq@ti.com>
Date2016-06-08 11:10 +0200
Subject[PATCH v9 03/14] usb: hcd.h: Add OTG to HCD interface
Message-ID<rHHER-6Fd-1@gated-at.bofh.it>
The OTG core will use struct otg_hcd_ops to interface
with the HCD controller.

The main purpose of this interface is to avoid directly
calling HCD APIs from the OTG core as they
wouldn't be defined in the built-in symbol table if
CONFIG_USB is m.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Peter Chen <peter.chen@nxp.com>
---
 include/linux/usb/hcd.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
index 66fc137..7914bed 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -400,6 +400,30 @@ struct hc_driver {
 
 };
 
+/**
+ * struct otg_hcd_ops - Interface between OTG core and HCD
+ *
+ * Provided by the HCD core to allow the OTG core to interface with the HCD
+ *
+ * @add: function to add the HCD
+ * @remove: function to remove the HCD
+ * @usb_bus_start_enum: function to immediately start bus enumeration
+ * @usb_control_msg: function to build and send of a control urb
+ * @usb_hub_find_child: function to get pointer to the child device
+ */
+struct otg_hcd_ops {
+	int (*add)(struct usb_hcd *hcd,
+		   unsigned int irqnum, unsigned long irqflags);
+	void (*remove)(struct usb_hcd *hcd);
+	int (*usb_bus_start_enum)(struct usb_bus *bus, unsigned int port_num);
+	int (*usb_control_msg)(struct usb_device *dev, unsigned int pipe,
+			       __u8 request, __u8 requesttype, __u16 value,
+			       __u16 index, void *data, __u16 size,
+			       int timeout);
+	struct usb_device * (*usb_hub_find_child)(struct usb_device *hdev,
+						  int port1);
+};
+
 static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
 {
 	return hcd->driver->flags & HCD_BH;
-- 
2.7.4

[toc] | [next] | [standalone]


#1417317

FromSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date2016-06-08 13:40 +0200
Message-ID<rHK02-80s-5@gated-at.bofh.it>
In reply to#1417109
Hello.

On 6/8/2016 12:03 PM, Roger Quadros wrote:

> The OTG core will use struct otg_hcd_ops to interface
> with the HCD controller.

    Host controller driver (HCD) controller? Maybe just HC? :-)

> The main purpose of this interface is to avoid directly
> calling HCD APIs from the OTG core as they
> wouldn't be defined in the built-in symbol table if
> CONFIG_USB is m.
>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> Acked-by: Peter Chen <peter.chen@nxp.com>
> ---
>  include/linux/usb/hcd.h | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>
> diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
> index 66fc137..7914bed 100644
> --- a/include/linux/usb/hcd.h
> +++ b/include/linux/usb/hcd.h
> @@ -400,6 +400,30 @@ struct hc_driver {
>
>  };
>
> +/**
> + * struct otg_hcd_ops - Interface between OTG core and HCD
> + *
> + * Provided by the HCD core to allow the OTG core to interface with the HCD
> + *
> + * @add: function to add the HCD
> + * @remove: function to remove the HCD
> + * @usb_bus_start_enum: function to immediately start bus enumeration
> + * @usb_control_msg: function to build and send of a control urb

    That "of" is not needed. And it's URB.

[...]

MBR, Sergei

[toc] | [prev] | [next] | [standalone]


#1417335

FromRoger Quadros <rogerq@ti.com>
Date2016-06-08 14:10 +0200
Message-ID<rHKt3-8pd-9@gated-at.bofh.it>
In reply to#1417317
Hi,

On 08/06/16 14:39, Sergei Shtylyov wrote:
> Hello.
> 
> On 6/8/2016 12:03 PM, Roger Quadros wrote:
> 
>> The OTG core will use struct otg_hcd_ops to interface
>> with the HCD controller.
> 
>    Host controller driver (HCD) controller? Maybe just HC? :-)

OK.

> 
>> The main purpose of this interface is to avoid directly
>> calling HCD APIs from the OTG core as they
>> wouldn't be defined in the built-in symbol table if
>> CONFIG_USB is m.
>>
>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>> Acked-by: Peter Chen <peter.chen@nxp.com>
>> ---
>>  include/linux/usb/hcd.h | 24 ++++++++++++++++++++++++
>>  1 file changed, 24 insertions(+)
>>
>> diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
>> index 66fc137..7914bed 100644
>> --- a/include/linux/usb/hcd.h
>> +++ b/include/linux/usb/hcd.h
>> @@ -400,6 +400,30 @@ struct hc_driver {
>>
>>  };
>>
>> +/**
>> + * struct otg_hcd_ops - Interface between OTG core and HCD
>> + *
>> + * Provided by the HCD core to allow the OTG core to interface with the HCD
>> + *
>> + * @add: function to add the HCD
>> + * @remove: function to remove the HCD
>> + * @usb_bus_start_enum: function to immediately start bus enumeration
>> + * @usb_control_msg: function to build and send of a control urb
> 
>    That "of" is not needed. And it's URB.

Right.
> 
> [...]
> 

--
cheers,
-roger

[toc] | [prev] | [next] | [standalone]


#1417348

FromSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date2016-06-08 14:20 +0200
Message-ID<rHKCK-8sB-21@gated-at.bofh.it>
In reply to#1417335
On 6/8/2016 3:04 PM, Roger Quadros wrote:

>>> The OTG core will use struct otg_hcd_ops to interface
>>> with the HCD controller.
>>
>>    Host controller driver (HCD) controller? Maybe just HC? :-)
>
> OK.

    OTOH, my googling has shown that HCD may stand for both HC driver and HC 
device... The host controller device sounds a bit tautological however...

[...]

> --
> cheers,
> -roger

MBR, Sergei

[toc] | [prev] | [next] | [standalone]


#1418128

FromRoger Quadros <rogerq@ti.com>
Date2016-06-09 09:40 +0200
Message-ID<rI2Jk-3h2-7@gated-at.bofh.it>
In reply to#1417348
On 08/06/16 15:10, Sergei Shtylyov wrote:
> On 6/8/2016 3:04 PM, Roger Quadros wrote:
> 
>>>> The OTG core will use struct otg_hcd_ops to interface
>>>> with the HCD controller.
>>>
>>>    Host controller driver (HCD) controller? Maybe just HC? :-)
>>
>> OK.
> 
>    OTOH, my googling has shown that HCD may stand for both HC driver and HC device... The host controller device sounds a bit tautological however...

Yeah I always meant it to be Host Controller Device :).

--
cheers,
-roger

[toc] | [prev] | [next] | [standalone]


#1418224

FromSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date2016-06-09 12:20 +0200
Message-ID<rI5e9-4ZN-11@gated-at.bofh.it>
In reply to#1418128
Hello.

On 6/9/2016 10:31 AM, Roger Quadros wrote:

>>>>> The OTG core will use struct otg_hcd_ops to interface
>>>>> with the HCD controller.
>>>>
>>>>    Host controller driver (HCD) controller? Maybe just HC? :-)
>>>
>>> OK.
>>
>>    OTOH, my googling has shown that HCD may stand for both HC driver and HC device... The host controller device sounds a bit tautological however...
>
> Yeah I always meant it to be Host Controller Device :).

    The question here is more what was meant by the previous Linux USB 
authors. :-)

> --
> cheers,
> -roger

MBR, Sergei

[toc] | [prev] | [next] | [standalone]


#1418370

FromAlan Stern <stern@rowland.harvard.edu>
Date2016-06-09 16:20 +0200
Message-ID<rI8Yq-7uB-11@gated-at.bofh.it>
In reply to#1418224
On Thu, 9 Jun 2016, Sergei Shtylyov wrote:

> Hello.
> 
> On 6/9/2016 10:31 AM, Roger Quadros wrote:
> 
> >>>>> The OTG core will use struct otg_hcd_ops to interface
> >>>>> with the HCD controller.
> >>>>
> >>>>    Host controller driver (HCD) controller? Maybe just HC? :-)
> >>>
> >>> OK.
> >>
> >>    OTOH, my googling has shown that HCD may stand for both HC driver and HC device... The host controller device sounds a bit tautological however...
> >
> > Yeah I always meant it to be Host Controller Device :).
> 
>     The question here is more what was meant by the previous Linux USB 
> authors. :-)

I have always used "HCD" to mean Host Controller Driver, and I believe 
that's what other people have done too.

If I want to refer to a Host Controller Device, I would write either
"HC" or "host controller".

Admittedly, this means that struct usb_hcd has a slightly illogical 
name.

Alan Stern

[toc] | [prev] | [next] | [standalone]


#1419074

FromRoger Quadros <rogerq@ti.com>
Date2016-06-10 09:10 +0200
Message-ID<rIoJP-1vU-3@gated-at.bofh.it>
In reply to#1418370
On 09/06/16 17:11, Alan Stern wrote:
> On Thu, 9 Jun 2016, Sergei Shtylyov wrote:
> 
>> Hello.
>>
>> On 6/9/2016 10:31 AM, Roger Quadros wrote:
>>
>>>>>>> The OTG core will use struct otg_hcd_ops to interface
>>>>>>> with the HCD controller.
>>>>>>
>>>>>>    Host controller driver (HCD) controller? Maybe just HC? :-)
>>>>>
>>>>> OK.
>>>>
>>>>    OTOH, my googling has shown that HCD may stand for both HC driver and HC device... The host controller device sounds a bit tautological however...
>>>
>>> Yeah I always meant it to be Host Controller Device :).
>>
>>     The question here is more what was meant by the previous Linux USB 
>> authors. :-)
> 
> I have always used "HCD" to mean Host Controller Driver, and I believe 
> that's what other people have done too.
> 
> If I want to refer to a Host Controller Device, I would write either
> "HC" or "host controller".
> 
> Admittedly, this means that struct usb_hcd has a slightly illogical 
> name.
> 

OK, I'll re-spin this series so that HCD means HC driver.

cheers,
-roger

[toc] | [prev] | [next] | [standalone]


#1418144 — [PATCH v10 03/14] usb: hcd.h: Add OTG to HCD interface

FromRoger Quadros <rogerq@ti.com>
Date2016-06-09 10:00 +0200
Subject[PATCH v10 03/14] usb: hcd.h: Add OTG to HCD interface
Message-ID<rI32F-3oT-1@gated-at.bofh.it>
In reply to#1417109
The OTG core will use struct otg_hcd_ops to interface
with the HCD (Host Controller Device).

The main purpose of this interface is to avoid directly
calling HCD APIs from the OTG core as they
wouldn't be defined in the built-in symbol table if
CONFIG_USB is m.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Peter Chen <peter.chen@nxp.com>
---
v10:
- clarify HCD abbreviation in commit message.
- Fix comment
	- remove unnecessary "of" in comment
	- use URB instead of urb.

 include/linux/usb/hcd.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
index 66fc137..7729c1f 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -400,6 +400,30 @@ struct hc_driver {
 
 };
 
+/**
+ * struct otg_hcd_ops - Interface between OTG core and HCD
+ *
+ * Provided by the HCD core to allow the OTG core to interface with the HCD
+ *
+ * @add: function to add the HCD
+ * @remove: function to remove the HCD
+ * @usb_bus_start_enum: function to immediately start bus enumeration
+ * @usb_control_msg: function to build and send a control URB
+ * @usb_hub_find_child: function to get pointer to the child device
+ */
+struct otg_hcd_ops {
+	int (*add)(struct usb_hcd *hcd,
+		   unsigned int irqnum, unsigned long irqflags);
+	void (*remove)(struct usb_hcd *hcd);
+	int (*usb_bus_start_enum)(struct usb_bus *bus, unsigned int port_num);
+	int (*usb_control_msg)(struct usb_device *dev, unsigned int pipe,
+			       __u8 request, __u8 requesttype, __u16 value,
+			       __u16 index, void *data, __u16 size,
+			       int timeout);
+	struct usb_device * (*usb_hub_find_child)(struct usb_device *hdev,
+						  int port1);
+};
+
 static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
 {
 	return hcd->driver->flags & HCD_BH;
-- 
2.7.4

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web