Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2731547ybz; Mon, 27 Apr 2020 03:32:34 -0700 (PDT) X-Google-Smtp-Source: APiQypKLtvJukkwhfEba2XfJLZCjHiS8cxOw5ks+221m4CfSbIiuLBv04ntOen4fxQypbw6T4no5 X-Received: by 2002:a50:9d42:: with SMTP id j2mr17712217edk.249.1587983554110; Mon, 27 Apr 2020 03:32:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587983554; cv=none; d=google.com; s=arc-20160816; b=zjOrXHkyScThbbITglOXiaxwCLS0n3RtbDkOTXX4HSN+RgoMbfo8QQy+YE1FYoFxRt RnBbE1imQeptzOysMFKxEZjo4s49RHrEbaZcU9fHZ5fjdEiMwdRoUWblef/AIkTEpR1G lBBA4jMR8VVyttoMrPncd5sGDKAY0FbjFiYxp9ypuWFj0NEL2u8y6Xwag95XBSKL8EIP sZRPfZNZ1/APuJlxf/83sbi/EIuiDASA88e8pjPB1zywnev4g7d5T4hL/wXfaX6EpRvH LePNvUZ8SUCbmdBqicWLcBNgtWzJEtbrHbAp8noIq9YGJkQBGmTIprGhU3YE9BaGrtRn OW/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=q+MBCNDaLw3uQE6AgVXdsrI4+m1caWL4Ufysj/pafog=; b=UwZ8JG/1fvtabmFn8dZzKzvC0dEJB5+xJf0lO4lN1H3riEHS9NDllmJPTnXJOSU4hD DQvmQxCWcggB6dSb/TJm9SWtMlKUxW2T8OBNxM5CobC8j9CnET1p3VpisAyUJjppOYmD ClwBKu0mI/9B4AJyWlqFvHUBkjLq/guCLifBec/HDMGwcEnz3xigqcEhm1S3s//SQpnH nAVoIQ8tiewkdCjO6j042bLSKqNgY9KjaPqSaU4A4hWxfBObaWJ2XsVrYtNxt93koen6 ZCUFQyAAcpRWFAQpwyYsRm1DN+B8ZjdwbWNkXNODe0n7pW9KeeTBLbW1oWXzinjLSca/ hwBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="qqAgyWF/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bd4si7248827edb.607.2020.04.27.03.32.10; Mon, 27 Apr 2020 03:32:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="qqAgyWF/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726932AbgD0Kar (ORCPT + 99 others); Mon, 27 Apr 2020 06:30:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726485AbgD0Kar (ORCPT ); Mon, 27 Apr 2020 06:30:47 -0400 Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6EE8C0610D5; Mon, 27 Apr 2020 03:30:46 -0700 (PDT) Received: by mail-pf1-x443.google.com with SMTP id x2so5103022pfx.7; Mon, 27 Apr 2020 03:30:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=q+MBCNDaLw3uQE6AgVXdsrI4+m1caWL4Ufysj/pafog=; b=qqAgyWF/2DUdL2/CJEqRS+BbSa4hMbmdEt/4d762uqgEWxO95ANdX62WbFLqETkM+X kpART+tYOYWahFR+HiWtkeIOBirkpF95mgczf0nsw3BywtSk70q18FfgV/XIflprJ4m4 sMuJh0p74w/uno3rz/uMy5ETltHy/1P4Llkl9pFGwL1x2Ljoy+Vh6mIsjZMTscIPb0eO nCt5Halq9amuWpOAqBoVH2jKIxIJt4sLm5h/uSnFukWGQnu/7vWtjCuXXjtwEYU75qdx F/y3gOeRgnAhId4RLNvGACHEK/SJxIuFQTshJfKmaQjF1On/huwYYvVTvMv2rreN73A0 OcAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=q+MBCNDaLw3uQE6AgVXdsrI4+m1caWL4Ufysj/pafog=; b=OOfoJO2lGV8DPOYvAni+EeIMnQxOstfvtOY/Sqz18WSZQ5aS+QJHD+IhkDAd0mti6y 7QiKKXr0GNcRwklc5MrKREcyukVvsESuOxUBl1wnVbZXHrG4+8w8n4DyanOEx6bBahxZ rD2Ajzr8tn86A7iyb9XoKtt1S9MMYbIbw00vZY6gKkDYVzM/JntkPBPdIxLfBtar7jVG zzpYFc8FNw6Ez7hCKJlL21z8thhiGTKK90ABuVqIvPjcDFamPwI4xytRgwyV511t4gab VJdhsUhL3SGi0jh4lfC8dM3PnC7GbqX2rxJEkG5O8Ez3JbVfxq0VEOM4nCK98CKHOlEi SYdw== X-Gm-Message-State: AGi0PubU1IyMeRG8s1a+nKW1/h0QGzYD+SzBZ4bYS/2kZzI2xFhpj35i sowWolp9hMwMpB6xx1sUVtwTNd82 X-Received: by 2002:a63:ce17:: with SMTP id y23mr21384308pgf.194.1587983446412; Mon, 27 Apr 2020 03:30:46 -0700 (PDT) Received: from gli-arch.genesyslogic.com.tw (60-251-58-169.HINET-IP.hinet.net. [60.251.58.169]) by smtp.gmail.com with ESMTPSA id i25sm11867975pfo.196.2020.04.27.03.30.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2020 03:30:46 -0700 (PDT) From: Ben Chuang To: adrian.hunter@intel.com, ulf.hansson@linaro.org Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, ben.chuang@genesyslogic.com.tw, Renius.Chen@genesyslogic.com.tw, vineethrp@gmail.com, dflogeras2@gmail.com, Ben Chuang , Renius Chen Subject: [PATCH] mmc: sdhci-pci-gli: Fix no irq handler from suspend Date: Mon, 27 Apr 2020 18:30:48 +0800 Message-Id: <20200427103048.20785-1-benchuanggli@gmail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ben Chuang The kernel prints a message similar to "[ 28.881959] do_IRQ: 5.36 No irq handler for vector" when GL975x resumes from suspend. Implement a resume callback to fix this. Fixes: 31e43f31890c ("mmc: sdhci-pci-gli: Enable MSI interrupt for GL975x") Co-developed-by: Renius Chen Signed-off-by: Renius Chen Tested-by: Dave Flogeras Signed-off-by: Ben Chuang --- drivers/mmc/host/sdhci-pci-gli.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/mmc/host/sdhci-pci-gli.c b/drivers/mmc/host/sdhci-pci-gli.c index ce15a05f23d4..7195dd33ac3d 100644 --- a/drivers/mmc/host/sdhci-pci-gli.c +++ b/drivers/mmc/host/sdhci-pci-gli.c @@ -334,6 +334,18 @@ static u32 sdhci_gl9750_readl(struct sdhci_host *host, int reg) return value; } +#ifdef CONFIG_PM_SLEEP +int sdhci_pci_gli_resume(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + + pci_free_irq_vectors(slot->chip->pdev); + gli_pcie_enable_msi(slot); + + return sdhci_pci_resume_host(chip); +} +#endif + static const struct sdhci_ops sdhci_gl9755_ops = { .set_clock = sdhci_set_clock, .enable_dma = sdhci_pci_enable_dma, @@ -348,6 +360,9 @@ const struct sdhci_pci_fixes sdhci_gl9755 = { .quirks2 = SDHCI_QUIRK2_BROKEN_DDR50, .probe_slot = gli_probe_slot_gl9755, .ops = &sdhci_gl9755_ops, +#ifdef CONFIG_PM_SLEEP + .resume = sdhci_pci_gli_resume, +#endif }; static const struct sdhci_ops sdhci_gl9750_ops = { @@ -366,4 +381,7 @@ const struct sdhci_pci_fixes sdhci_gl9750 = { .quirks2 = SDHCI_QUIRK2_BROKEN_DDR50, .probe_slot = gli_probe_slot_gl9750, .ops = &sdhci_gl9750_ops, +#ifdef CONFIG_PM_SLEEP + .resume = sdhci_pci_gli_resume, +#endif }; -- 2.26.2