login
Header Space

 
 

Re: Linux 2.6.20-rc6 - sky2 resume breakage

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <tglx@...>
Cc: Linus Torvalds <torvalds@...>, Linux Kernel Mailing List <linux-kernel@...>, Jeff Garzik <jeff@...>
Date: Monday, January 29, 2007 - 5:38 pm

On Mon, 29 Jan 2007 21:10:30 +0100
Thomas Gleixner <tglx@linutronix.de> wrote:


Sorry it was against the last patch I sent to Jeff for netdev.
Here is against 2.6.20-rc6

---
 drivers/net/sky2.c |   43 ++++++++++++++++++-------------------------
 1 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index a2e804d..d85de63 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -3598,6 +3598,12 @@ static int sky2_suspend(struct pci_dev *
 		}
 	}
 
+	/* Turn off IRQ to avoid power management bug (see resume) */
+	if (hw->msi) {
+		free_irq(pdev->irq, hw);
+		pci_disable_msi(pdev);
+	}
+
 	sky2_write32(hw, B0_IMSK, 0);
 	pci_save_state(pdev);
 	sky2_set_power_state(hw, pstate);
@@ -3619,6 +3625,18 @@ static int sky2_resume(struct pci_dev *p
 
 	sky2_write32(hw, B0_IMSK, Y2_IS_BASE);
 
+	/* Can't re-enable MSI because kernel resume ordering is broken
+	 * and calls device resume before ACPI (BIOS) is called.
+	 * BIOS then resets device to INTx!
+	 */
+	if (hw->msi) {
+		err = request_irq(pdev->irq, sky2_intr, IRQF_SHARED,
+				  hw->dev[0]->name, hw);
+		if (err)
+			goto out;
+		hw->msi = 0;
+	}
+
 	for (i = 0; i < hw->ports; i++) {
 		struct net_device *dev = hw->dev[i];
 		if (netif_running(dev)) {
@@ -3639,29 +3657,6 @@ static int sky2_resume(struct pci_dev *p
 out:
 	return err;
 }
-
-/* BIOS resume runs after device (it's a bug in PM)
- * as a temporary workaround on suspend/resume leave MSI disabled
- */
-static int sky2_suspend_late(struct pci_dev *pdev, pm_message_t state)
-{
-	struct sky2_hw *hw = pci_get_drvdata(pdev);
-
-	free_irq(pdev->irq, hw);
-	if (hw->msi) {
-		pci_disable_msi(pdev);
-		hw->msi = 0;
-	}
-	return 0;
-}
-
-static int sky2_resume_early(struct pci_dev *pdev)
-{
-	struct sky2_hw *hw = pci_get_drvdata(pdev);
-	struct net_device *dev = hw->dev[0];
-
-	return request_irq(pdev->irq, sky2_intr, IRQF_SHARED, dev->name, hw);
-}
 #endif
 
 static struct pci_driver sky2_driver = {
@@ -3672,8 +3667,6 @@ static struct pci_driver sky2_driver = {
 #ifdef CONFIG_PM
 	.suspend = sky2_suspend,
 	.resume = sky2_resume,
-	.suspend_late = sky2_suspend_late,
-	.resume_early = sky2_resume_early,
 #endif
 };
 
-- 
1.4.1

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Linux 2.6.20-rc6, Linus Torvalds, (Wed Jan 24, 10:58 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Thomas Gleixner, (Sat Jan 27, 6:11 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Jeff Garzik, (Sat Jan 27, 6:40 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Thomas Gleixner, (Sat Jan 27, 6:44 pm)
Re: Linux 2.6.20-rc6 - suspend / resume ata_piix, Thomas Gleixner, (Sun Jan 28, 6:05 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Sat Jan 27, 4:55 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 3:31 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 4:10 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 5:38 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 6:23 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Frédéric, (Mon Jan 29, 6:38 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 6:45 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Frédéric, (Mon Jan 29, 6:50 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 6:57 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Frédéric, (Mon Jan 29, 7:26 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 7:37 pm)
[PATCH] block MSI on Sony, Stephen Hemminger, (Mon Jan 29, 7:50 pm)
Re: [PATCH] block MSI on Sony, Thomas Gleixner, (Mon Jan 29, 8:22 pm)
Re: [PATCH] block MSI on Sony, Thomas Gleixner, (Mon Jan 29, 8:26 pm)
Re: [PATCH] block MSI on Sony, Stephen Hemminger, (Mon Jan 29, 8:21 pm)
Re: [PATCH] block MSI on Sony, Thomas Gleixner, (Mon Jan 29, 8:31 pm)
Re: [PATCH] block MSI on Sony, Stephen Hemminger, (Mon Jan 29, 8:31 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 6:37 pm)
[PATCH] sky2: fix MSI related resume breakage, Thomas Gleixner, (Mon Jan 29, 7:42 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 6:40 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 7:04 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 7:45 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 8:12 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Len Brown, (Tue Jan 30, 4:57 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Pavel Machek, (Thu Feb 1, 8:49 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Rafael J. Wysocki, (Tue Jan 30, 12:01 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Nigel Cunningham, (Tue Jan 30, 5:28 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 8:16 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Linus Torvalds, (Mon Jan 29, 8:25 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 2:54 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Tue Jan 30, 3:39 am)
[LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Thu Feb 1, 2:15 am)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Jeff Garzik, (Wed Feb 7, 8:40 am)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Fri Feb 2, 1:48 am)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Tue Feb 13, 3:30 am)
Re: [LIBATA BUG] sr.c: TEST_UNIT_READY error, Conke Hu, (Thu Feb 15, 2:30 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 4:03 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 3:53 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Tue Jan 30, 4:02 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 4:08 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Wed Jan 31, 11:27 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Wed Jan 31, 1:38 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Jeff Garzik, (Wed Jan 31, 1:52 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Wed Jan 31, 4:13 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Ingo Molnar, (Tue Jan 30, 4:13 am)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 8:26 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Stephen Hemminger, (Mon Jan 29, 6:23 pm)
Re: Linux 2.6.20-rc6 - sky2 resume breakage, Thomas Gleixner, (Mon Jan 29, 6:31 pm)
Re: Linux 2.6.20-rc6 - supend lockdep warning, Thomas Gleixner, (Sat Jan 27, 4:47 pm)
2.6.20-rc6: known regressions with patches (v2), Adrian Bunk, (Sat Jan 27, 1:44 pm)
2.6.20-rc6: known unfixed regressions (v2) (part 2), Adrian Bunk, (Sat Jan 27, 1:42 pm)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Mike Galbraith, (Mon Jan 29, 2:26 am)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Andrew Morton, (Mon Jan 29, 2:48 am)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Mike Galbraith, (Mon Jan 29, 3:08 am)
Re: 2.6.20-rc6: known unfixed regressions (v2) (part 2), Linus Torvalds, (Mon Jan 29, 3:13 am)
2.6.20-rc6: known unfixed regressions (v2) (part 1), Adrian Bunk, (Sat Jan 27, 1:32 pm)
Re: Linux 2.6.20-rc6, Sunil Naidu, (Thu Jan 25, 6:09 am)
Re: Linux 2.6.20-rc6, Michal Piotrowski, (Thu Jan 25, 5:05 pm)
Re: Linux 2.6.20-rc6, David Miller, (Thu Jan 25, 5:12 pm)
RE: Linux 2.6.20-rc6, Venkat Yekkirala, (Fri Jan 26, 12:52 pm)
Re: Linux 2.6.20-rc6 - build failure, Eyal Lebedinsky, (Thu Jan 25, 7:10 am)
Re: Linux 2.6.20-rc6 - build failure, Eyal Lebedinsky, (Thu Jan 25, 10:22 pm)
[2.6 patch] fix OCFS2 compile error, Adrian Bunk, (Fri Jan 26, 2:49 pm)
Re: [2.6 patch] fix OCFS2 compile error, Mark Fasheh, (Fri Jan 26, 3:47 pm)
Re: [2.6 patch] fix OCFS2 compile error, Adrian Bunk, (Fri Jan 26, 3:53 pm)
Re: Linux 2.6.20-rc6 - build failure, Mark Fasheh, (Fri Jan 26, 2:46 pm)
2.6.20-rc6: known regressions with patches, Adrian Bunk, (Fri Jan 26, 2:18 pm)
Re: 2.6.20-rc6: known regressions with patches, Ingo Molnar, (Mon Jan 29, 4:45 am)
Re: 2.6.20-rc6: known regressions with patches, Dave Jones, (Mon Jan 29, 8:58 am)
2.6.20-rc6: known unfixed regressions (part 2), Adrian Bunk, (Fri Jan 26, 2:11 pm)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Michal Piotrowski, (Fri Jan 26, 3:04 pm)
RE: 2.6.20-rc6: known unfixed regressions (part 2), Venkat Yekkirala, (Fri Jan 26, 3:08 pm)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Adrian Bunk, (Sat Jan 27, 1:28 pm)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Linus Torvalds, (Sat Jan 27, 1:58 pm)
Re: 2.6.20-rc6: known unfixed regressions (part 2), Adrian Bunk, (Sat Jan 27, 1:39 pm)
2.6.20-rc6: known unfixed regressions (part 1), Adrian Bunk, (Fri Jan 26, 2:10 pm)
Re: Linux 2.6.20-rc6, Arkadiusz Patyk, (Thu Jan 25, 1:50 pm)
speck-geostationary