Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp2816301rdb; Wed, 4 Oct 2023 12:16:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHGQvlJiMkj6EB2XT+ca4rONQAAq/+TSHuT53eCnlOyhBCXm9ric8tLtS/EY066r2CYL1rs X-Received: by 2002:a17:902:e811:b0:1b8:8af0:416f with SMTP id u17-20020a170902e81100b001b88af0416fmr3897136plg.1.1696446998853; Wed, 04 Oct 2023 12:16:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696446998; cv=none; d=google.com; s=arc-20160816; b=Vw/BNjtmSH0LBl05v6W9N04JwQv0HowKfNhzwTprEM8MsJ5fbth8BNZomhV2jMQjP0 b8NRVwr5dTvgN0TNHWhSmXuRMRs/8D5fgT3xNLurGDY8VPtvyoUwdWf3f/H28jgJu9T4 fU+XDofwRJmkUUM680v/Pztv9slb6NDXon/98n2Oy7mT0nGneFuWDlntVCnh+lSBUNxZ SK433upYR4M2IQfREkdYvJtEmku3yO64YtBg0Zm+2Fjy7j7urZxIX88122Y8SoKRxviM a2t+lAyzyYrk4sbsvRcCAWizowsO9VJfu2iyav2fuPfoM/SR1uIv8keVg1J/akuYtiLQ HiCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:message-id :in-reply-to:subject:cc:to:from:date:dkim-signature; bh=LjycMHKJKOozzHU5YNm8imlpA4fi5XQ1W6mjWzUl86o=; fh=GGEOYzKFCYqT+fcTErw7Y0nEycc1MFq1MKSaQy3wlRA=; b=KBBuTS3yhdA55yRDAd44ZatAAW/iPu/CwQ9HP7KF3Txu+r+h5MQqaaaHwqVCDUDx7Y E3ou+6xp3Wn3/ogNwKC/Snrml5kDmkEDQGEH3gHZfJXhU505kppUFQHRVGOH/fDTZ5NS AMttEjDpUxjzsrw9ukHibxcfuDRfJXf7yA3eZq8GaYvweZo1DLn20FKDDaflGA3zrJZ8 k5lYszBwlTt7sP0R07kmfbzSu6lmCY1ClatYN5U2eoWKpTFKbiPd/3LCczBA8w2BgbsZ u5c4SlSwYDSxS13RSTTDgD0mKjcDad5ANvhzI6OxG1KYgDgkALi1JPQyPSQSYz0NkTcg u0Tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TMYJ03zG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id ij21-20020a170902ab5500b001c386f8dd0asi4278419plb.179.2023.10.04.12.16.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Oct 2023 12:16:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=TMYJ03zG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 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 (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id A9AA880401CC; Wed, 4 Oct 2023 12:16:22 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245224AbjJDTPX (ORCPT + 99 others); Wed, 4 Oct 2023 15:15:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58318 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245327AbjJDTPF (ORCPT ); Wed, 4 Oct 2023 15:15:05 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8AF0911B; Wed, 4 Oct 2023 12:14:54 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD8A5C433C7; Wed, 4 Oct 2023 19:14:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1696446894; bh=ApDtmv1qaYUzh+pCuxsBvwGBh8O049GYBAMvDvx1obk=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=TMYJ03zG548A10EOdx0m9PqE48jMm461T/Vv7Y0d6un4xq17JNktqH5MSHtkkXXEr NG9rwPnK/PGy8hojDP1JTJqjHV9/yq+Re46N6OfV48b8/aVaWQcabd9Z/Rs33wDYbQ FUirFo19d3/UKpljDIECkCOOy7Yhg63BlhMBCYJ9qiaxPUiXzsVtPva7FnJb4eYum5 2vS5u0tQ1D0tm916wP5D0eN0xWM+aEoYD45kQJ+UIE2FI2aNT8A4ihfgrh01zC2Vbs eTa+Ho2Heun97pSJmixDTbUrl5GQy9Z4i4Z1j0WEsmlEkp0kXbp83IdJDwYnA+w5a7 wsftpvSXDPrIA== Date: Wed, 4 Oct 2023 21:14:50 +0200 (CEST) From: Jiri Kosina To: Srinivas Pandruvada cc: benjamin.tissoires@redhat.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Kai-Heng Feng Subject: Re: [PATCH] HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit In-Reply-To: <20231003155332.1855569-1-srinivas.pandruvada@linux.intel.com> Message-ID: References: <20231003155332.1855569-1-srinivas.pandruvada@linux.intel.com> User-Agent: Alpine 2.21 (LSU 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=2.4 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Wed, 04 Oct 2023 12:16:23 -0700 (PDT) X-Spam-Level: ** On Tue, 3 Oct 2023, Srinivas Pandruvada wrote: > The EHL (Elkhart Lake) based platforms provide a OOB (Out of band) > service, which allows to wakup device when the system is in S5 (Soft-Off > state). This OOB service can be enabled/disabled from BIOS settings. When > enabled, the ISH device gets PME wake capability. To enable PME wakeup, > driver also needs to enable ACPI GPE bit. > > On resume, BIOS will clear the wakeup bit. So driver need to re-enable it > in resume function to keep the next wakeup capability. But this BIOS > clearing of wakeup bit doesn't decrement internal OS GPE reference count, > so this reenabling on every resume will cause reference count to overflow. > > So first disable and reenable ACPI GPE bit using acpi_disable_gpe(). > > Fixes: 2e23a70edabe ("HID: intel-ish-hid: ipc: finish power flow for EHL OOB") > Reported-by: Kai-Heng Feng > Closes: https://lore.kernel.org/lkml/CAAd53p4=oLYiH2YbVSmrPNj1zpMcfp=Wxbasb5vhMXOWCArLCg@mail.gmail.com/T/ > Tested-by: Kai-Heng Feng > Signed-off-by: Srinivas Pandruvada > --- > drivers/hid/intel-ish-hid/ipc/pci-ish.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/hid/intel-ish-hid/ipc/pci-ish.c b/drivers/hid/intel-ish-hid/ipc/pci-ish.c > index 55cb25038e63..710fda5f19e1 100644 > --- a/drivers/hid/intel-ish-hid/ipc/pci-ish.c > +++ b/drivers/hid/intel-ish-hid/ipc/pci-ish.c > @@ -133,6 +133,14 @@ static int enable_gpe(struct device *dev) > } > wakeup = &adev->wakeup; > > + /* > + * Call acpi_disable_gpe(), so that reference count > + * gpe_event_info->runtime_count doesn't overflow. > + * When gpe_event_info->runtime_count = 0, the call > + * to acpi_disable_gpe() simply return. > + */ > + acpi_disable_gpe(wakeup->gpe_device, wakeup->gpe_number); > + > acpi_sts = acpi_enable_gpe(wakeup->gpe_device, wakeup->gpe_number); > if (ACPI_FAILURE(acpi_sts)) { > dev_err(dev, "enable ose_gpe failed\n"); Applied, thanks Srinivas. -- Jiri Kosina SUSE Labs