From: Lan Tianyu <tianyu.lan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Greg KH <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
Cc: lenb-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
sarah.a.sharp-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org,
rjw-KKrjLPT3xs0@public.gmane.org,
oneukum-l3A5Bk7waGM@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v6 7/8] usb: add usb_device_allow_power_off() and usb_device_prevent_power_off() function.
Date: Tue, 22 Jan 2013 22:23:12 +0800 [thread overview]
Message-ID: <50FEA0D0.6020106@intel.com> (raw)
In-Reply-To: <20130121213346.GE20083-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
On 2013/1/22 5:33, Greg KH wrote:
> On Mon, Jan 21, 2013 at 10:18:06PM +0800, Lan Tianyu wrote:
>> Some usb devices can't be resumed correctly after power off. This
>> patch is to add usb_device_allow_power_off() and usb_device_prevent_power_off()
>> for device's driver. Call pm_runtime_get_sync(portdev) to increase port's usage
>> count and then port will not be suspended. The device will not be powered off.
>>
>> Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
>> Signed-off-by: Lan Tianyu <tianyu.lan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>> ---
>> drivers/usb/core/port.c | 28 ++++++++++++++++++++++++++++
>> 1 file changed, 28 insertions(+)
>>
>> diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c
>> index 0c51d24..0334d91 100644
>> --- a/drivers/usb/core/port.c
>> +++ b/drivers/usb/core/port.c
>> @@ -18,11 +18,39 @@
>>
>> #include <linux/slab.h>
>> #include <linux/pm_qos.h>
>> +#include <linux/module.h>
>>
>> #include "hub.h"
>>
>> static const struct attribute_group *port_dev_group[];
>>
>> +/**
>> + * usb_device_control_power_off - Allow or prohibit power off device.
>> + * @udev: target usb device
>> + * @allow: choice of allow or prohibit
>> + *
>> + * Call pm_runtime_get/put_sync(portdev) to allow or prohibit target
>> + * usb device to be powered off in the kernel. The operations of setting
>> + * true and false should be couple. The default status is allowed.
>> + */
>> +int usb_device_control_power_off(struct usb_device *udev, bool allow)
>> +{
>> + struct usb_port *port_dev;
>> +
>> + if (!udev->parent)
>> + return -EINVAL;
>> +
>> + port_dev = hdev_to_hub(udev->parent)->ports[udev->portnum - 1];
>> +
>> + if (allow)
>> + pm_runtime_put_sync(&port_dev->dev);
>> + else
>> + pm_runtime_get_sync(&port_dev->dev);
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(usb_device_control_power_off);
>
> Oh, I don't see any code calling this function, so why did you add it?
>
> Who needs it? Where is that code?
This is provided for device driver. Some device may not be compatible
with the power off mechanism and driver can use these function to
forbid/allow it. But currently, we are not sure which kinds of device
they are. So just provide new interfaces.
>
> thanks,
>
> greg k-h
>
--
Best Regards
Tianyu Lan
linux kernel enabling team
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-01-22 14:23 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-21 14:17 [PATCH V6 0/8] usb: usb port power off mechanism and expose usb port connect type Lan Tianyu
2013-01-21 14:18 ` [PATCH v6 2/8] usb: Register usb port's acpi power resources Lan Tianyu
[not found] ` <1358777887-2656-3-git-send-email-tianyu.lan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-01-21 21:20 ` Greg KH
2013-01-22 3:11 ` Lan Tianyu
2013-01-21 14:18 ` [PATCH v6 3/8] PM/Qos: Expose dev_pm_qos_flags symbol Lan Tianyu
2013-01-21 14:18 ` [PATCH v6 4/8] usb: add runtime pm support for usb port device Lan Tianyu
[not found] ` <1358777887-2656-5-git-send-email-tianyu.lan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-01-21 21:24 ` Greg KH
2013-01-22 3:30 ` Lan Tianyu
[not found] ` <1358777887-2656-1-git-send-email-tianyu.lan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-01-21 14:18 ` [PATCH v6 1/8] USB: Set usb port's DeviceRemovable according acpi information Lan Tianyu
2013-01-21 14:18 ` [PATCH v6 5/8] usb: add usb port auto power off mechanism Lan Tianyu
2013-01-21 21:30 ` Greg KH
2013-01-21 14:18 ` [PATCH v6 8/8] usb: enable usb port device's async suspend Lan Tianyu
[not found] ` <1358777887-2656-9-git-send-email-tianyu.lan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-01-21 21:34 ` Greg KH
[not found] ` <20130121213418.GF20083-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-01-22 14:23 ` Lan Tianyu
2013-01-21 14:18 ` [PATCH v6 6/8] usb: expose usb port's pm qos flags to user space Lan Tianyu
2013-01-21 21:31 ` Greg KH
2013-01-22 13:50 ` Lan Tianyu
2013-01-21 14:18 ` [PATCH v6 7/8] usb: add usb_device_allow_power_off() and usb_device_prevent_power_off() function Lan Tianyu
[not found] ` <1358777887-2656-8-git-send-email-tianyu.lan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-01-21 21:33 ` Greg KH
2013-01-22 13:59 ` Lan Tianyu
2013-01-22 15:09 ` Alan Stern
2013-01-21 21:33 ` Greg KH
[not found] ` <20130121213346.GE20083-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-01-22 14:23 ` Lan Tianyu [this message]
[not found] ` <50FEA0D0.6020106-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-01-22 15:05 ` Greg KH
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=50FEA0D0.6020106@intel.com \
--to=tianyu.lan-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=lenb-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=oneukum-l3A5Bk7waGM@public.gmane.org \
--cc=rjw-KKrjLPT3xs0@public.gmane.org \
--cc=sarah.a.sharp-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox