Re: [PATCH v9 09/19] usb: make usb_port flags atomic, rename did_runtime_put to child_usage

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

 



On Wed, 7 May 2014, Dan Williams wrote:

> We want to manipulate ->did_runtime_put in usb_port_runtime_resume(),
> but we don't want that to collide with other updates.  Move usb_port
> flags to new port-bitmap fields in usb_hub. "did_runtime_put" is renamed
> "child_usage_bits" to reflect that it is strictly standing in for the
> fact that usb_devices are not the device_model children of their parent
> port.
> 
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>


> @@ -4628,8 +4628,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
>  		spin_lock_irq(&device_state_lock);
>  		if (hdev->state == USB_STATE_NOTATTACHED)
>  			status = -ENOTCONN;
> -		else
> +		else {
>  			port_dev->child = udev;
> +			set_bit(port1, hub->child_usage_bits);
> +		}

Doesn't this line belong in usb_new_device(), next to the
pm_runtime_get_sync(&port_dev->dev) line?  Or maybe does that line
belong here?

>  		spin_unlock_irq(&device_state_lock);
>  		mutex_unlock(&usb_port_peer_mutex);
>  
> diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h
> index 048c797f394c..b3432deb8355 100644
> --- a/drivers/usb/core/hub.h
> +++ b/drivers/usb/core/hub.h
> @@ -51,6 +51,10 @@ struct usb_hub {
>  							device present */
>  	unsigned long		wakeup_bits[1];	/* ports that have signaled
>  							remote wakeup */
> +	unsigned long		power_bits[1]; /* ports that are powered */
> +	unsigned long		child_usage_bits[1]; /* child pm_runtime
> +							active */

I'd say rather /* ports powered on for children */

Alan Stern

--
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