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=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 73277C4363A for ; Tue, 27 Oct 2020 07:37:38 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (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 DAE5F2071A for ; Tue, 27 Oct 2020 07:37:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="hGUWDmX6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DAE5F2071A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 957D0169A; Tue, 27 Oct 2020 08:36:44 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 957D0169A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1603784254; bh=a+aKw5GIoUYHat5wp0fmR0uApyMYT38FblvLH8CZAlY=; h=Date:From:To:Subject:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=hGUWDmX6rnjO6u1Qvut6Lr780ZVAWxYmi1eksmoLJl8wBxNSiX5dmQlZfl2L/GOaC QUfrOztLVZPgZvPUy4N1X/Xkr3T1UUWkaOPd0OYIAmwBpGZYJK8y0URGYersS6C5Wv PcKBnzIcWbOUQMtyKGvreLyFRs8pw82kKEsdX0ck= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 1F256F80086; Tue, 27 Oct 2020 08:36:44 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 52D36F8020D; Tue, 27 Oct 2020 08:36:42 +0100 (CET) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 71766F80086 for ; Tue, 27 Oct 2020 08:36:35 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 71766F80086 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 58949AEBA; Tue, 27 Oct 2020 07:36:35 +0000 (UTC) Date: Tue, 27 Oct 2020 08:36:35 +0100 Message-ID: From: Takashi Iwai To: Kai-Heng Feng Subject: Re: [PATCH v2 2/4] ALSA: hda: Stop mangling PCI IRQ In-Reply-To: <20201027054001.1800-3-kai.heng.feng@canonical.com> References: <20201027054001.1800-1-kai.heng.feng@canonical.com> <20201027054001.1800-3-kai.heng.feng@canonical.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Cc: alsa-devel@alsa-project.org, kai.vehmanen@linux.intel.com, linux-kernel@vger.kernel.org, tiwai@suse.com, hui.wang@canonical.com X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" On Tue, 27 Oct 2020 06:39:59 +0100, Kai-Heng Feng wrote: > > The code predates 2005, it should be unnecessary now as PCI core handles > IRQ much better nowadays. > > So stop PCI IRQ mangling in suspend/resume callbacks. > > Takashi Iwai mentioned that IRQ number can change after S3 on some > really old hardwares. We should use quirks to handle those platforms, as > most modern systems won't have that issue. I believe it was S4. And this pretty much depends on BIOS, hence it's hard to apply the quirk, honestly speaking. And, if we know that we need a quirk, dropping the code completely now is a bad move. If any, this should be applied conditionally to the "known to be modern" platforms, but this will make the code rather messier, OTOH. Do we need this change inevitably? Otherwise I'd skip this one. thanks, Takashi > > Signed-off-by: Kai-Heng Feng > --- > v2: > - Wording. > - Add info on IRQ # can change on old hardwares. > > sound/pci/hda/hda_intel.c | 15 --------------- > 1 file changed, 15 deletions(-) > > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c > index 749b88090970..b4aa1dcf1aae 100644 > --- a/sound/pci/hda/hda_intel.c > +++ b/sound/pci/hda/hda_intel.c > @@ -1022,13 +1022,11 @@ static int azx_suspend(struct device *dev) > { > struct snd_card *card = dev_get_drvdata(dev); > struct azx *chip; > - struct hdac_bus *bus; > > if (!azx_is_pm_ready(card)) > return 0; > > chip = card->private_data; > - bus = azx_bus(chip); > snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); > /* An ugly workaround: direct call of __azx_runtime_suspend() and > * __azx_runtime_resume() for old Intel platforms that suffer from > @@ -1038,14 +1036,6 @@ static int azx_suspend(struct device *dev) > __azx_runtime_suspend(chip); > else > pm_runtime_force_suspend(dev); > - if (bus->irq >= 0) { > - free_irq(bus->irq, chip); > - bus->irq = -1; > - chip->card->sync_irq = -1; > - } > - > - if (chip->msi) > - pci_disable_msi(chip->pci); > > trace_azx_suspend(chip); > return 0; > @@ -1060,11 +1050,6 @@ static int azx_resume(struct device *dev) > return 0; > > chip = card->private_data; > - if (chip->msi) > - if (pci_enable_msi(chip->pci) < 0) > - chip->msi = 0; > - if (azx_acquire_irq(chip, 1) < 0) > - return -EIO; > > if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP) > __azx_runtime_resume(chip, false); > -- > 2.17.1 > 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=-9.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 CAB4EC4363A for ; Tue, 27 Oct 2020 07:36:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 737F32071A for ; Tue, 27 Oct 2020 07:36:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2507822AbgJ0Hgh (ORCPT ); Tue, 27 Oct 2020 03:36:37 -0400 Received: from mx2.suse.de ([195.135.220.15]:42842 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731614AbgJ0Hgh (ORCPT ); Tue, 27 Oct 2020 03:36:37 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 58949AEBA; Tue, 27 Oct 2020 07:36:35 +0000 (UTC) Date: Tue, 27 Oct 2020 08:36:35 +0100 Message-ID: From: Takashi Iwai To: Kai-Heng Feng Cc: tiwai@suse.com, perex@perex.cz, hui.wang@canonical.com, kai.vehmanen@linux.intel.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/4] ALSA: hda: Stop mangling PCI IRQ In-Reply-To: <20201027054001.1800-3-kai.heng.feng@canonical.com> References: <20201027054001.1800-1-kai.heng.feng@canonical.com> <20201027054001.1800-3-kai.heng.feng@canonical.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 27 Oct 2020 06:39:59 +0100, Kai-Heng Feng wrote: > > The code predates 2005, it should be unnecessary now as PCI core handles > IRQ much better nowadays. > > So stop PCI IRQ mangling in suspend/resume callbacks. > > Takashi Iwai mentioned that IRQ number can change after S3 on some > really old hardwares. We should use quirks to handle those platforms, as > most modern systems won't have that issue. I believe it was S4. And this pretty much depends on BIOS, hence it's hard to apply the quirk, honestly speaking. And, if we know that we need a quirk, dropping the code completely now is a bad move. If any, this should be applied conditionally to the "known to be modern" platforms, but this will make the code rather messier, OTOH. Do we need this change inevitably? Otherwise I'd skip this one. thanks, Takashi > > Signed-off-by: Kai-Heng Feng > --- > v2: > - Wording. > - Add info on IRQ # can change on old hardwares. > > sound/pci/hda/hda_intel.c | 15 --------------- > 1 file changed, 15 deletions(-) > > diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c > index 749b88090970..b4aa1dcf1aae 100644 > --- a/sound/pci/hda/hda_intel.c > +++ b/sound/pci/hda/hda_intel.c > @@ -1022,13 +1022,11 @@ static int azx_suspend(struct device *dev) > { > struct snd_card *card = dev_get_drvdata(dev); > struct azx *chip; > - struct hdac_bus *bus; > > if (!azx_is_pm_ready(card)) > return 0; > > chip = card->private_data; > - bus = azx_bus(chip); > snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); > /* An ugly workaround: direct call of __azx_runtime_suspend() and > * __azx_runtime_resume() for old Intel platforms that suffer from > @@ -1038,14 +1036,6 @@ static int azx_suspend(struct device *dev) > __azx_runtime_suspend(chip); > else > pm_runtime_force_suspend(dev); > - if (bus->irq >= 0) { > - free_irq(bus->irq, chip); > - bus->irq = -1; > - chip->card->sync_irq = -1; > - } > - > - if (chip->msi) > - pci_disable_msi(chip->pci); > > trace_azx_suspend(chip); > return 0; > @@ -1060,11 +1050,6 @@ static int azx_resume(struct device *dev) > return 0; > > chip = card->private_data; > - if (chip->msi) > - if (pci_enable_msi(chip->pci) < 0) > - chip->msi = 0; > - if (azx_acquire_irq(chip, 1) < 0) > - return -EIO; > > if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP) > __azx_runtime_resume(chip, false); > -- > 2.17.1 >