lkml.org 
[lkml]   [2016]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v10 03/14] usb: hcd.h: Add OTG to HCD interface
    From
    Date
    +Alan

    On 10/06/16 16:07, Roger Quadros wrote:
    > The OTG core will use struct otg_hcd_ops to interface
    > with the HCD (Host Controller Driver).
    >
    > 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..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;
    >

    --
    cheers,
    -roger

    \
     
     \ /
      Last update: 2016-06-14 11:01    [W:7.153 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site