Re: [PATCH v2 1/1] usb: gadget: zero: Add flexible auto remote wakeup test method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 07, 2013 at 05:18:13AM +0800, Peter Chen wrote:
> In order to increase test coverage, we can change the interval between
> two remote wakeups every time, and the interval can be any user defined
> value. This change will no affect current behavior if the user does not
> use two introduced module paramters.
> 
> Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
> ---
> 
> Changes for v2:
> - Change some typo and description
> 

Ping.....

>  drivers/usb/gadget/zero.c |   25 +++++++++++++++++++++++--
>  1 files changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
> index 0deb9d6..21da094 100644
> --- a/drivers/usb/gadget/zero.c
> +++ b/drivers/usb/gadget/zero.c
> @@ -95,6 +95,18 @@ unsigned autoresume = DEFAULT_AUTORESUME;
>  module_param(autoresume, uint, S_IRUGO);
>  MODULE_PARM_DESC(autoresume, "zero, or seconds before remote wakeup");
>  
> +/* Maximum Autoresume time */
> +unsigned max_autoresume;
> +module_param(max_autoresume, uint, S_IRUGO);
> +MODULE_PARM_DESC(max_autoresume, "maximum seconds before remote wakeup");
> +
> +/* Interval between two remote wakeups */
> +unsigned autoresume_interval_ms;
> +module_param(autoresume_interval_ms, uint, S_IRUGO);
> +MODULE_PARM_DESC(autoresume_interval_ms,
> +		"milliseconds to increase successive wakup delays");
> +
> +static unsigned autoresume_step_ms;
>  /*-------------------------------------------------------------------------*/
>  
>  static struct usb_device_descriptor device_desc = {
> @@ -183,8 +195,16 @@ static void zero_suspend(struct usb_composite_dev *cdev)
>  		return;
>  
>  	if (autoresume) {
> -		mod_timer(&autoresume_timer, jiffies + (HZ * autoresume));
> -		DBG(cdev, "suspend, wakeup in %d seconds\n", autoresume);
> +		if (max_autoresume &&
> +			(autoresume_step_ms > max_autoresume * 1000))
> +				autoresume_step_ms = autoresume * 1000;
> +
> +		mod_timer(&autoresume_timer, jiffies +
> +			msecs_to_jiffies(autoresume_step_ms));
> +		DBG(cdev, "suspend, wakeup in %d milliseconds\n",
> +			autoresume_step_ms);
> +
> +		autoresume_step_ms += autoresume_interval_ms;
>  	} else
>  		DBG(cdev, "%s\n", __func__);
>  }
> @@ -316,6 +336,7 @@ static int __init zero_bind(struct usb_composite_dev *cdev)
>  	if (autoresume) {
>  		sourcesink_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP;
>  		loopback_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP;
> +		autoresume_step_ms = autoresume * 1000;
>  	}
>  
>  	/* support OTG systems */
> -- 
> 1.7.1
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 

Best Regards,
Peter Chen

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux