Re: [PATCH #upstream-fixes] sata_promise: request follow-up SRST

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mikael Pettersson wrote:
Jeff Garzik writes:
> hrm.... at this point we have deviated massively from the standard > Promise method of hard reset... > > * set PMP port
 > * make hotplug irqs
 > * reset port# in PDC_GLOBAL_CTL
 > * pdc_reset_port()
 > * reset FPDMA -- probably a good idea even if not doing FPDMA
 > * clear SATA Error register (0xffffffff)
 > * clear errors-reported-from-link-layer register
 > * wait standard length of time for SATA connection
 > * clear hotplug bits
 > * set PMP port
> > The PDC_GLOBAL_CTL bitbang is the most notable missing element in the
I assume you meant the PCI control register (offset 0x48).

> hard reset path, though we also miss clearing an apparently-important > error register as well. FPDMA reset would be a good idea I think, even > if not in use, mainly for paranoia's sake and because that's what > Promise's driver does.

Here's a patch on top of 2.6.28-rc6 that should make sata_promise's
reset sequences a closer match to what Promise's drivers do.

- soft reset (pdc_reset_port):
  * wait for ATA engine to not be in packet command mode (2nd gen only)
  * write reset bit in PDC_CTLSTAT before the first read in the loop
  * for 2nd gen SATA follow up with FPDMA reset and clearing error status registers
- hard reset (pdc_sata_hardreset):
  * wait for ATA engine to not be in packet command mode (2nd gen only)
  * reset ATA engine via the PCI control register
  * Tejun's change to use non-waiting hardreset + follow-up SRST

I'm not changing the hotplug mask bits since they are taken care
of by sata_promise's ->freeze() and ->thaw() operations. And I'm
not writing the PMP port # because that's always zero (for now).

Tested here on a SATAII150 TX2plus w/ two sata disks, some hdparm -y
+ smartctl tests which used to cause timeouts on one of those disks,
and some parallel dd:s to stress things a little. No issues found.
I'll test it on a 1st gen 20378 next week.

Testers welcome.

Any updates?


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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux