All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Peter Chen <peter.chen@nxp.com>,
	Stephen Boyd <stephen.boyd@linaro.org>,
	Sasha Levin <alexander.levin@verizon.com>
Subject: [PATCH 4.4 26/50] usb: chipidea: vbus event may exist before starting gadget
Date: Fri,  6 Oct 2017 10:53:14 +0200	[thread overview]
Message-ID: <20171006083709.297128421@linuxfoundation.org> (raw)
In-Reply-To: <20171006083705.157012217@linuxfoundation.org>

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Peter Chen <peter.chen@nxp.com>


[ Upstream commit c3b674a04b8ab62a1d35e86714d466af0a0ecc18 ]

At some situations, the vbus may already be there before starting
gadget. So we need to check vbus event after switching to gadget in
order to handle missing vbus event. The typical use cases are plugging
vbus cable before driver load or the vbus has already been there
after stopping host but before starting gadget.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
Tested-by: Stephen Boyd <stephen.boyd@linaro.org>
Reported-by: Stephen Boyd <stephen.boyd@linaro.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/chipidea/otg.c |   17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

--- a/drivers/usb/chipidea/otg.c
+++ b/drivers/usb/chipidea/otg.c
@@ -134,9 +134,9 @@ void ci_handle_vbus_change(struct ci_hdr
 	if (!ci->is_otg)
 		return;
 
-	if (hw_read_otgsc(ci, OTGSC_BSV))
+	if (hw_read_otgsc(ci, OTGSC_BSV) && !ci->vbus_active)
 		usb_gadget_vbus_connect(&ci->gadget);
-	else
+	else if (!hw_read_otgsc(ci, OTGSC_BSV) && ci->vbus_active)
 		usb_gadget_vbus_disconnect(&ci->gadget);
 }
 
@@ -175,14 +175,21 @@ static void ci_handle_id_switch(struct c
 
 		ci_role_stop(ci);
 
-		if (role == CI_ROLE_GADGET)
+		if (role == CI_ROLE_GADGET &&
+				IS_ERR(ci->platdata->vbus_extcon.edev))
 			/*
-			 * wait vbus lower than OTGSC_BSV before connecting
-			 * to host
+			 * Wait vbus lower than OTGSC_BSV before connecting
+			 * to host. If connecting status is from an external
+			 * connector instead of register, we don't need to
+			 * care vbus on the board, since it will not affect
+			 * external connector status.
 			 */
 			hw_wait_vbus_lower_bsv(ci);
 
 		ci_role_start(ci, role);
+		/* vbus change may have already occurred */
+		if (role == CI_ROLE_GADGET)
+			ci_handle_vbus_change(ci);
 	}
 }
 /**

  parent reply	other threads:[~2017-10-06  8:57 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-06  8:52 [PATCH 4.4 00/50] 4.4.91-stable review Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 01/50] drm_fourcc: Fix DRM_FORMAT_MOD_LINEAR #define Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 02/50] drm: bridge: add DT bindings for TI ths8135 Greg Kroah-Hartman
2017-10-16 19:05   ` Ben Hutchings
2017-10-19  9:37     ` Greg Kroah-Hartman
2017-10-19  9:37       ` Greg Kroah-Hartman
2017-10-19 15:32       ` Levin, Alexander (Sasha Levin)
2017-10-31  9:50         ` Greg Kroah-Hartman
2017-10-31  9:50           ` Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 03/50] GFS2: Fix reference to ERR_PTR in gfs2_glock_iter_next Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 04/50] RDS: RDMA: Fix the composite message user notification Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 05/50] ARM: dts: r8a7790: Use R-Car Gen 2 fallback binding for msiof nodes Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 06/50] MIPS: Ensure bss section ends on a long-aligned address Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 07/50] MIPS: ralink: Fix incorrect assignment on ralink_soc Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 08/50] igb: re-assign hw address pointer on reset after PCI error Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 09/50] extcon: axp288: Use vbus-valid instead of -present to determine cable presence Greg Kroah-Hartman
2017-10-06  8:52 ` [PATCH 4.4 11/50] hwmon: (gl520sm) Fix overflows and crash seen when writing into limit attributes Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 12/50] iio: adc: axp288: Drop bogus AXP288_ADC_TS_PIN_CTRL register modifications Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 13/50] iio: adc: hx711: Add DT binding for avia,hx711 Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 14/50] ARM: 8635/1: nommu: allow enabling REMAP_VECTORS_TO_RAM Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 15/50] tty: goldfish: Fix a parameter of a call to free_irq Greg Kroah-Hartman
2017-10-16 19:46   ` Ben Hutchings
2017-10-19  9:38     ` Greg Kroah-Hartman
2017-10-19  9:38       ` Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 16/50] IB/ipoib: Fix deadlock over vlan_mutex Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 17/50] IB/ipoib: rtnl_unlock can not come after free_netdev Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 18/50] IB/ipoib: Replace list_del of the neigh->list with list_del_init Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 19/50] drm/amdkfd: fix improper return value on error Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 20/50] USB: serial: mos7720: fix control-message error handling Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 21/50] USB: serial: mos7840: " Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 22/50] pinctrl: mvebu: Use seq_puts() in mvebu_pinconf_group_dbg_show() Greg Kroah-Hartman
2017-10-06  9:09   ` Joe Perches
2017-10-06  9:20     ` Greg Kroah-Hartman
2017-10-06 14:16       ` Levin, Alexander (Sasha Levin)
2017-10-06  8:53 ` [PATCH 4.4 23/50] partitions/efi: Fix integer overflow in GPT size calculation Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 24/50] ASoC: dapm: handle probe deferrals Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 25/50] audit: log 32-bit socketcalls Greg Kroah-Hartman
2017-10-06  8:53 ` Greg Kroah-Hartman [this message]
2017-10-06  8:53 ` [PATCH 4.4 27/50] ASoC: dapm: fix some pointer error handling Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 28/50] MIPS: Lantiq: Fix another request_mem_region() return code check Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 29/50] net: core: Prevent from dereferencing null pointer when releasing SKB Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 30/50] net/packet: check length in getsockopt() called with PACKET_HDRLEN Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 31/50] team: fix memory leaks Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 33/50] mmc: sdio: fix alignment issue in struct sdio_func Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 34/50] bridge: netlink: register netdevice before executing changelink Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 35/50] netfilter: invoke synchronize_rcu after set the _hook_ to NULL Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 36/50] MIPS: IRQ Stack: Unwind IRQ stack onto task stack Greg Kroah-Hartman
2017-10-16 21:28   ` Ben Hutchings
2017-10-17  7:18     ` Matt Redfearn
2017-10-17  7:18       ` Matt Redfearn
2017-10-19  9:36       ` Greg Kroah-Hartman
2017-10-19  9:36         ` Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 37/50] [media] exynos-gsc: Do not swap cb/cr for semi planar formats Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 38/50] netfilter: nfnl_cthelper: fix incorrect helper->expect_class_max Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 39/50] parisc: perf: Fix potential NULL pointer dereference Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 40/50] iommu/io-pgtable-arm: Check for leaf entry before dereferencing it Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 41/50] rds: ib: add error handle Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 42/50] md/raid10: submit bio directly to replacement disk Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 43/50] i2c: meson: fix wrong variable usage in meson_i2c_put_data Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 44/50] xfs: remove kmem_zalloc_greedy Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 45/50] libata: transport: Remove circular dependency at free time Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 46/50] drivers: firmware: psci: drop duplicate const from psci_of_match Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 47/50] IB/qib: fix false-postive maybe-uninitialized warning Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 49/50] ALSA: au88x0: avoid theoretical uninitialized access Greg Kroah-Hartman
2017-10-06  8:53 ` [PATCH 4.4 50/50] [media] ttpci: address stringop overflow warning Greg Kroah-Hartman
2017-10-06 14:04 ` [PATCH 4.4 00/50] 4.4.91-stable review Guenter Roeck
2017-10-07 10:07   ` Greg Kroah-Hartman
2017-10-06 17:50 ` Shuah Khan
2017-10-07 16:56 ` Tom Gall
2017-10-07 16:56   ` Tom Gall

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=20171006083709.297128421@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@verizon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peter.chen@nxp.com \
    --cc=stable@vger.kernel.org \
    --cc=stephen.boyd@linaro.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 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.