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

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

 



Jeff Garzik writes:
 > 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?

Not really. I've kept the patch up to date for newer kernels, but
there's been no testing by others that I know of. Do you want to
include it in a testing branch?
--
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