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 X-Spam-Level: X-Spam-Status: No, score=-11.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54449C388F7 for ; Sat, 7 Nov 2020 09:09:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 101F3208E4 for ; Sat, 7 Nov 2020 09:09:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="rWbKmN2q" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728360AbgKGJJ4 (ORCPT ); Sat, 7 Nov 2020 04:09:56 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:49577 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727973AbgKGJJz (ORCPT ); Sat, 7 Nov 2020 04:09:55 -0500 X-UUID: 4c10f6f62e784f0f9a69b20474108dcf-20201107 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=DLmHKhdRR/VJKHOqoZljcarIlMnzrJ2krXQMqsv1Zb4=; b=rWbKmN2q5wGtSK8HcFo8PvRMUewE/9TXmxpkg991c1K8wQWvvCTP0Z4KzPASirLnh/Ij1J9Nm5RZ1Jv7VhRo7zx7U8QTLKC5IjWeTGBOmpQeG7Ba/WhZYyY3J3uuXOEREZql6fz9SEYMj/Hup1r3Crp1LMdCiZwAcz1F+2ROI1w=; X-UUID: 4c10f6f62e784f0f9a69b20474108dcf-20201107 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 670291704; Sat, 07 Nov 2020 17:09:50 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 7 Nov 2020 17:09:49 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 7 Nov 2020 17:09:48 +0800 From: To: CC: , , , , , , , Subject: [i2c-next,PATCH] i2c: medaitek: Move suspend and resume handling to NOIRQ phase Date: Sat, 7 Nov 2020 17:09:40 +0800 Message-ID: <1604740180-14645-1-git-send-email-qii.wang@mediatek.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogUWlpIFdhbmcgPHFpaS53YW5nQG1lZGlhdGVrLmNvbT4NCg0KU29tZSBpMmMgZGV2aWNl IGRyaXZlciBpbmRpcmVjdGx5IHVzZXMgSTJDIGRyaXZlciB3aGVuIGl0IGlzIG5vdw0KYmVpbmcg c3VzcGVuZGVkLiBUaGUgaTJjIGRldmljZXMgZHJpdmVyIGlzIHN1c3BlbmRlZCBkdXJpbmcgdGhl DQpOT0lSUSBwaGFzZSBhbmQgdGhpcyBjYW5ub3QgYmUgY2hhbmdlZCBkdWUgdG8gb3RoZXIgZGVw ZW5kZW5jaWVzLg0KVGhlcmVmb3JlLCB3ZSBhbHNvIG5lZWQgdG8gbW92ZSB0aGUgc3VzcGVuZCBo YW5kbGluZyBmb3IgdGhlIEkyQw0KY29udHJvbGxlciBkcml2ZXIgdG8gdGhlIE5PSVJRIHBoYXNl IGFzIHdlbGwuDQoNClNpZ25lZC1vZmYtYnk6IFFpaSBXYW5nIDxxaWkud2FuZ0BtZWRpYXRlay5j b20+DQotLS0NCiBkcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NjV4eC5jIHwgMTkgKysrKysrKysr KysrKysrKy0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdDY1eHguYyBiL2Ry aXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXQ2NXh4LmMNCmluZGV4IDMzZGU5OWIuLjZmNjE1OTUgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NjV4eC5jDQorKysgYi9kcml2ZXJz L2kyYy9idXNzZXMvaTJjLW10NjV4eC5jDQpAQCAtMTI1OCw3ICsxMjU4LDggQEAgc3RhdGljIGlu dCBtdGtfaTJjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCW10a19pMmNf Y2xvY2tfZGlzYWJsZShpMmMpOw0KIA0KIAlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5k ZXYsIGlycSwgbXRrX2kyY19pcnEsDQotCQkJICAgICAgIElSUUZfVFJJR0dFUl9OT05FLCBJMkNf RFJWX05BTUUsIGkyYyk7DQorCQkJICAgICAgIElSUUZfTk9fU1VTUEVORCB8IElSUUZfVFJJR0dF Ul9OT05FLA0KKwkJCSAgICAgICBJMkNfRFJWX05BTUUsIGkyYyk7DQogCWlmIChyZXQgPCAwKSB7 DQogCQlkZXZfZXJyKCZwZGV2LT5kZXYsDQogCQkJIlJlcXVlc3QgSTJDIElSUSAlZCBmYWlsXG4i LCBpcnEpOw0KQEAgLTEyODUsNyArMTI4NiwxNiBAQCBzdGF0aWMgaW50IG10a19pMmNfcmVtb3Zl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogfQ0KIA0KICNpZmRlZiBDT05GSUdfUE1f U0xFRVANCi1zdGF0aWMgaW50IG10a19pMmNfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikNCitz dGF0aWMgaW50IG10a19pMmNfc3VzcGVuZF9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpDQorew0K KwlzdHJ1Y3QgbXRrX2kyYyAqaTJjID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQorDQorCWkyY19t YXJrX2FkYXB0ZXJfc3VzcGVuZGVkKCZpMmMtPmFkYXApOw0KKw0KKwlyZXR1cm4gMDsNCit9DQor DQorc3RhdGljIGludCBtdGtfaTJjX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpDQog ew0KIAlpbnQgcmV0Ow0KIAlzdHJ1Y3QgbXRrX2kyYyAqaTJjID0gZGV2X2dldF9kcnZkYXRhKGRl dik7DQpAQCAtMTMwMCwxMiArMTMxMCwxNSBAQCBzdGF0aWMgaW50IG10a19pMmNfcmVzdW1lKHN0 cnVjdCBkZXZpY2UgKmRldikNCiANCiAJbXRrX2kyY19jbG9ja19kaXNhYmxlKGkyYyk7DQogDQor CWkyY19tYXJrX2FkYXB0ZXJfcmVzdW1lZCgmaTJjLT5hZGFwKTsNCisNCiAJcmV0dXJuIDA7DQog fQ0KICNlbmRpZg0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBtdGtfaTJjX3Bt ID0gew0KLQlTRVRfU1lTVEVNX1NMRUVQX1BNX09QUyhOVUxMLCBtdGtfaTJjX3Jlc3VtZSkNCisJ U0VUX05PSVJRX1NZU1RFTV9TTEVFUF9QTV9PUFMobXRrX2kyY19zdXNwZW5kX25vaXJxLA0KKwkJ CQkgICAgICBtdGtfaTJjX3Jlc3VtZV9ub2lycSkNCiB9Ow0KIA0KIHN0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZHJpdmVyIG10a19pMmNfZHJpdmVyID0gew0KLS0gDQoxLjkuMQ0K 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 X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 85A2CC388F9 for ; Sat, 7 Nov 2020 09:10:19 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C20DF208E4 for ; Sat, 7 Nov 2020 09:10:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="wbVVtorF"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="rWbKmN2q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C20DF208E4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=LJcqMHQErAvxhY8tN7mWshCFcyMa9XJ8QBJmEBdYh3c=; b=wbVVtorF+PAsO+VpJTyB93tvih AD6fHrsTZcltVqvJKkmiK3lyLHwJyUVvN3rS678+D3JsVU/2+jIviq86x4UCFHsSOGdQkWAiELcsT lDCeT7VB0nGy8idvFbD4gTXt9tv6wxnOnxfBx8ORL5JUe5CmP1t2ZZA6YjjgqYkL/DObpKpx5TeSr yO3CdThTpzu6KhYYEMQObgYr/jx97CBOJ3dxUr32tQFaMhq2Aj8sIHisNJkRXQZXHFdm7UYWvCDuY H27+I0w15WmvzYtCarKnciDaqCvjc6VREDceQD8QrdOV/BoU0usmasJJQKLcFLGiN7eWIUi3OdvAQ Bv8StJCQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kbKEX-00043H-MK; Sat, 07 Nov 2020 09:10:05 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kbKET-00040o-BW; Sat, 07 Nov 2020 09:10:02 +0000 X-UUID: 37c4cd76ce0b4325990b6e7947debaaa-20201107 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=DLmHKhdRR/VJKHOqoZljcarIlMnzrJ2krXQMqsv1Zb4=; b=rWbKmN2q5wGtSK8HcFo8PvRMUewE/9TXmxpkg991c1K8wQWvvCTP0Z4KzPASirLnh/Ij1J9Nm5RZ1Jv7VhRo7zx7U8QTLKC5IjWeTGBOmpQeG7Ba/WhZYyY3J3uuXOEREZql6fz9SEYMj/Hup1r3Crp1LMdCiZwAcz1F+2ROI1w=; X-UUID: 37c4cd76ce0b4325990b6e7947debaaa-20201107 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 73425829; Sat, 07 Nov 2020 01:09:52 -0800 Received: from mtkmbs07n1.mediatek.inc (172.21.101.16) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 7 Nov 2020 01:09:49 -0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 7 Nov 2020 17:09:49 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 7 Nov 2020 17:09:48 +0800 From: To: Subject: [i2c-next, PATCH] i2c: medaitek: Move suspend and resume handling to NOIRQ phase Date: Sat, 7 Nov 2020 17:09:40 +0800 Message-ID: <1604740180-14645-1-git-send-email-qii.wang@mediatek.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201107_041001_553707_B8839735 X-CRM114-Status: GOOD ( 13.99 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qii.wang@mediatek.com, srv_heupstream@mediatek.com, leilk.liu@mediatek.com, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-i2c@vger.kernel.org, matthias.bgg@gmail.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Qii Wang Some i2c device driver indirectly uses I2C driver when it is now being suspended. The i2c devices driver is suspended during the NOIRQ phase and this cannot be changed due to other dependencies. Therefore, we also need to move the suspend handling for the I2C controller driver to the NOIRQ phase as well. Signed-off-by: Qii Wang --- drivers/i2c/busses/i2c-mt65xx.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c index 33de99b..6f61595 100644 --- a/drivers/i2c/busses/i2c-mt65xx.c +++ b/drivers/i2c/busses/i2c-mt65xx.c @@ -1258,7 +1258,8 @@ static int mtk_i2c_probe(struct platform_device *pdev) mtk_i2c_clock_disable(i2c); ret = devm_request_irq(&pdev->dev, irq, mtk_i2c_irq, - IRQF_TRIGGER_NONE, I2C_DRV_NAME, i2c); + IRQF_NO_SUSPEND | IRQF_TRIGGER_NONE, + I2C_DRV_NAME, i2c); if (ret < 0) { dev_err(&pdev->dev, "Request I2C IRQ %d fail\n", irq); @@ -1285,7 +1286,16 @@ static int mtk_i2c_remove(struct platform_device *pdev) } #ifdef CONFIG_PM_SLEEP -static int mtk_i2c_resume(struct device *dev) +static int mtk_i2c_suspend_noirq(struct device *dev) +{ + struct mtk_i2c *i2c = dev_get_drvdata(dev); + + i2c_mark_adapter_suspended(&i2c->adap); + + return 0; +} + +static int mtk_i2c_resume_noirq(struct device *dev) { int ret; struct mtk_i2c *i2c = dev_get_drvdata(dev); @@ -1300,12 +1310,15 @@ static int mtk_i2c_resume(struct device *dev) mtk_i2c_clock_disable(i2c); + i2c_mark_adapter_resumed(&i2c->adap); + return 0; } #endif static const struct dev_pm_ops mtk_i2c_pm = { - SET_SYSTEM_SLEEP_PM_OPS(NULL, mtk_i2c_resume) + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(mtk_i2c_suspend_noirq, + mtk_i2c_resume_noirq) }; static struct platform_driver mtk_i2c_driver = { -- 1.9.1 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek 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 X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A08BC388F7 for ; Sat, 7 Nov 2020 09:10:45 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EDEF0208E4 for ; Sat, 7 Nov 2020 09:10:44 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="hLtJOGM7"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="rWbKmN2q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EDEF0208E4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=RU3JlN4TfhaU3VYYio+6oXQ0rFakG/Re0p/O+IyxP4Y=; b=hLtJOGM7HqtR6VUhjduk6V9feL kCY3Z1Hr3wJJFvFHd0Qqw4KH1PF7XFnBvCMucriMFTjiHfQA8WgxydfjhDLTH2XMXIl+Eucnseu5v 2s3su9TjFfWGUjK3PM39Yjnd7yt/FRth0I/ENcxvYZFN8qYl9xR18/S12FsFWhl7AO1n4KkqsLzla lpCMTuxxZN6cVtUEZ2awkSxD9ygI3OTOloIlgvyYQ2rWRHEhoYIjLdHsjVryH6Sll32x5I0ZzRXer 0RRYbs+UrGQfyMEp64gcLBwt4HO/xPqHjMgTUZUGFXLG6XYrw25hR5tkox0Qiivl07uZLbklBbG41 uADqPiEw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kbKEW-00042u-LI; Sat, 07 Nov 2020 09:10:04 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kbKET-00040o-BW; Sat, 07 Nov 2020 09:10:02 +0000 X-UUID: 37c4cd76ce0b4325990b6e7947debaaa-20201107 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=DLmHKhdRR/VJKHOqoZljcarIlMnzrJ2krXQMqsv1Zb4=; b=rWbKmN2q5wGtSK8HcFo8PvRMUewE/9TXmxpkg991c1K8wQWvvCTP0Z4KzPASirLnh/Ij1J9Nm5RZ1Jv7VhRo7zx7U8QTLKC5IjWeTGBOmpQeG7Ba/WhZYyY3J3uuXOEREZql6fz9SEYMj/Hup1r3Crp1LMdCiZwAcz1F+2ROI1w=; X-UUID: 37c4cd76ce0b4325990b6e7947debaaa-20201107 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 73425829; Sat, 07 Nov 2020 01:09:52 -0800 Received: from mtkmbs07n1.mediatek.inc (172.21.101.16) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 7 Nov 2020 01:09:49 -0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 7 Nov 2020 17:09:49 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 7 Nov 2020 17:09:48 +0800 From: To: Subject: [i2c-next, PATCH] i2c: medaitek: Move suspend and resume handling to NOIRQ phase Date: Sat, 7 Nov 2020 17:09:40 +0800 Message-ID: <1604740180-14645-1-git-send-email-qii.wang@mediatek.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201107_041001_553707_B8839735 X-CRM114-Status: GOOD ( 13.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qii.wang@mediatek.com, srv_heupstream@mediatek.com, leilk.liu@mediatek.com, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-i2c@vger.kernel.org, matthias.bgg@gmail.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Qii Wang Some i2c device driver indirectly uses I2C driver when it is now being suspended. The i2c devices driver is suspended during the NOIRQ phase and this cannot be changed due to other dependencies. Therefore, we also need to move the suspend handling for the I2C controller driver to the NOIRQ phase as well. Signed-off-by: Qii Wang --- drivers/i2c/busses/i2c-mt65xx.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/busses/i2c-mt65xx.c b/drivers/i2c/busses/i2c-mt65xx.c index 33de99b..6f61595 100644 --- a/drivers/i2c/busses/i2c-mt65xx.c +++ b/drivers/i2c/busses/i2c-mt65xx.c @@ -1258,7 +1258,8 @@ static int mtk_i2c_probe(struct platform_device *pdev) mtk_i2c_clock_disable(i2c); ret = devm_request_irq(&pdev->dev, irq, mtk_i2c_irq, - IRQF_TRIGGER_NONE, I2C_DRV_NAME, i2c); + IRQF_NO_SUSPEND | IRQF_TRIGGER_NONE, + I2C_DRV_NAME, i2c); if (ret < 0) { dev_err(&pdev->dev, "Request I2C IRQ %d fail\n", irq); @@ -1285,7 +1286,16 @@ static int mtk_i2c_remove(struct platform_device *pdev) } #ifdef CONFIG_PM_SLEEP -static int mtk_i2c_resume(struct device *dev) +static int mtk_i2c_suspend_noirq(struct device *dev) +{ + struct mtk_i2c *i2c = dev_get_drvdata(dev); + + i2c_mark_adapter_suspended(&i2c->adap); + + return 0; +} + +static int mtk_i2c_resume_noirq(struct device *dev) { int ret; struct mtk_i2c *i2c = dev_get_drvdata(dev); @@ -1300,12 +1310,15 @@ static int mtk_i2c_resume(struct device *dev) mtk_i2c_clock_disable(i2c); + i2c_mark_adapter_resumed(&i2c->adap); + return 0; } #endif static const struct dev_pm_ops mtk_i2c_pm = { - SET_SYSTEM_SLEEP_PM_OPS(NULL, mtk_i2c_resume) + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(mtk_i2c_suspend_noirq, + mtk_i2c_resume_noirq) }; static struct platform_driver mtk_i2c_driver = { -- 1.9.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel