Hi.
I've run into a problem with the lastest kernel (2.6.22.1) and a drive set to 
spinup on set_features.
..
ATA device, with non-removable media
powers-up in standby; SET FEATURES subcmd spins-up.
        Model Number:       WDC WD3200JS-57PDB0
        Serial Number:      X
        Firmware Revision:  21.00M21
...
           *    Power-Up In Standby feature set
           *    SET_FEATURES required to spinup after power up
...
Jul 12 23:47:22 sysreset kernel: ata6: SATA link up 1.5 Gbps (SStatus 113 
SControl 300)
Jul 12 23:47:22 sysreset kernel: ata6.00: ATA-7: WDC WD3200JS-57PDB0, 21.00M21, 
max UDMA/133
Jul 12 23:47:22 sysreset kernel: ata6.00: 625142448 sectors, multi 0: LBA48 NCQ 
(depth 1)
Jul 12 23:47:22 sysreset kernel: ata6.00: failed to IDENTIFY (SPINUP failed, 
err_mask=0x1)
Jul 12 23:47:22 sysreset kernel: ata6.00: revalidation failed (errno=-5)
Jul 12 23:47:22 sysreset kernel: ata6: failed to recover some devices, retrying 
in 5 secs
Jul 12 23:47:22 sysreset kernel: ata6: SATA link up 1.5 Gbps (SStatus 113 
SControl 300)
Jul 12 23:47:22 sysreset kernel: ata6.00: failed to IDENTIFY (SPINUP failed, 
err_mask=0x1)
Jul 12 23:47:22 sysreset kernel: ata6.00: revalidation failed (errno=-5)
Jul 12 23:47:22 sysreset kernel: ata6.00: limiting speed to UDMA/133:PIO3
Jul 12 23:47:22 sysreset kernel: ata6: failed to recover some devices, retrying 
in 5 secs
Jul 12 23:47:22 sysreset kernel: ata6: SATA link up 1.5 Gbps (SStatus 113 
SControl 300)
Jul 12 23:47:22 sysreset kernel: ata6.00: failed to IDENTIFY (SPINUP failed, 
err_mask=0x1)
Jul 12 23:47:22 sysreset kernel: ata6.00: revalidation failed (errno=-5)
Jul 12 23:47:22 sysreset kernel: ata6.00: disabled

It would be handy to see those messages again with real timestamps on them.
Ryan, could you add CONFIG_PRINTK_TIME=y into your .config and rebuild/retry ?

The interesting thing is that after displaying that, the drive has in fact spun 
up.
I'm not sure why it's getting an error returned, but chaning the err_mask line
to read "if (err_mask && err_mask != 0x01)" corrects the problem and the drive
spins up and ID's normally:

Yeah, I believe that for WD drives.  Their firmware has *always* been peculiar.
In fact, the WD Raptor drives I used to have here had similar, though not 
identical,
problems with the "jumper-enabled" power-on-in-standby version.  I never did 
figure
those ones out.

But yes, perhaps your suggestion of just ignoring the device's response
may be best.  Are you sure it spins up on the very first attempt?
Also, could you add this printk() line to just before your err_mask hack:

  printk("id[2]=0x%04x\n", id[2]);

If we see 0x738c reported from that, then we *know* we should just continue
rather than err'ing out as is presently done.

Thanks
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to