All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: Dennis Wassenberg <dennis.wassenberg@secunet.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Ravi Chandra Sadineni <ravisadineni@chromium.org>,
	Kuppuswamy Sathyanarayanan
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	Bin Liu <b-liu@ti.com>,
	Maxim Moseychuk <franchesko.salias.hudro.pedros@gmail.com>,
	Mike Looijmans <mike.looijmans@topic.nl>,
	Dominik Bozek <dominikx.bozek@intel.com>,
	USB list <linux-usb@vger.kernel.org>,
	Kernel development list <linux-kernel@vger.kernel.org>
Subject: usb: core: Fix hub port connection events lost
Date: Tue, 13 Nov 2018 15:55:33 +0200	[thread overview]
Message-ID: <1573e062-d095-a8d0-5b1b-e2364ad0729b@linux.intel.com> (raw)

On 13.11.2018 15:40, Dennis Wassenberg wrote:
> This will clear the USB_PORT_FEAT_C_CONNECTION bit in case of a hub port reset
> only if a device is was attached to the hub port before resetting the hub port.
> 
> Using a Lenovo T480s attached to the ultra dock it was not possible to detect
> some usb-c devices at the dock usb-c ports because the hub_port_reset code
> will clear the USB_PORT_FEAT_C_CONNECTION bit after the actual hub port reset.
> Using this device combo the USB_PORT_FEAT_C_CONNECTION bit was set between the
> actual hub port reset and the clear of the USB_PORT_FEAT_C_CONNECTION bit.
> This ends up with clearing the USB_PORT_FEAT_C_CONNECTION bit after the
> new device was attached such that it was not detected.
> 
> This patch will not clear the USB_PORT_FEAT_C_CONNECTION bit if there is
> currently no device attached to the port before the hub port reset.
> This will avoid clearing the connection bit for new attached devices.
> 
> Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com>
> ---
>   drivers/usb/core/hub.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index c6077d582d29..2731fad6f659 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -2849,7 +2849,9 @@ static int hub_port_reset(struct usb_hub *hub, int port1,
>   					USB_PORT_FEAT_C_BH_PORT_RESET);
>   			usb_clear_port_feature(hub->hdev, port1,
>   					USB_PORT_FEAT_C_PORT_LINK_STATE);
> -			usb_clear_port_feature(hub->hdev, port1,
> +
> +			if (udev)
> +				usb_clear_port_feature(hub->hdev, port1,
>   					USB_PORT_FEAT_C_CONNECTION);
>   
>   			/*
> 

Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>

WARNING: multiple messages have this Message-ID (diff)
From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: Dennis Wassenberg <dennis.wassenberg@secunet.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Ravi Chandra Sadineni <ravisadineni@chromium.org>,
	Kuppuswamy Sathyanarayanan 
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	Bin Liu <b-liu@ti.com>,
	Maxim Moseychuk <franchesko.salias.hudro.pedros@gmail.com>,
	Mike Looijmans <mike.looijmans@topic.nl>,
	Dominik Bozek <dominikx.bozek@intel.com>,
	USB list <linux-usb@vger.kernel.org>,
	Kernel development list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] usb: core: Fix hub port connection events lost
Date: Tue, 13 Nov 2018 15:55:33 +0200	[thread overview]
Message-ID: <1573e062-d095-a8d0-5b1b-e2364ad0729b@linux.intel.com> (raw)
In-Reply-To: <414018c4-60ed-279f-f77e-b31f4813a540@secunet.com>

On 13.11.2018 15:40, Dennis Wassenberg wrote:
> This will clear the USB_PORT_FEAT_C_CONNECTION bit in case of a hub port reset
> only if a device is was attached to the hub port before resetting the hub port.
> 
> Using a Lenovo T480s attached to the ultra dock it was not possible to detect
> some usb-c devices at the dock usb-c ports because the hub_port_reset code
> will clear the USB_PORT_FEAT_C_CONNECTION bit after the actual hub port reset.
> Using this device combo the USB_PORT_FEAT_C_CONNECTION bit was set between the
> actual hub port reset and the clear of the USB_PORT_FEAT_C_CONNECTION bit.
> This ends up with clearing the USB_PORT_FEAT_C_CONNECTION bit after the
> new device was attached such that it was not detected.
> 
> This patch will not clear the USB_PORT_FEAT_C_CONNECTION bit if there is
> currently no device attached to the port before the hub port reset.
> This will avoid clearing the connection bit for new attached devices.
> 
> Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com>
> ---
>   drivers/usb/core/hub.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index c6077d582d29..2731fad6f659 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -2849,7 +2849,9 @@ static int hub_port_reset(struct usb_hub *hub, int port1,
>   					USB_PORT_FEAT_C_BH_PORT_RESET);
>   			usb_clear_port_feature(hub->hdev, port1,
>   					USB_PORT_FEAT_C_PORT_LINK_STATE);
> -			usb_clear_port_feature(hub->hdev, port1,
> +
> +			if (udev)
> +				usb_clear_port_feature(hub->hdev, port1,
>   					USB_PORT_FEAT_C_CONNECTION);
>   
>   			/*
> 

Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>

             reply	other threads:[~2018-11-13 13:55 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-13 13:55 Mathias Nyman [this message]
2018-11-13 13:55 ` [PATCH] usb: core: Fix hub port connection events lost Mathias Nyman
  -- strict thread matches above, loose matches on Subject: below --
2018-11-13 13:40 Dennis Wassenberg
2018-11-13 13:40 ` [PATCH] " Dennis Wassenberg
2018-11-13 13:38 USB-C device hotplug issue Dennis Wassenberg
2018-11-13 13:38 ` Dennis Wassenberg
2018-11-09 13:47 Mathias Nyman
2018-11-09 13:47 ` Mathias Nyman
2018-11-07  9:08 Dennis Wassenberg
2018-11-07  9:08 ` Dennis Wassenberg
2018-11-05 15:35 Mathias Nyman
2018-11-05 15:35 ` Mathias Nyman
2018-10-26 14:07 Alan Stern
2018-10-26 14:07 ` Alan Stern
2018-10-26  9:44 Dennis Wassenberg
2018-10-26  9:44 ` Dennis Wassenberg
2018-10-25 14:46 Alan Stern
2018-10-25 14:46 ` Alan Stern
2018-10-25 12:38 Dennis Wassenberg
2018-10-25 12:38 ` Dennis Wassenberg
2018-10-25 12:28 Greg Kroah-Hartman
2018-10-25 12:28 ` Greg Kroah-Hartman
2018-10-25 12:20 Dennis Wassenberg
2018-10-25 12:20 ` Dennis Wassenberg

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=1573e062-d095-a8d0-5b1b-e2364ad0729b@linux.intel.com \
    --to=mathias.nyman@linux.intel.com \
    --cc=b-liu@ti.com \
    --cc=dennis.wassenberg@secunet.com \
    --cc=dominikx.bozek@intel.com \
    --cc=franchesko.salias.hudro.pedros@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=mike.looijmans@topic.nl \
    --cc=ravisadineni@chromium.org \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --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.