linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET] libata: new reset mechanism, take#2
@ 2006-01-24  8:05 Tejun Heo
  2006-01-24  8:05 ` [PATCH 01/12] libata: export ata_busy_sleep Tejun Heo
                   ` (11 more replies)
  0 siblings, 12 replies; 21+ messages in thread
From: Tejun Heo @ 2006-01-24  8:05 UTC (permalink / raw)
  To: jgarzik, linux-ide, albertcc; +Cc: htejun


Hello, all.

This is the second take of new reset mechanism patchset and against
upstream-2.6.17 + eh-misc-updates patchset + three ahci update patches
I've sent yesterday.

The goals of new reset mechanism are.

* Do not allow individual reset methods manipulate libata internal
  data structures (e.g. disable port) to give more control to higher
  driving logic (e.g. to allow retries).

* Goes hand-in-hand with above.  Make low level operations easily
  shareable with other uses (probe and EH).

* Minimize code duplications but yet allow flexibility if needed.

Major difference from the first take is that core layer doesn't
directly drive resets anymore.  It just calls ->probe_reset and the
rest is upto the low level driver.  However, as reset driving logic is
identical for most drivers, helper routines are supplied such that low
level drivers only have to implement supported reset operations.

Jeff, I think the above change hopefully resolves your concern about
fixed driving logic.  The other issue was regarding how reset itself
should be performed - resets are event-driven in nature and should be
implemented accordingly as a qc protocol.  I still disagree and don't
really see how it can be done.  My rationales are in the following two
messages.  Can you please share your thoughts in deeper detail?

http://marc.theaimsgroup.com/?l=linux-ide&m=113497224219265&w=2
http://marc.theaimsgroup.com/?l=linux-ide&m=113497644716191&w=2

Thanks.

--
tejun



^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2006-01-29  2:41 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-24  8:05 [PATCHSET] libata: new reset mechanism, take#2 Tejun Heo
2006-01-24  8:05 ` [PATCH 01/12] libata: export ata_busy_sleep Tejun Heo
2006-01-27  4:18   ` Jeff Garzik
2006-01-24  8:05 ` [PATCH 04/12] libata: implement ata_drive_probe_reset() Tejun Heo
2006-01-28  1:58   ` Jeff Garzik
2006-01-24  8:05 ` [PATCH 11/12] ahci: convert to new reset mechanism Tejun Heo
2006-01-24  8:05 ` [PATCH 02/12] libata: modify ata_dev_try_classify Tejun Heo
2006-01-27  4:20   ` Jeff Garzik
2006-01-24  8:05 ` [PATCH 10/12] ata_piix: convert sata to new reset mechanism Tejun Heo
2006-01-24  8:05 ` [PATCH 07/12] sata_sil24: convert " Tejun Heo
2006-01-24  8:05 ` [PATCH 08/12] sata_sil24: add hardreset Tejun Heo
2006-01-24  8:05 ` [PATCH 06/12] sata_sil: convert to new reset mechanism Tejun Heo
2006-01-28 18:09   ` Jeff Garzik
2006-01-28 18:27     ` Jeff Garzik
2006-01-28 23:17     ` Tejun
2006-01-29  2:41       ` Jeff Garzik
2006-01-24  8:05 ` [PATCH 03/12] libata: new ->probe_reset operation Tejun Heo
2006-01-24  8:05 ` [PATCH 05/12] libata: implement standard reset component operations and ->probe_reset Tejun Heo
2006-01-28  1:58   ` Jeff Garzik
2006-01-24  8:05 ` [PATCH 09/12] ata_piix: convert pata to new reset mechanism Tejun Heo
2006-01-24  8:05 ` [PATCH 12/12] ahci: add softreset Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).