{"id":807138,"url":"http://patchwork.ozlabs.org/api/1.0/patches/807138/?format=json","project":{"id":35,"url":"http://patchwork.ozlabs.org/api/1.0/projects/35/?format=json","name":"Linux I2C development","link_name":"linux-i2c","list_id":"linux-i2c.vger.kernel.org","list_email":"linux-i2c@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<1504018610-10822-8-git-send-email-ulf.hansson@linaro.org>","date":"2017-08-29T14:56:49","name":"[v3,7/8] i2c: designware: Don't resume device in the ->complete() callback","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"d9ec191eaf0d85473dd5664bee355201d140d002","submitter":{"id":21036,"url":"http://patchwork.ozlabs.org/api/1.0/people/21036/?format=json","name":"Ulf Hansson","email":"ulf.hansson@linaro.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-i2c/patch/1504018610-10822-8-git-send-email-ulf.hansson@linaro.org/mbox/","series":[{"id":387,"url":"http://patchwork.ozlabs.org/api/1.0/series/387/?format=json","date":"2017-08-29T14:56:42","name":"PM / ACPI / i2c: Deploy runtime PM centric path for system sleep","version":3,"mbox":"http://patchwork.ozlabs.org/series/387/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/807138/checks/","tags":{},"headers":{"Return-Path":"<linux-i2c-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-i2c-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"EPbaCeiX\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhWvL2LYnz9sR9\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 00:57:18 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754685AbdH2O5P (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 29 Aug 2017 10:57:15 -0400","from mail-lf0-f53.google.com ([209.85.215.53]:37832 \"EHLO\n\tmail-lf0-f53.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1754656AbdH2O5O (ORCPT\n\t<rfc822; linux-i2c@vger.kernel.org>); Tue, 29 Aug 2017 10:57:14 -0400","by mail-lf0-f53.google.com with SMTP id y128so8738659lfd.4\n\tfor <linux-i2c@vger.kernel.org>; Tue, 29 Aug 2017 07:57:13 -0700 (PDT)","from localhost.localdomain (h-158-174-22-67.NA.cust.bahnhof.se.\n\t[158.174.22.67]) by smtp.gmail.com with ESMTPSA id\n\ty23sm652454ljd.19.2017.08.29.07.57.11\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tTue, 29 Aug 2017 07:57:11 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=fMV4lip5F1xWDoteHgqSSVCG4o5V6Vtcqr29AzWTpyQ=;\n\tb=EPbaCeiXzQeazS8pSBCnrk4aSeNE3XXcTr8KkNsLGxH79pYpHk0fZEFbihDu9Vnz7O\n\tcTjSl453zDO+Q0Zn3+q4Dkmhqligq1/7ytZLaprMxowRBzfspE4hMzOYNv2KIZ7dni8E\n\tfmFdJqgvzkFO733LwDZCsHHs7rvGT0iI+ZlrQ=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=fMV4lip5F1xWDoteHgqSSVCG4o5V6Vtcqr29AzWTpyQ=;\n\tb=bxaK60jyAME4kviqy28uq+24kdXNs+mJacm4T+P6xNljTeGALIz28Dl6xmbKQiCekc\n\tEP0IrAgPYqYVlUzPYdpVcZVsJVQheLIqlqS/fNMfSOvtMepdLGHRoOmV/By9GEH4YxPX\n\tugZltg5g87ZZJ3SSH3TA9hok9MM31/NaO5KS00Mg94CEsn96VlWcbLDL9JvexiV8W8nU\n\tCG4D71eChFpnrU1d4iUPslOxLYM3xHZ2/80uhxdkz168Gc1TP47OYDjhVFoPBK3vTM3a\n\tFoow4teMag3k3e7VAlc4omCvUYbkM8vD8CBEW/hgdfDGBM2FylD210QE91to8quEbLhG\n\tJYoQ==","X-Gm-Message-State":"AHYfb5hwSo1ZNMsP6bwqI6+SL0eBx10d180GWJ9/RK4J77vGdAvJKNZ6\n\t5cdQTcJlQ3dryhAW","X-Received":"by 10.25.145.70 with SMTP id y6mr120016lfj.99.1504018632653;\n\tTue, 29 Aug 2017 07:57:12 -0700 (PDT)","From":"Ulf Hansson <ulf.hansson@linaro.org>","To":"Wolfram Sang <wsa@the-dreams.de>,\n\t\"Rafael J . Wysocki\" <rjw@rjwysocki.net>,\n\tLen Brown <lenb@kernel.org>, linux-acpi@vger.kernel.org,\n\tlinux-pm@vger.kernel.org","Cc":"Kevin Hilman <khilman@kernel.org>,\n\tJarkko Nikula <jarkko.nikula@linux.intel.com>,\n\tAndy Shevchenko <andriy.shevchenko@linux.intel.com>,\n\tMika Westerberg <mika.westerberg@linux.intel.com>,\n\tJisheng Zhang <jszhang@marvell.com>,\n\tJohn Stultz <john.stultz@linaro.org>, Guodong Xu <guodong.xu@linaro.org>,\n\tSumit Semwal <sumit.semwal@linaro.org>,\n\tHaojian Zhuang <haojian.zhuang@linaro.org>,\n\tJohannes Stezenbach <js@sig21.net>,\n\tlinux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org,\n\tUlf Hansson <ulf.hansson@linaro.org>","Subject":"[PATCH v3 7/8] i2c: designware: Don't resume device in the\n\t->complete() callback","Date":"Tue, 29 Aug 2017 16:56:49 +0200","Message-Id":"<1504018610-10822-8-git-send-email-ulf.hansson@linaro.org>","X-Mailer":"git-send-email 2.7.4","In-Reply-To":"<1504018610-10822-1-git-send-email-ulf.hansson@linaro.org>","References":"<1504018610-10822-1-git-send-email-ulf.hansson@linaro.org>","Sender":"linux-i2c-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-i2c.vger.kernel.org>","X-Mailing-List":"linux-i2c@vger.kernel.org"},"content":"In case the PM core is able to use the direct_complete path during system\nsleep for the i2c device, the device is runtime resumed in the ->complete()\ncallback. For ACPI platforms this is needed to synchronize the power state\nof the device, while for non-ACPI platforms this is a waste.\n\nTo better deal with this, let's drop the ->complete() callback from the\ni2c-dw-plat driver altogether, thus avoiding the runtime resume of the\ndevice.\n\nThis change still plays well for the ACPI case, because the ACPI PM\ndomain's ->complete() callback, assigned to acpi_subsys_complete(), already\ndeals with runtime resuming the device in case it's needed.\n\nSigned-off-by: Ulf Hansson <ulf.hansson@linaro.org>\n---\n\nChanges in v3:\n\t- None.\n\n---\n drivers/i2c/busses/i2c-designware-platdrv.c | 8 --------\n 1 file changed, 8 deletions(-)","diff":"diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c\nindex 57248bc..38121c9 100644\n--- a/drivers/i2c/busses/i2c-designware-platdrv.c\n+++ b/drivers/i2c/busses/i2c-designware-platdrv.c\n@@ -417,15 +417,8 @@ static int dw_i2c_plat_prepare(struct device *dev)\n {\n \treturn pm_runtime_suspended(dev);\n }\n-\n-static void dw_i2c_plat_complete(struct device *dev)\n-{\n-\tif (dev->power.direct_complete)\n-\t\tpm_request_resume(dev);\n-}\n #else\n #define dw_i2c_plat_prepare\tNULL\n-#define dw_i2c_plat_complete\tNULL\n #endif\n \n #ifdef CONFIG_PM\n@@ -461,7 +454,6 @@ static int dw_i2c_plat_suspend(struct device *dev)\n \n static const struct dev_pm_ops dw_i2c_dev_pm_ops = {\n \t.prepare = dw_i2c_plat_prepare,\n-\t.complete = dw_i2c_plat_complete,\n \tSET_SYSTEM_SLEEP_PM_OPS(dw_i2c_plat_suspend, dw_i2c_plat_resume)\n \tSET_RUNTIME_PM_OPS(dw_i2c_plat_runtime_suspend,\n \t\t\t   dw_i2c_plat_resume,\n","prefixes":["v3","7/8"]}