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:
 > 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?

I can at least make sure it is in #ALL and #NEXT, two meta-branches in libata-dev.git that are forwarded to akpm's -mm tree and linux-next, respectively, for wider public testing.

We can give it more-public testing and hopefully get a bit more feedback.

And you can always post to linux-kernel and linux-ide requesting testers... that's something even non-programmers can do. Something like "Request for SATA Promise testing" would surely get at least a few responses...

	Jeff




--
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