From patchwork Thu Jul 13 14:57:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 119958 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1890561vqm; Thu, 13 Jul 2023 08:10:01 -0700 (PDT) X-Google-Smtp-Source: APBJJlF04QT734aq712z2oc9g7/zMpWMwHqofN+iADWEVm0nFIDC9fqBGjEH6HOMl4eYNClH2hxy X-Received: by 2002:a17:903:1248:b0:1b3:d11c:23ca with SMTP id u8-20020a170903124800b001b3d11c23camr1505166plh.8.1689261001402; Thu, 13 Jul 2023 08:10:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689261001; cv=none; d=google.com; s=arc-20160816; b=jqI+UWgdS0ewsTnE6eMUnORQJHTy2Doa/OnE6hbUmnvoOc+q0BgvXguaM2jFivHO2i xoPqFVUshm0yadja1huC1+iw/9J6DuUc4QF4mpFm5J6juXCzvQw6t25TTP5Le3bGSjMX WSp2X0cg4swjVt30TMn6qYAMns8Qmc6wzBezeEU+bzFSHIlx2RdJu7Zzp97dRN+3JwIm QltJ8auCzaAcHhYoKesnnkdzBlhZycuZv4WZjxUpzurI3pk18zIR1zIst7qwhD7INnzq fm2OsUAb4p68v+4xghCbUK3wZGWJ2oKXwyasYQhwn6BojmMX3KT1YNykp14eF4xu9zww 8bOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=CYflhXgl+YlqL6rFjdfiZqarW5sMA29fFQoOha8dFys=; fh=oc8epiYeCf66M3XlH16eTbIrMWOh3Sog8xnlUB1Ko1o=; b=NX/pRB5HOmucJLE/ePKCfVjOGHvPA2NoTKbjVOzu86VIElXxwpS9n+Q4AkhFcXBwiP SJjfGCrouDG23Ab6gLgNfszM44mfCbNSsDgMgcZyJ8RY9/n65hxSzGRBYn943e73Sye2 zqo6B01QyAulV901+Nt/TgO4hHefX7ay3Y8Mf35Po3wg7hGsmoGC5kzjT+agJp2q6u3p 0xD2qFdcD8HVFL4A47kLR2s+miXpABazYuxg9ajwiUSDflEoJ9QjuA0GmMBTp/bA3iNb QKCNAdYkhtR5J3hijmBwPzgCOd/lWoDEptq0eYxuHM6S5L+LLnOmLTJfVFSB0OTFI3u5 0TLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rtPSscpQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t10-20020a170902e84a00b001b9fb1e25ebsi3856575plg.360.2023.07.13.08.09.45; Thu, 13 Jul 2023 08:10:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rtPSscpQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231430AbjGMPBe (ORCPT + 99 others); Thu, 13 Jul 2023 11:01:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232429AbjGMPB1 (ORCPT ); Thu, 13 Jul 2023 11:01:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0B0919B4; Thu, 13 Jul 2023 08:01:25 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 41415617F1; Thu, 13 Jul 2023 15:01:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92B0FC433C8; Thu, 13 Jul 2023 15:01:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689260484; bh=TXCscstt8foR9MlhQdbRGwgR6LOhBKjV5Dq6e0YdGzg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rtPSscpQZY5IXoful4VY2d0tMiTOAdnUh594RSMwcMQ8Xsy+TMfdvVkKZLYCUWuOd JJho1LWExjZmgiUZ445ECHLsDA5u+ULXOwfGmF3zn9xSrawoNYCZFw17+yPj7ups/V Fe0GxB2XF9dMAo/SvBFYCWr2IOxtgqZTuEREVZQdXxZHdBoAkHmqY6lAmlKPGVUefI yzfHdBjAEngDnlofRbx2+tTnVwQ0zRIJBZ6FSSUt6UgD17ccpfve6nD9PvxS1qNIhx 1PXq9oDDeU02eHj0wQ9YRjBmglrGcmpvAOFc7j3a4Rc59IkOoyL40EMyG+qg+kS0yd jMtx2sWBvqZeg== Received: from johan by xi.lan with local (Exim 4.96) (envelope-from ) id 1qJxor-0007vk-0R; Thu, 13 Jul 2023 17:01:25 +0200 From: Johan Hovold To: "Rafael J. Wysocki" , Greg Kroah-Hartman Cc: Pavel Machek , Len Brown , Andy Gross , Bjorn Andersson , Konrad Dybcio , Jiri Slaby , Tony Lindgren , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 1/3] PM / wakeirq: fix wake irq arming Date: Thu, 13 Jul 2023 16:57:39 +0200 Message-ID: <20230713145741.30390-2-johan+linaro@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230713145741.30390-1-johan+linaro@kernel.org> References: <20230713145741.30390-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771318544120393319 X-GMAIL-MSGID: 1771318544120393319 The decision whether to enable a wake irq during suspend can not be done based on the runtime PM state directly as a driver may use wake irqs without implementing runtime PM. Such drivers specifically leave the state set to the default 'suspended' and the wake irq is thus never enabled at suspend. Add a new wake irq flag to track whether a dedicated wake irq has been enabled at runtime suspend and therefore must not be enabled at system suspend. Note that pm_runtime_enabled() can not be used as runtime PM is always disabled during late suspend. Fixes: 69728051f5bf ("PM / wakeirq: Fix unbalanced IRQ enable for wakeirq") Cc: stable@vger.kernel.org # 4.16 Cc: Tony Lindgren Signed-off-by: Johan Hovold Reviewed-by: Tony Lindgren Tested-by: Tony Lindgren --- drivers/base/power/power.h | 1 + drivers/base/power/wakeirq.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/base/power/power.h b/drivers/base/power/power.h index 0eb7f02b3ad5..922ed457db19 100644 --- a/drivers/base/power/power.h +++ b/drivers/base/power/power.h @@ -29,6 +29,7 @@ extern u64 pm_runtime_active_time(struct device *dev); #define WAKE_IRQ_DEDICATED_MASK (WAKE_IRQ_DEDICATED_ALLOCATED | \ WAKE_IRQ_DEDICATED_MANAGED | \ WAKE_IRQ_DEDICATED_REVERSE) +#define WAKE_IRQ_DEDICATED_ENABLED BIT(3) struct wake_irq { struct device *dev; diff --git a/drivers/base/power/wakeirq.c b/drivers/base/power/wakeirq.c index d487a6bac630..afd094dec5ca 100644 --- a/drivers/base/power/wakeirq.c +++ b/drivers/base/power/wakeirq.c @@ -314,8 +314,10 @@ void dev_pm_enable_wake_irq_check(struct device *dev, return; enable: - if (!can_change_status || !(wirq->status & WAKE_IRQ_DEDICATED_REVERSE)) + if (!can_change_status || !(wirq->status & WAKE_IRQ_DEDICATED_REVERSE)) { enable_irq(wirq->irq); + wirq->status |= WAKE_IRQ_DEDICATED_ENABLED; + } } /** @@ -336,8 +338,10 @@ void dev_pm_disable_wake_irq_check(struct device *dev, bool cond_disable) if (cond_disable && (wirq->status & WAKE_IRQ_DEDICATED_REVERSE)) return; - if (wirq->status & WAKE_IRQ_DEDICATED_MANAGED) + if (wirq->status & WAKE_IRQ_DEDICATED_MANAGED) { + wirq->status &= ~WAKE_IRQ_DEDICATED_ENABLED; disable_irq_nosync(wirq->irq); + } } /** @@ -376,7 +380,7 @@ void dev_pm_arm_wake_irq(struct wake_irq *wirq) if (device_may_wakeup(wirq->dev)) { if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED && - !pm_runtime_status_suspended(wirq->dev)) + !(wirq->status & WAKE_IRQ_DEDICATED_ENABLED)) enable_irq(wirq->irq); enable_irq_wake(wirq->irq); @@ -399,7 +403,7 @@ void dev_pm_disarm_wake_irq(struct wake_irq *wirq) disable_irq_wake(wirq->irq); if (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED && - !pm_runtime_status_suspended(wirq->dev)) + !(wirq->status & WAKE_IRQ_DEDICATED_ENABLED)) disable_irq_nosync(wirq->irq); } } From patchwork Thu Jul 13 14:57:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 119969 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1901488vqm; Thu, 13 Jul 2023 08:27:13 -0700 (PDT) X-Google-Smtp-Source: APBJJlFoxbkl47HmczMo4RXCs6pE4pD+8zF8mi2g0uMwjsLrhqVgY4tMVRaO8J9ScPwbnSkM4v8s X-Received: by 2002:a17:906:64c8:b0:993:f349:c98e with SMTP id p8-20020a17090664c800b00993f349c98emr2054338ejn.2.1689262031727; Thu, 13 Jul 2023 08:27:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689262031; cv=none; d=google.com; s=arc-20160816; b=egYLairUGd/lpzmS6j+t8FMGpskWc+AqjIxhnt7Jm1R6hcSm8ne0pl3CTHToQqtcYF waMfuRhPkXQkTYAMbq/pTULHpC5lGc82vksa/ScTE84jNlkWvpSitHM4Kds7FR8pWTQH /6IeE0NJHiIkYsr5aJl8lGTqpEJvPVkKh/fnmu/XkVP5gplMROhcTD/y4uMInJQ/jhRw 4deviVpoNEd5FUcI00++ISZCi+z1OT6TpU3XJXSNYwhWrC7YijqK6eYpwTpxodBNLlHU iKcK8Fx+hoPhfFe4clGguvP17vDenol6i9eVBg/F39Flr/V6o3CJiDUTqfwKQT7Fl3Ss bNZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=HDN+5xOIiaoaGRqsZJcstKZePGc7jdXCMR0FqpYE9kg=; fh=Hok+ajaJDYSqQWOazOJ3mMUHAr1BGzKZ2yKwUOJpHDQ=; b=gLUhW67hy2LARAWH7MsFFb287HDG1mYNy/0n7Rxht7Tg+asIjau7OHF4YgC3meaA8g nZ8XXl2AKGPx1W5Bl6XLUU5ZK8y91Hj/2DufRG9RnbgbnuzSPvFyIV4Q7aGKcNUX/CzI H+mvi4Bh5PhKuJ7rrv9Wy65myGO/EPothLgq+6tw/TPIO51Npq+jBJzgL44j77Mx5AQD 6bbTRbsnuY2x/rKxspNVyL6YSplwvZzkguzhdrY07Ui43eYNxILNiKphw74cq6U+I6UY HNH5ENWiXHvg/s3IuBsVs/xhygCokxTj2Enoxx3Kho+L3+xk3arKf7+EqvTTYcvPgE5K Cl0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=cG30JVJE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p27-20020a1709060ddb00b009889b296070si7543308eji.261.2023.07.13.08.26.47; Thu, 13 Jul 2023 08:27:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=cG30JVJE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229861AbjGMPBj (ORCPT + 99 others); Thu, 13 Jul 2023 11:01:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230359AbjGMPB1 (ORCPT ); Thu, 13 Jul 2023 11:01:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E02EA19A6; Thu, 13 Jul 2023 08:01:25 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 535D661896; Thu, 13 Jul 2023 15:01:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9DCB8C433CC; Thu, 13 Jul 2023 15:01:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689260484; bh=itZ0gFAo0LPJQtM5BSI/nzA/wdukNr9OD7PReC0Np54=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cG30JVJEIUEkPn3C65YZHI39Nb4WEytx5K66voqeVZGqjDdzygPXioa/isoY4l57C VQui/052L5avKzgGwK1yxKAoEAMn+Q6QqtbrflKfbEqcTKOB+4QO2vjKvRIWhZVvmU wNB5Jg4xKXSkQ0Qm+90dGBGxSO7hN0pbnBrQZhou9fmJyrfdWyaTdoquDrePfBNbYx BxnHpruVNN+M+in/ThPyx6hHIu6nukrxKWjt9nUPh0HBUhJXb/MhzCNi11HKBgnAei qDGnwFeIrFGVJvzuN/EmF33pXpUgJFWciInL9kTHtunGKBv0aa/JdhXlsB62o1l7Oj SeQwiSL3no9gw== Received: from johan by xi.lan with local (Exim 4.96) (envelope-from ) id 1qJxor-0007vm-0j; Thu, 13 Jul 2023 17:01:25 +0200 From: Johan Hovold To: "Rafael J. Wysocki" , Greg Kroah-Hartman Cc: Pavel Machek , Len Brown , Andy Gross , Bjorn Andersson , Konrad Dybcio , Jiri Slaby , Tony Lindgren , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, Johan Hovold Subject: [PATCH 2/3] PM / wakeirq: drop unused enable helpers Date: Thu, 13 Jul 2023 16:57:40 +0200 Message-ID: <20230713145741.30390-3-johan+linaro@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230713145741.30390-1-johan+linaro@kernel.org> References: <20230713145741.30390-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771319624317802373 X-GMAIL-MSGID: 1771319624317802373 Drop the wake-irq enable and disable helpers which have not been used since commit bed570307ed7 ("PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend"). Note that these functions are essentially just leftovers from the first iteration of the wake-irq implementation where device drivers were supposed to call these functions themselves instead of PM core (as is also indicated by the bogus kernel doc comments). Signed-off-by: Johan Hovold Reviewed-by: Tony Lindgren --- drivers/base/power/wakeirq.c | 49 ------------------------------------ include/linux/pm_wakeirq.h | 10 -------- 2 files changed, 59 deletions(-) diff --git a/drivers/base/power/wakeirq.c b/drivers/base/power/wakeirq.c index afd094dec5ca..42171f766dcb 100644 --- a/drivers/base/power/wakeirq.c +++ b/drivers/base/power/wakeirq.c @@ -194,7 +194,6 @@ static int __dev_pm_set_dedicated_wake_irq(struct device *dev, int irq, unsigned return err; } - /** * dev_pm_set_dedicated_wake_irq - Request a dedicated wake-up interrupt * @dev: Device entry @@ -206,11 +205,6 @@ static int __dev_pm_set_dedicated_wake_irq(struct device *dev, int irq, unsigned * Sets up a threaded interrupt handler for a device that has * a dedicated wake-up interrupt in addition to the device IO * interrupt. - * - * The interrupt starts disabled, and needs to be managed for - * the device by the bus code or the device driver using - * dev_pm_enable_wake_irq*() and dev_pm_disable_wake_irq*() - * functions. */ int dev_pm_set_dedicated_wake_irq(struct device *dev, int irq) { @@ -232,11 +226,6 @@ EXPORT_SYMBOL_GPL(dev_pm_set_dedicated_wake_irq); * the status of WAKE_IRQ_DEDICATED_REVERSE to tell rpm_suspend() * to enable dedicated wake-up interrupt after running the runtime suspend * callback for @dev. - * - * The interrupt starts disabled, and needs to be managed for - * the device by the bus code or the device driver using - * dev_pm_enable_wake_irq*() and dev_pm_disable_wake_irq*() - * functions. */ int dev_pm_set_dedicated_wake_irq_reverse(struct device *dev, int irq) { @@ -244,44 +233,6 @@ int dev_pm_set_dedicated_wake_irq_reverse(struct device *dev, int irq) } EXPORT_SYMBOL_GPL(dev_pm_set_dedicated_wake_irq_reverse); -/** - * dev_pm_enable_wake_irq - Enable device wake-up interrupt - * @dev: Device - * - * Optionally called from the bus code or the device driver for - * runtime_resume() to override the PM runtime core managed wake-up - * interrupt handling to enable the wake-up interrupt. - * - * Note that for runtime_suspend()) the wake-up interrupts - * should be unconditionally enabled unlike for suspend() - * that is conditional. - */ -void dev_pm_enable_wake_irq(struct device *dev) -{ - struct wake_irq *wirq = dev->power.wakeirq; - - if (wirq && (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED)) - enable_irq(wirq->irq); -} -EXPORT_SYMBOL_GPL(dev_pm_enable_wake_irq); - -/** - * dev_pm_disable_wake_irq - Disable device wake-up interrupt - * @dev: Device - * - * Optionally called from the bus code or the device driver for - * runtime_suspend() to override the PM runtime core managed wake-up - * interrupt handling to disable the wake-up interrupt. - */ -void dev_pm_disable_wake_irq(struct device *dev) -{ - struct wake_irq *wirq = dev->power.wakeirq; - - if (wirq && (wirq->status & WAKE_IRQ_DEDICATED_ALLOCATED)) - disable_irq_nosync(wirq->irq); -} -EXPORT_SYMBOL_GPL(dev_pm_disable_wake_irq); - /** * dev_pm_enable_wake_irq_check - Checks and enables wake-up interrupt * @dev: Device diff --git a/include/linux/pm_wakeirq.h b/include/linux/pm_wakeirq.h index dd42d16945d0..d9642c6cf852 100644 --- a/include/linux/pm_wakeirq.h +++ b/include/linux/pm_wakeirq.h @@ -10,8 +10,6 @@ extern int dev_pm_set_wake_irq(struct device *dev, int irq); extern int dev_pm_set_dedicated_wake_irq(struct device *dev, int irq); extern int dev_pm_set_dedicated_wake_irq_reverse(struct device *dev, int irq); extern void dev_pm_clear_wake_irq(struct device *dev); -extern void dev_pm_enable_wake_irq(struct device *dev); -extern void dev_pm_disable_wake_irq(struct device *dev); #else /* !CONFIG_PM */ @@ -34,13 +32,5 @@ static inline void dev_pm_clear_wake_irq(struct device *dev) { } -static inline void dev_pm_enable_wake_irq(struct device *dev) -{ -} - -static inline void dev_pm_disable_wake_irq(struct device *dev) -{ -} - #endif /* CONFIG_PM */ #endif /* _LINUX_PM_WAKEIRQ_H */ From patchwork Thu Jul 13 14:57:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 119976 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1902631vqm; Thu, 13 Jul 2023 08:29:03 -0700 (PDT) X-Google-Smtp-Source: APBJJlH277WsWqe9mKUczX9KLahdAVeyk/CByBpZvF79xssp3yDlpwZOMqJHLYBPQ71l8jgPvD1O X-Received: by 2002:a2e:9dcf:0:b0:2b7:117:e54 with SMTP id x15-20020a2e9dcf000000b002b701170e54mr1791688ljj.4.1689262143274; Thu, 13 Jul 2023 08:29:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689262143; cv=none; d=google.com; s=arc-20160816; b=SIZZMHgxo+2f37l1XvsVLsfZXBVL4xZbt+a7JXkFGOWEqTJjZk6HuOiUVfcMRIoX/a yu891Nj5yMCiNWrjx9a69F6owWyXoSAC5AW8b+urbRWPW7coAWFkq5ZPvLvYDQ5zPzwG o6nNOKsRQCa5UsZc5RydEDpqV3RApW/FE6tkY34aBUgJfF+ySfDSoxXI0NxL8ohX5kUG jZaIEmBIp2ayOxtO1Dzs8FDf6M4tD99QbNl0CGTbnq2/TypEg6DXnYCTNNirFzn7JCtS Obw7YzPGcyo4AJgI3dRqiTRZCO29AsEeVOSBLv5Sf2Ha6WWKpBP4aZyWu/mVlHXzndD/ p0rA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+kz9RNtiZnbE/vaWytZMFuxDW5GmLROKCDNLGiN9zbI=; fh=5d9ovBud5AIGYSPsmlyCVoVYGcAKubXKMnoSwZfapRE=; b=r/ScR2Ii64BXGNT1yUenSGjqYrtQSYOS0BkdUonrQlqX7rASjjvNS56w39KmkRtNfE DpJKqRbFr8Z5g6kZfLHXMcj6BwCTWM0O493reDGrUNmu9ziXuzfKCh/XYY9kuZwglgJy PlwosC0z9JE7g5VhpQ1Hx1cwivVcF6d+kpJjIC+yOmEqSnEUY+sYlVtjfcryKoMlvZCT ryyGrDcdYL+5PJXBhNVauLiDlrOE8/Siyz9/SdUMoRIGD+g0DdJdULx35f3hCY+NxJH1 cbMi2eBCbX10wEGme10eyv3ofqCQUiUDuVjHdgZd0j+c9n+wR9Wy4P3zV5CerZFW0145 AI0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=NelBhBDY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f11-20020a170906824b00b0098dfdc3f2e6si7251428ejx.982.2023.07.13.08.28.39; Thu, 13 Jul 2023 08:29:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=NelBhBDY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232544AbjGMPBp (ORCPT + 99 others); Thu, 13 Jul 2023 11:01:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232422AbjGMPB1 (ORCPT ); Thu, 13 Jul 2023 11:01:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DDCF2706; Thu, 13 Jul 2023 08:01:26 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5D247618C5; Thu, 13 Jul 2023 15:01:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 99DE6C433C9; Thu, 13 Jul 2023 15:01:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689260484; bh=sfmiO7castT7ell5jqLJUhNTWtiJ35JhwDwk7KkRsoA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NelBhBDYU1VCxkGX+R4lWxNyD6GFU7dn8CYivAJvkjrp/4IbkoEXJT1Izk7xFLer6 XWQKXcUa4TxULl3Asd88+ui4GPlflFcszX8oc/7YRkqc6I+YfVmje20ShgrRI36udW 4thM3nbKxciLFpFegF9ryWOETfAwqzzLLKvwgUiZr0O+UmRXIGikFkSc/t0XYKFUjZ ZDvn2gwJJy2JikDj4e84VBfyEoKwQXTk/5dXe7cO+YbIeg8bxs8SYLpsq9IPPE/H9K CZ9j8s7Y7yoEw/JGVhqpecmvDo1vWOwe/HMZK7yNbyduZUoisVPPdQwEC9auC2awe0 jPbmfm79S692w== Received: from johan by xi.lan with local (Exim 4.96) (envelope-from ) id 1qJxor-0007vo-0y; Thu, 13 Jul 2023 17:01:25 +0200 From: Johan Hovold To: "Rafael J. Wysocki" , Greg Kroah-Hartman Cc: Pavel Machek , Len Brown , Andy Gross , Bjorn Andersson , Konrad Dybcio , Jiri Slaby , Tony Lindgren , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Matthias Kaehlcke , Stephen Boyd Subject: [PATCH 3/3] serial: qcom-geni: drop bogus runtime pm state update Date: Thu, 13 Jul 2023 16:57:41 +0200 Message-ID: <20230713145741.30390-4-johan+linaro@kernel.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230713145741.30390-1-johan+linaro@kernel.org> References: <20230713145741.30390-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771319741319178909 X-GMAIL-MSGID: 1771319741319178909 The runtime PM state should not be changed by drivers that do not implement runtime PM even if it happens to work around a bug in PM core. With the wake irq arming now fixed, drop the bogus runtime PM state update which left the device in active state (and could potentially prevent a parent device from suspending). Fixes: f3974413cf02 ("tty: serial: qcom_geni_serial: Wakeup IRQ cleanup") Cc: stable@vger.kernel.org # 5.6 Cc: Matthias Kaehlcke Cc: Stephen Boyd Signed-off-by: Johan Hovold Reviewed-by: Tony Lindgren --- drivers/tty/serial/qcom_geni_serial.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index 88ed5bbe25a8..b825b05e6137 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -1681,13 +1681,6 @@ static int qcom_geni_serial_probe(struct platform_device *pdev) if (ret) return ret; - /* - * Set pm_runtime status as ACTIVE so that wakeup_irq gets - * enabled/disabled from dev_pm_arm_wake_irq during system - * suspend/resume respectively. - */ - pm_runtime_set_active(&pdev->dev); - if (port->wakeup_irq > 0) { device_init_wakeup(&pdev->dev, true); ret = dev_pm_set_dedicated_wake_irq(&pdev->dev,