aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire/ohci.c
diff options
context:
space:
mode:
authorMaxim Levitsky <maximlevitsky@gmail.com>2010-11-28 21:09:49 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2010-12-13 14:39:15 -0500
commit8662b6b029636c35e5876e184d90daf6b0072667 (patch)
tree448ac2fb1db32087cb414f9f00ca420fc6ac3d7e /drivers/firewire/ohci.c
parentec766a7970126f99665992c0b0b10bd60a4d6208 (diff)
firewire: ohci: restore GUID on resume.
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> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/ohci.c')
-rw-r--r--drivers/firewire/ohci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index eb7b591e1c1b..3a908038ff62 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -3284,6 +3284,13 @@ static int pci_resume(struct pci_dev *dev)
3284 return err; 3284 return err;
3285 } 3285 }
3286 3286
3287 /* Some systems don't setup GUID register on resume from ram */
3288 if (!reg_read(ohci, OHCI1394_GUIDLo) &&
3289 !reg_read(ohci, OHCI1394_GUIDHi)) {
3290 reg_write(ohci, OHCI1394_GUIDLo, (u32)ohci->card.guid);
3291 reg_write(ohci, OHCI1394_GUIDHi, (u32)(ohci->card.guid >> 32));
3292 }
3293
3287 return ohci_enable(&ohci->card, NULL, 0); 3294 return ohci_enable(&ohci->card, NULL, 0);
3288} 3295}
3289#endif 3296#endif