diff mbox

[1/5] firewire: ohci: restore GUID on resume.

Message ID 1290996593-32416-2-git-send-email-maximlevitsky@gmail.com
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

Maxim Levitsky Nov. 29, 2010, 2:09 a.m. UTC
Some lousy BIOSes, e.g. my Aspire 5720 BIOS forget to restore
the GUID register on resume from ram.

Fix that by setting it to the last value that
was read from it.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/firewire/ohci.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
diff mbox

Patch

diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 6dd56cd..0fbadb7 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -3240,6 +3240,13 @@  static int pci_resume(struct pci_dev *dev)
 		return err;
 	}
 
+	/* Some systems don't setup GUID register on resume from ram  */
+	if (!reg_read(ohci, OHCI1394_GUIDLo) &&
+					!reg_read(ohci, OHCI1394_GUIDHi)) {
+		reg_write(ohci, OHCI1394_GUIDLo, (u32)ohci->card.guid);
+		reg_write(ohci, OHCI1394_GUIDHi, (u32)(ohci->card.guid >> 32));
+	}
+
 	return ohci_enable(&ohci->card, NULL, 0);
 }
 #endif