[SCSI] aic7xxx: Take the LED out of diagnostic mode on PM resume
authorthomas schorpp <thomas.schorpp@googlemail.com>
Fri, 3 Oct 2008 21:45:29 +0000 (23:45 +0200)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Thu, 23 Oct 2008 16:42:16 +0000 (11:42 -0500)
Take the Diag/Activity-LED of the HBA out of diagnostic mode on PM
resume after successful PM resume from standby and HBA restart, it
remained always on before. If something fails before complete
recovery, it should remain on, since it is a diagnostics LED, reason
for the used higher layer for the clear.

Signed-off-by: thomas.schorpp@gmail.com
Acked-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/aic7xxx/aic7xxx_core.c

index 0ae2b4605d09aa9068765486903aa19929ed7e9d..e6f2bb7365e64da1736a7a45759ddb3a2ec34638 100644 (file)
@@ -814,6 +814,7 @@ ahc_intr(struct ahc_softc *ahc)
 static void
 ahc_restart(struct ahc_softc *ahc)
 {
+       uint8_t sblkctl;
 
        ahc_pause(ahc);
 
@@ -868,6 +869,12 @@ ahc_restart(struct ahc_softc *ahc)
        ahc_outb(ahc, SEQADDR0, 0);
        ahc_outb(ahc, SEQADDR1, 0);
 
+       /*
+        * Take the LED out of diagnostic mode on PM resume, too
+        */
+       sblkctl = ahc_inb(ahc, SBLKCTL);
+       ahc_outb(ahc, SBLKCTL, (sblkctl & ~(DIAGLEDEN|DIAGLEDON)));
+
        ahc_unpause(ahc);
 }