All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavan Kondeti <pkondeti@codeaurora.org>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: linux-usb@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: Re: [RFC 2/5] USB: core: OTG Supplement Revision 2.0 updates
Date: Thu, 16 Dec 2010 14:24:13 +0530	[thread overview]
Message-ID: <4D09D3B5.7050208@codeaurora.org> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1012151625460.2171-100000@iolanthe.rowland.org>

On 12/16/2010 2:59 AM, Alan Stern wrote:
> On Wed, 15 Dec 2010, Pavankumar Kondeti wrote:
> 
>> OTG supplement revision 2.0 spec introduces Attach Detection Protocol
>> (ADP) for detecting peripheral connection without applying power on
>> VBUS.  ADP is optional and is included in the OTG descriptor along with
>> SRP and HNP.
>>
>> HNP polling is introduced for peripheral to notify its wish to become
>> host.  Host polls (GET_STATUS on DEVICE) peripheral for host_request
>> and suspend the bus when peripheral returns host_request TRUE.  The spec
>> insists the polling frequency to be in 1-2 sec range and bus should be
>> suspended with in 2 sec from host_request is set.
>>
>> a_alt_hnp_support feature is obsolete and a_hnp_support feature is limited
>> to only legacy OTG B-device.  The newly introduced bcdOTG field in the OTG
>> descriptor is used for identifying the 2.0 compliant B-device.
>>
>> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
>> ---
>>  drivers/usb/core/driver.c |   50 +++++++++++++++++++++++++++++++
>>  drivers/usb/core/hcd.c    |    3 ++
>>  drivers/usb/core/hub.c    |   71 ++++++++++++++++++++++++++++++++++++++------
>>  drivers/usb/core/usb.h    |    4 ++
>>  include/linux/usb.h       |    2 +
>>  include/linux/usb/ch9.h   |   11 ++++++-
>>  6 files changed, 129 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
>> index b9278a1..38885b6 100644
>> --- a/drivers/usb/core/driver.c
>> +++ b/drivers/usb/core/driver.c
> 
>> @@ -1270,6 +1283,43 @@ static int usb_resume_both(struct usb_device *udev, pm_message_t msg)
>>  	return status;
>>  }
>>  
>> +#ifdef CONFIG_USB_OTG
>> +void usb_hnp_polling_work(struct work_struct *work)
>> +{
>> +	int ret;
>> +	struct usb_bus *bus =
>> +		container_of(work, struct usb_bus, hnp_polling.work);
>> +	struct usb_device *udev = bus->root_hub->children[bus->otg_port - 1];
>> +	u8 *status = kmalloc(sizeof(*status), GFP_KERNEL);
>> +
>> +	if (!status)
>> +		return;
> 
> Shouldn't you reschedule the delayed work?  A memory allocation failure 
> is likely to be temporary.
> 
Agreed. Will fix it in V2.

>> +
>> +	ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
>> +		USB_REQ_GET_STATUS, USB_DIR_IN | USB_RECIP_DEVICE,
>> +		0, OTG_STATUS_SELECTOR, status, sizeof(*status),
>> +		USB_CTRL_GET_TIMEOUT);
>> +	if (ret < 0) {
>> +		/* Peripheral may not be supporting HNP polling */
>> +		dev_vdbg(&udev->dev, "HNP polling failed. status %d\n", ret);
>> +		goto out;
>> +	}
>> +
>> +	/* Spec says host must suspend the bus with in 2 sec. */
>> +	if (*status & (1 << HOST_REQUEST_FLAG)) {
>> +		do_unbind_rebind(udev, DO_UNBIND);
> 
> You forget to set udev->do_remote_wakeup to 0.
> 
Thanks for pointing this out. I will fix it in V2.

Thanks,
Pavan

-- 
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

  reply	other threads:[~2010-12-16  8:54 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-15 11:14 [RFC 0/5] USB core changes for supporting OTG on MSM SoC Pavankumar Kondeti
2010-12-15 11:14 ` [RFC 1/5] USB: core: Add input prompt and help text for USB_OTG config Pavankumar Kondeti
2010-12-15 12:35   ` Sergei Shtylyov
2010-12-15 21:52   ` Greg KH
2010-12-16  8:53     ` Pavan Kondeti
2010-12-15 11:14 ` [RFC 2/5] USB: core: OTG Supplement Revision 2.0 updates Pavankumar Kondeti
2010-12-15 12:16   ` Felipe Balbi
2010-12-15 21:39     ` Alan Stern
2010-12-16  8:10       ` Felipe Balbi
2010-12-16  8:54     ` Pavan Kondeti
2010-12-16  9:11       ` Felipe Balbi
2010-12-15 21:29   ` Alan Stern
2010-12-16  8:54     ` Pavan Kondeti [this message]
2010-12-15 21:53   ` Greg KH
2010-12-16  8:54     ` Pavan Kondeti
2010-12-15 11:14 ` [RFC 3/5] USB: gadget: OTG supplement revision " Pavankumar Kondeti
2010-12-15 12:18   ` Felipe Balbi
2010-12-16  8:54     ` Pavan Kondeti
2010-12-15 11:14 ` [RFC 4/5] USB: EHCI: Notify HCD about HNP enabled port suspend Pavankumar Kondeti
2010-12-15 12:19   ` Felipe Balbi
2010-12-16  8:54     ` Pavan Kondeti
2010-12-15 11:14 ` [RFC 5/5] USB: Eliminate delays involved in root hub initialization during HNP Pavankumar Kondeti
2010-12-15 12:21   ` Felipe Balbi
2010-12-16 11:26     ` Pavan Kondeti
2010-12-16 12:15       ` Felipe Balbi
2010-12-16 12:53         ` Pavan Kondeti
2010-12-15 21:52   ` Greg KH
2010-12-15 21:38 ` [RFC 0/5] USB core changes for supporting OTG on MSM SoC Alan Stern
2010-12-16  8:55   ` Pavan Kondeti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D09D3B5.7050208@codeaurora.org \
    --to=pkondeti@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.