diff mbox

[v5,12/15] usb: phy: Add set_wakeup API

Message ID 1386570664-6713-13-git-send-email-peter.chen@freescale.com (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Chen Dec. 9, 2013, 6:31 a.m. UTC
This API is used to set wakeup enable at PHY registers, in that
case, the PHY can be waken up from suspend due to external events,
like vbus change, dp/dm change and id change.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
---
 include/linux/usb/phy.h |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

Comments

Marc Kleine-Budde Dec. 9, 2013, 8:41 a.m. UTC | #1
On 12/09/2013 07:31 AM, Peter Chen wrote:
> This API is used to set wakeup enable at PHY registers, in that
> case, the PHY can be waken up from suspend due to external events,

I' no native speaker, but I think it's "to be woken up".

> like vbus change, dp/dm change and id change.
> 
> Signed-off-by: Peter Chen <peter.chen@freescale.com>
> ---
>  include/linux/usb/phy.h |   16 ++++++++++++++++
>  1 files changed, 16 insertions(+), 0 deletions(-)
> 
> diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
> index a747960..c6ebe1d 100644
> --- a/include/linux/usb/phy.h
> +++ b/include/linux/usb/phy.h
> @@ -111,6 +111,13 @@ struct usb_phy {
>  	int	(*set_suspend)(struct usb_phy *x,
>  				int suspend);
>  
> +	/*
> +	 * Set wakeup enable for PHY, in that case, the PHY can be
> +	 * waken up from suspend status due to external events,
> +	 * like vbus change, dp/dm change and id.
> +	 */
> +	int	(*set_wakeup)(struct usb_phy *x, bool enabled);
> +
>  	/* notify phy connect status change */
>  	int	(*notify_connect)(struct usb_phy *x,
>  			enum usb_device_speed speed);
> @@ -270,6 +277,15 @@ usb_phy_set_suspend(struct usb_phy *x, int suspend)
>  }
>  
>  static inline int
> +usb_phy_set_wakeup(struct usb_phy *x, bool enabled)
> +{
> +	if (x && x->set_wakeup)

can x be NULL?

> +		return x->set_wakeup(x, enabled);
> +	else
> +		return 0;
> +}
> +
> +static inline int
>  usb_phy_notify_connect(struct usb_phy *x, enum usb_device_speed speed)
>  {
>  	if (x && x->notify_connect)
> 

Marc
Peter Chen Dec. 9, 2013, 9:12 a.m. UTC | #2
On Mon, Dec 09, 2013 at 09:41:54AM +0100, Marc Kleine-Budde wrote:
> On 12/09/2013 07:31 AM, Peter Chen wrote:
> > This API is used to set wakeup enable at PHY registers, in that
> > case, the PHY can be waken up from suspend due to external events,
> 
> I' no native speaker, but I think it's "to be woken up".

Thanks, will change.

> >  
> >  static inline int
> > +usb_phy_set_wakeup(struct usb_phy *x, bool enabled)
> > +{
> > +	if (x && x->set_wakeup)
> 
> can x be NULL?
> 

Possible, this function is PHY's API, it may be called uninitialized.

Peter

> > +		return x->set_wakeup(x, enabled);
> > +	else
> > +		return 0;
> > +}
> > +
> > +static inline int
> >  usb_phy_notify_connect(struct usb_phy *x, enum usb_device_speed speed)
> >  {
> >  	if (x && x->notify_connect)
> > 
> 
> Marc
> 
> -- 
> Pengutronix e.K.                  | Marc Kleine-Budde           |
> Industrial Linux Solutions        | Phone: +49-231-2826-924     |
> Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
> Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |
>
diff mbox

Patch

diff --git a/include/linux/usb/phy.h b/include/linux/usb/phy.h
index a747960..c6ebe1d 100644
--- a/include/linux/usb/phy.h
+++ b/include/linux/usb/phy.h
@@ -111,6 +111,13 @@  struct usb_phy {
 	int	(*set_suspend)(struct usb_phy *x,
 				int suspend);
 
+	/*
+	 * Set wakeup enable for PHY, in that case, the PHY can be
+	 * waken up from suspend status due to external events,
+	 * like vbus change, dp/dm change and id.
+	 */
+	int	(*set_wakeup)(struct usb_phy *x, bool enabled);
+
 	/* notify phy connect status change */
 	int	(*notify_connect)(struct usb_phy *x,
 			enum usb_device_speed speed);
@@ -270,6 +277,15 @@  usb_phy_set_suspend(struct usb_phy *x, int suspend)
 }
 
 static inline int
+usb_phy_set_wakeup(struct usb_phy *x, bool enabled)
+{
+	if (x && x->set_wakeup)
+		return x->set_wakeup(x, enabled);
+	else
+		return 0;
+}
+
+static inline int
 usb_phy_notify_connect(struct usb_phy *x, enum usb_device_speed speed)
 {
 	if (x && x->notify_connect)