From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 951122136C; Mon, 13 Nov 2023 15:39:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="h+pKxhhp" Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2F97C2; Mon, 13 Nov 2023 07:39:20 -0800 (PST) Received: by mail.gandi.net (Postfix) with ESMTPSA id A665E1BF205; Mon, 13 Nov 2023 15:39:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699889959; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u9MG5uzj9KQUsOrxENnxvvEipektRY8PwOqU1a1sxvk=; b=h+pKxhhp1kqlFBkKKeFOsot3Jc+zUn/nlEFFWqEDlvHPcjtwahibUEAswn7zXe4hcGw8Sk w5xONfMo8ugmcpJwE3Gw/L0dWz/D/1LfSI2tdeC6KZUFLf1Q9RV9wwyyvu0uo9mzp7EW/2 r8bLenTiq9QDk03wLryYQkAxHwzlZdMMsDEK57EM1RYL1AVzuf6fq7ilsXrjU8dxdbkILK LWmHeeXv945ljH7MmJyzKv+ykSBPZ0V2fgLU4BOhU2bqqEH0Klv4qozh8ovDTk7BGA+Si1 rA4xMoo1nFE+CgAXxnl6DdAdximE7BqZRfHJLhevYE/Ygc1PUEMQdeDowLKknw== From: Gregory CLEMENT To: =?utf-8?Q?Th=C3=A9o?= Lebrun , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?Q?Th=C3=A9o?= Lebrun Subject: Re: [PATCH 3/6] usb: cdns3-ti: add suspend/resume procedures for J7200 In-Reply-To: <20231113-j7200-usb-suspend-v1-3-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> <20231113-j7200-usb-suspend-v1-3-ad1ee714835c@bootlin.com> Date: Mon, 13 Nov 2023 16:39:17 +0100 Message-ID: <87zfzh64t6.fsf@BL-laptop> Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: gregory.clement@bootlin.com Hello Th=C3=A9o, > Hardware initialisation is only done at probe. The J7200 USB controller > is reset at resume because of power-domains toggling off & on. We > therefore (1) toggle PM runtime at suspend/resume & (2) reconfigure the > hardware at resume. > > Reuse the newly extracted cdns_ti_init_hw() function that contains the > register write sequence. > > We guard this behavior based on compatible to avoid modifying the > current behavior on other platforms. If the controller does not reset > we do not want to touch PM runtime & do not want to redo reg writes. > > Signed-off-by: Th=C3=A9o Lebrun > --- > drivers/usb/cdns3/cdns3-ti.c | 48 ++++++++++++++++++++++++++++++++++++++= +++++- > 1 file changed, 47 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c > index c331bcd2faeb..50b38c4b9c87 100644 > --- a/drivers/usb/cdns3/cdns3-ti.c > +++ b/drivers/usb/cdns3/cdns3-ti.c > @@ -197,6 +197,50 @@ static int cdns_ti_probe(struct platform_device *pde= v) > return error; > } >=20=20 > +#ifdef CONFIG_PM > + > +static int cdns_ti_suspend(struct device *dev) > +{ > + struct cdns_ti *data =3D dev_get_drvdata(dev); > + > + if (!of_device_is_compatible(dev_of_node(dev), "ti,j7200-usb")) > + return 0; Just a small remark: What about adding a boolean in the cdns_ti struct for taking care of it ? Then you will go through the device tree only during probe. Moreover if this behaviour is needed for more compatible we can just add them in the probe too. Besides this you still can add my Reviewed-by: Gregory CLEMENT Thanks, Gregory > + > + pm_runtime_put_sync(data->dev); > + > + return 0; > +} > + > +static int cdns_ti_resume(struct device *dev) > +{ > + struct cdns_ti *data =3D dev_get_drvdata(dev); > + int ret; > + > + if (!of_device_is_compatible(dev_of_node(dev), "ti,j7200-usb")) > + return 0; > + > + ret =3D pm_runtime_get_sync(dev); > + if (ret < 0) { > + dev_err(dev, "pm_runtime_get_sync failed: %d\n", ret); > + goto err; > + } > + > + cdns_ti_init_hw(data); > + > + return 0; > + > +err: > + pm_runtime_put_sync(data->dev); > + pm_runtime_disable(data->dev); > + return ret; > +} > + > +static const struct dev_pm_ops cdns_ti_pm_ops =3D { > + SET_SYSTEM_SLEEP_PM_OPS(cdns_ti_suspend, cdns_ti_resume) > +}; > + > +#endif /* CONFIG_PM */ > + > static int cdns_ti_remove_core(struct device *dev, void *c) > { > struct platform_device *pdev =3D to_platform_device(dev); > @@ -218,6 +262,7 @@ static void cdns_ti_remove(struct platform_device *pd= ev) > } >=20=20 > static const struct of_device_id cdns_ti_of_match[] =3D { > + { .compatible =3D "ti,j7200-usb", }, > { .compatible =3D "ti,j721e-usb", }, > { .compatible =3D "ti,am64-usb", }, > {}, > @@ -228,8 +273,9 @@ static struct platform_driver cdns_ti_driver =3D { > .probe =3D cdns_ti_probe, > .remove_new =3D cdns_ti_remove, > .driver =3D { > - .name =3D "cdns3-ti", > + .name =3D "cdns3-ti", > .of_match_table =3D cdns_ti_of_match, > + .pm =3D pm_ptr(&cdns_ti_pm_ops), > }, > }; >=20=20 > > --=20 > 2.41.0 > > --=20 Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 785AFC4167B for ; Mon, 13 Nov 2023 15:39:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=dPaJ6PW/snpnzpoZ7derfNJs1o5XRNN6JfdOBsSC3Ls=; b=TRa80CqK7aYBxQ DfcXjMVQOfPp94TEdyPcggpbqGvJJ3k2oNgP5TW/SiAK2nSltvW1Mc2oot5+t5hYSav+JrNzwhL/x YnLxgLiwlMOFADiRReXSOg9iAFxBscLnOl5YKW7K2BoomAkZKfFPRQz/caWNYyhlJxzUdgsCfZXmi HcsEO53yX1Mm1QWKhYfaCFQKxv11qxPaiqwvqT0gYGzt2gidlh5WhJFNR0AaCec6S6tbdjcwju8qu n3ZxW7n+tCB1ZqmCjIz7dKSBMB3IABs0h6qf0r1FaCOiG2ln6JjsOInFY+8jcnJEfU4qXu6hCMF8V o3c2f7/l5AmHjY1PDWOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2Z28-00EFom-2B; Mon, 13 Nov 2023 15:39:28 +0000 Received: from relay8-d.mail.gandi.net ([217.70.183.201]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2Z25-00EFn9-2Z for linux-arm-kernel@lists.infradead.org; Mon, 13 Nov 2023 15:39:27 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id A665E1BF205; Mon, 13 Nov 2023 15:39:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1699889959; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u9MG5uzj9KQUsOrxENnxvvEipektRY8PwOqU1a1sxvk=; b=h+pKxhhp1kqlFBkKKeFOsot3Jc+zUn/nlEFFWqEDlvHPcjtwahibUEAswn7zXe4hcGw8Sk w5xONfMo8ugmcpJwE3Gw/L0dWz/D/1LfSI2tdeC6KZUFLf1Q9RV9wwyyvu0uo9mzp7EW/2 r8bLenTiq9QDk03wLryYQkAxHwzlZdMMsDEK57EM1RYL1AVzuf6fq7ilsXrjU8dxdbkILK LWmHeeXv945ljH7MmJyzKv+ykSBPZ0V2fgLU4BOhU2bqqEH0Klv4qozh8ovDTk7BGA+Si1 rA4xMoo1nFE+CgAXxnl6DdAdximE7BqZRfHJLhevYE/Ygc1PUEMQdeDowLKknw== From: Gregory CLEMENT To: =?utf-8?Q?Th=C3=A9o?= Lebrun , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Roger Quadros , Peter Chen , Pawel Laszczak , Nishanth Menon , Vignesh Raghavendra , Tero Kristo Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?utf-8?Q?Th=C3=A9o?= Lebrun Subject: Re: [PATCH 3/6] usb: cdns3-ti: add suspend/resume procedures for J7200 In-Reply-To: <20231113-j7200-usb-suspend-v1-3-ad1ee714835c@bootlin.com> References: <20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com> <20231113-j7200-usb-suspend-v1-3-ad1ee714835c@bootlin.com> Date: Mon, 13 Nov 2023 16:39:17 +0100 Message-ID: <87zfzh64t6.fsf@BL-laptop> MIME-Version: 1.0 X-GND-Sasl: gregory.clement@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231113_073926_125160_92A6FD72 X-CRM114-Status: GOOD ( 26.79 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGVsbG8gVGjDqW8sCgo+IEhhcmR3YXJlIGluaXRpYWxpc2F0aW9uIGlzIG9ubHkgZG9uZSBhdCBw cm9iZS4gVGhlIEo3MjAwIFVTQiBjb250cm9sbGVyCj4gaXMgcmVzZXQgYXQgcmVzdW1lIGJlY2F1 c2Ugb2YgcG93ZXItZG9tYWlucyB0b2dnbGluZyBvZmYgJiBvbi4gV2UKPiB0aGVyZWZvcmUgKDEp IHRvZ2dsZSBQTSBydW50aW1lIGF0IHN1c3BlbmQvcmVzdW1lICYgKDIpIHJlY29uZmlndXJlIHRo ZQo+IGhhcmR3YXJlIGF0IHJlc3VtZS4KPgo+IFJldXNlIHRoZSBuZXdseSBleHRyYWN0ZWQgY2Ru c190aV9pbml0X2h3KCkgZnVuY3Rpb24gdGhhdCBjb250YWlucyB0aGUKPiByZWdpc3RlciB3cml0 ZSBzZXF1ZW5jZS4KPgo+IFdlIGd1YXJkIHRoaXMgYmVoYXZpb3IgYmFzZWQgb24gY29tcGF0aWJs ZSB0byBhdm9pZCBtb2RpZnlpbmcgdGhlCj4gY3VycmVudCBiZWhhdmlvciBvbiBvdGhlciBwbGF0 Zm9ybXMuIElmIHRoZSBjb250cm9sbGVyIGRvZXMgbm90IHJlc2V0Cj4gd2UgZG8gbm90IHdhbnQg dG8gdG91Y2ggUE0gcnVudGltZSAmIGRvIG5vdCB3YW50IHRvIHJlZG8gcmVnIHdyaXRlcy4KPgo+ IFNpZ25lZC1vZmYtYnk6IFRow6lvIExlYnJ1biA8dGhlby5sZWJydW5AYm9vdGxpbi5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvdXNiL2NkbnMzL2NkbnMzLXRpLmMgfCA0OCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICAxIGZpbGUgY2hhbmdlZCwgNDcgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NkbnMz L2NkbnMzLXRpLmMgYi9kcml2ZXJzL3VzYi9jZG5zMy9jZG5zMy10aS5jCj4gaW5kZXggYzMzMWJj ZDJmYWViLi41MGIzOGM0YjljODcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvY2RuczMvY2Ru czMtdGkuYwo+ICsrKyBiL2RyaXZlcnMvdXNiL2NkbnMzL2NkbnMzLXRpLmMKPiBAQCAtMTk3LDYg KzE5Nyw1MCBAQCBzdGF0aWMgaW50IGNkbnNfdGlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiAgCXJldHVybiBlcnJvcjsKPiAgfQo+ICAKPiArI2lmZGVmIENPTkZJR19QTQo+ ICsKPiArc3RhdGljIGludCBjZG5zX3RpX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7 Cj4gKwlzdHJ1Y3QgY2Ruc190aSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiAr CWlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoZGV2X29mX25vZGUoZGV2KSwgInRpLGo3MjAw LXVzYiIpKQo+ICsJCXJldHVybiAwOwoKSnVzdCBhIHNtYWxsIHJlbWFyazoKCldoYXQgYWJvdXQg YWRkaW5nIGEgYm9vbGVhbiBpbiB0aGUgY2Ruc190aSBzdHJ1Y3QgZm9yIHRha2luZyBjYXJlIG9m Cml0ID8gVGhlbiB5b3Ugd2lsbCBnbyB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZSBvbmx5IGR1cmlu ZyBwcm9iZS4gTW9yZW92ZXIKaWYgdGhpcyBiZWhhdmlvdXIgaXMgbmVlZGVkIGZvciBtb3JlIGNv bXBhdGlibGUgd2UgY2FuIGp1c3QgYWRkIHRoZW0gaW4KdGhlIHByb2JlIHRvby4KCkJlc2lkZXMg dGhpcyB5b3Ugc3RpbGwgY2FuIGFkZCBteQoKUmV2aWV3ZWQtYnk6IEdyZWdvcnkgQ0xFTUVOVCA8 Z3JlZ29yeS5jbGVtZW50QGJvb3RsaW4uY29tPgoKVGhhbmtzLAoKR3JlZ29yeQoKPiArCj4gKwlw bV9ydW50aW1lX3B1dF9zeW5jKGRhdGEtPmRldik7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgY2Ruc190aV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4g KwlzdHJ1Y3QgY2Ruc190aSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsJaW50IHJl dDsKPiArCj4gKwlpZiAoIW9mX2RldmljZV9pc19jb21wYXRpYmxlKGRldl9vZl9ub2RlKGRldiks ICJ0aSxqNzIwMC11c2IiKSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlyZXQgPSBwbV9ydW50aW1l X2dldF9zeW5jKGRldik7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCWRldl9lcnIoZGV2LCAicG1f cnVudGltZV9nZXRfc3luYyBmYWlsZWQ6ICVkXG4iLCByZXQpOwo+ICsJCWdvdG8gZXJyOwo+ICsJ fQo+ICsKPiArCWNkbnNfdGlfaW5pdF9odyhkYXRhKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4g K2VycjoKPiArCXBtX3J1bnRpbWVfcHV0X3N5bmMoZGF0YS0+ZGV2KTsKPiArCXBtX3J1bnRpbWVf ZGlzYWJsZShkYXRhLT5kZXYpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGNv bnN0IHN0cnVjdCBkZXZfcG1fb3BzIGNkbnNfdGlfcG1fb3BzID0gewo+ICsJU0VUX1NZU1RFTV9T TEVFUF9QTV9PUFMoY2Ruc190aV9zdXNwZW5kLCBjZG5zX3RpX3Jlc3VtZSkKPiArfTsKPiArCj4g KyNlbmRpZiAvKiBDT05GSUdfUE0gKi8KPiArCj4gIHN0YXRpYyBpbnQgY2Ruc190aV9yZW1vdmVf Y29yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmMpCj4gIHsKPiAgCXN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsKPiBAQCAtMjE4LDYgKzI2 Miw3IEBAIHN0YXRpYyB2b2lkIGNkbnNfdGlfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGNkbnNf dGlfb2ZfbWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAidGksajcyMDAtdXNiIiwgfSwK PiAgCXsgLmNvbXBhdGlibGUgPSAidGksajcyMWUtdXNiIiwgfSwKPiAgCXsgLmNvbXBhdGlibGUg PSAidGksYW02NC11c2IiLCB9LAo+ICAJe30sCj4gQEAgLTIyOCw4ICsyNzMsOSBAQCBzdGF0aWMg c3RydWN0IHBsYXRmb3JtX2RyaXZlciBjZG5zX3RpX2RyaXZlciA9IHsKPiAgCS5wcm9iZQkJPSBj ZG5zX3RpX3Byb2JlLAo+ICAJLnJlbW92ZV9uZXcJPSBjZG5zX3RpX3JlbW92ZSwKPiAgCS5kcml2 ZXIJCT0gewo+IC0JCS5uYW1lCT0gImNkbnMzLXRpIiwKPiArCQkubmFtZQkJPSAiY2RuczMtdGki LAo+ICAJCS5vZl9tYXRjaF90YWJsZQk9IGNkbnNfdGlfb2ZfbWF0Y2gsCj4gKwkJLnBtCQk9IHBt X3B0cigmY2Ruc190aV9wbV9vcHMpLAo+ICAJfSwKPiAgfTsKPiAgCj4KPiAtLSAKPiAyLjQxLjAK Pgo+CgotLSAKR3JlZ29yeSBDbGVtZW50LCBCb290bGluCkVtYmVkZGVkIExpbnV4IGFuZCBLZXJu ZWwgZW5naW5lZXJpbmcKaHR0cDovL2Jvb3RsaW4uY29tCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==