From patchwork Thu Jul 7 22:21:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Boyd X-Patchwork-Id: 71645 Delivered-To: patch@linaro.org Received: by 10.140.28.4 with SMTP id 4csp126976qgy; Thu, 7 Jul 2016 15:24:19 -0700 (PDT) X-Received: by 10.66.49.102 with SMTP id t6mr4257349pan.45.1467930259239; Thu, 07 Jul 2016 15:24:19 -0700 (PDT) Return-Path: Received: from bombadil.infradead.org (bombadil.infradead.org. [2001:1868:205::9]) by mx.google.com with ESMTPS id ud9si113594pab.247.2016.07.07.15.24.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Jul 2016 15:24:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-arm-kernel-bounces+patch=linaro.org@lists.infradead.org designates 2001:1868:205::9 as permitted sender) client-ip=2001:1868:205::9; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-arm-kernel-bounces+patch=linaro.org@lists.infradead.org designates 2001:1868:205::9 as permitted sender) smtp.mailfrom=linux-arm-kernel-bounces+patch=linaro.org@lists.infradead.org; dmarc=fail (p=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bLHhO-0000PX-Ql; Thu, 07 Jul 2016 22:23:10 +0000 Received: from mail-pa0-x229.google.com ([2607:f8b0:400e:c03::229]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bLHg7-0007fH-R5 for linux-arm-kernel@lists.infradead.org; Thu, 07 Jul 2016 22:21:53 +0000 Received: by mail-pa0-x229.google.com with SMTP id b13so9533221pat.0 for ; Thu, 07 Jul 2016 15:21:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=43HfqOPXvyjWE+woEsGOWh12232+c6p/Leb/0Sr5UYI=; b=jHQIBEcw48nSNXoZKNvMew4lwD6AgS4OnyNFLEq4aC4uYr1yizPIReVALLHTtT2g/k SnAnolPVpma5poYx9JWryHWyzkPvA7qsKUV1AfBE5Uh5juW3AoS89o3iCHw9/0MI4lkB e/fIJVxlnnpRU9HnYXPcBdhA2+SvZtW0Pgko8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=43HfqOPXvyjWE+woEsGOWh12232+c6p/Leb/0Sr5UYI=; b=eVNxhR8Yd+bXq3z9aiz09soCQM6l7Jsgb3jGvnjR028ejEJBqr5FYO2biUs6YtY1w9 jXV2seuLZupKN/hA81fePC9KTuzteuWRc61cVrRhO2nq4px4sTtVItGojBxZUJ8ADaY+ mXLR66h6541LFqy8TfjzGx9fxGOOoDs8PsEbdfYChzwGRGr+4yYYHiezJyvYQ8cBFXAF bsO1j4JCbtz6ujEsVcHRRA94/1zwwlpKGSucK+bjEb6+HWHQjqLokhdhln/3nNTJgGcL z/OTcnhB1y1z9y35uaZ+8Yb9O96V+g3OWp294xBcITwLH1NlpuTePVKKV3zsXLEqUqbX Jl8Q== X-Gm-Message-State: ALyK8tIr7J1HXKt8byPAUmzG1rVAvxhF4U6Mre8/z9saUcY5tyckQubG9vNr5CTLhaAE+9oz X-Received: by 10.66.85.197 with SMTP id j5mr4226258paz.87.1467930091150; Thu, 07 Jul 2016 15:21:31 -0700 (PDT) Received: from localhost.localdomain (ip68-101-172-78.sd.sd.cox.net. [68.101.172.78]) by smtp.gmail.com with ESMTPSA id j8sm6781807paj.22.2016.07.07.15.21.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 07 Jul 2016 15:21:30 -0700 (PDT) From: Stephen Boyd To: linux-usb@vger.kernel.org Subject: [PATCH v2 09/22] usb: chipidea: Kick OTG state machine for AVVIS with vbus extcon Date: Thu, 7 Jul 2016 15:21:00 -0700 Message-Id: <20160707222114.1673-10-stephen.boyd@linaro.org> X-Mailer: git-send-email 2.9.0.rc2.8.ga28705d In-Reply-To: <20160707222114.1673-1-stephen.boyd@linaro.org> References: <20160707222114.1673-1-stephen.boyd@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160707_152152_060322_DFB67BDA X-CRM114-Status: GOOD ( 14.63 ) X-Spam-Score: -2.7 (--) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-2.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [2607:f8b0:400e:c03:0:0:0:229 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Felipe Balbi , Arnd Bergmann , Neil Armstrong , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Bjorn Andersson , Peter Chen , Greg Kroah-Hartman , Andy Gross , linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patch=linaro.org@lists.infradead.org Force the OTG state machine to go forward when we're using an extcon for vbus detection. In this case, the controller may never raise an interrupt for AVVIS, so we need to simulate the event by toggling the appropriate OTG fsm bits and kicking the state machine again. Cc: Peter Chen Cc: Greg Kroah-Hartman Signed-off-by: Stephen Boyd --- I think this was rejected last time around but I've kept it in the series to continue discussion on how we're supposed to be emulating vbus an id pin interrupts and the otgsc register. drivers/usb/chipidea/otg_fsm.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) -- 2.9.0.rc2.8.ga28705d _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c index de8e22ec3902..aab076fc4d82 100644 --- a/drivers/usb/chipidea/otg_fsm.c +++ b/drivers/usb/chipidea/otg_fsm.c @@ -475,6 +475,14 @@ static void ci_otg_drv_vbus(struct otg_fsm *fsm, int on) return; } } + /* + * Force state machine forward if we use extcon + * to detect vbus state (i.e. simulate AVVIS event) + */ + if (!IS_ERR(ci->platdata->vbus_extcon.edev)) { + fsm->a_vbus_vld = 1; + ci_otg_queue_work(ci); + } /* Disable data pulse irq */ hw_write_otgsc(ci, OTGSC_DPIE, 0); @@ -486,6 +494,15 @@ static void ci_otg_drv_vbus(struct otg_fsm *fsm, int on) fsm->a_bus_drop = 1; fsm->a_bus_req = 0; + /* + * Force state machine forward if we use extcon + * to detect vbus state (i.e. simulate AVVIS event) + */ + if (!IS_ERR(ci->platdata->vbus_extcon.edev)) { + fsm->a_vbus_vld = 0; + fsm->b_conn = 0; + ci_otg_queue_work(ci); + } } }