linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET] libata: implement new initialization model w/ iomap support
@ 2006-08-07  3:03 Tejun Heo
  2006-08-07  3:04 ` [PATCH 04/17] libata: implement several LLD init helpers Tejun Heo
                   ` (15 more replies)
  0 siblings, 16 replies; 33+ messages in thread
From: Tejun Heo @ 2006-08-07  3:03 UTC (permalink / raw)
  To: jgarzik, alan, mlord, albertcc, uchang, forrest.zhao, linux-ide,
	htejun

Hello, all.

This is the first take of new-init-model patchset.  This patchset
implements new init model for libata LLDs.  The new init model has the
following benefits.

* Consistency across different LLDs

  Provide helpers such that common codes live in one place and init
  sequence doesn't have to be creative.

* Flexibility and easy code sharing with suspend/resume

  Instead of using probe_ent, allocate host_set and initialize it
  directly.  This removes many restrictions of probe_ent and allows
  LLDs to share init/remove codes with suspend/resume easily as they
  use the same target data structure.

  IRQ management is also moved out of libata-core into libata-pci
  helpers which LLDs can use or override at will.

* More bookkeeping in libata-core, less in LLDDs

  Acquired resources are tracked by libata-core and helpers.  e.g. LLD
  doesn't have to remember which resources it has acquired, it can
  simply tell libata to release all resources on error path and driver
  detachments.  This simplies LLDs and fixes several dangling resource
  and double-free bugs.

* Support for iomap

  As with all other PCI resources, both PIO and mmio areas are managed
  by libata PCI helpers.  iomaps are automatically created on IO
  resource acqusition and destroyed on release.  LLDs can simply
  request which BARs it intends to use.  The rest is handled by
  libata PCI helpers.

This patchset has been tested on

* ata_piix	: ICH7R, most combinations and w/ induced resource
		  allocation errors
* ahci		: ICH7R
* sata_sil	: sil3112, sil3114
* sata_sil24	: sil3124, sil3132
* sata_via	: vt6420 (via C3)
* pdc_adma	: as broken as previous
* sata_promise	: PDC20375, tested w/ PATA port too (PATA bits not
		  included in this post)

If you have any controller which use one of the following drivers,
please test and report.

* sata_svw
* sata_sx4
* sata_uli
* sata_vsc
* sata_sis
* sata_qstor
* sata_nv (I can do this later)
* sata_mv

If this patchset is agreed upon, I'll update #pata-drivers
accordingly.

This patchset is against

[U] upstream
[1] + #upstream-fixes + several-fixes-against-upstream-fixes merged
[2] + improve-initialization-and-legacy-handling patchset, take #2
[3] + ahci-remove-irq-clearing-from-init_controller

[U] + [1] + [2] is #tj-upstream which is available at the following
URLs.

  http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-upstream
  git://htj.dyndns.org/libata-tj tj-upstream 

Thanks.

--
tejun

[U] 236a686b56428a8967a057a2396f9be74e2ee652
[1] http://article.gmane.org/gmane.linux.ide/12393
[2] http://article.gmane.org/gmane.linux.ide/12422
[3] http://article.gmane.org/gmane.linux.ide/12423



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

end of thread, other threads:[~2006-08-10 12:22 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-07  3:03 [PATCHSET] libata: implement new initialization model w/ iomap support Tejun Heo
2006-08-07  3:04 ` [PATCH 04/17] libata: implement several LLD init helpers Tejun Heo
2006-08-09  5:01   ` Jeff Garzik
2006-08-09  5:08     ` Tejun Heo
2006-08-07  3:04 ` [PATCH 05/17] libata: implement PCI init helpers for new LLD init model Tejun Heo
2006-08-09  5:11   ` Jeff Garzik
2006-08-09  5:52     ` Tejun Heo
2006-08-09  6:41       ` Jeff Garzik
2006-08-09 11:00         ` Alan Cox
2006-08-10  7:12           ` Albert Lee
2006-08-10  7:27             ` Jeff Garzik
2006-08-10 12:36               ` Alan Cox
2006-08-10 12:22                 ` Tejun Heo
2006-08-09 12:54         ` Mark Lord
2006-08-09 11:02     ` Alan Cox
2006-08-09 11:13       ` Tejun Heo
2006-08-07  3:04 ` [PATCH 06/17] libata: reimplement ata_pci_init_one() using new init helpers Tejun Heo
2006-08-07  3:04 ` [PATCH 02/17] libata: implement ata_host_set_detach() and ata_host_set_free() Tejun Heo
2006-08-09  4:59   ` Jeff Garzik
2006-08-07  3:04 ` [PATCH 01/17] libata: implement ata_host_set_start/stop() Tejun Heo
2006-08-09  4:57   ` Jeff Garzik
2006-08-07  3:04 ` [PATCH 03/17] libata: separate out ata_host_set_alloc() and ata_host_set_attach() Tejun Heo
2006-08-09  5:00   ` Jeff Garzik
2006-08-07  3:04 ` [PATCH 11/17] libata: kill unused ->host_stop() operation and related functions Tejun Heo
2006-08-07  3:04 ` [PATCH 13/17] libata: move ->irq_handler from port_ops to port_info Tejun Heo
2006-08-07  3:04 ` [PATCH 12/17] libata: use LLD name where possible Tejun Heo
2006-08-07  3:04 ` [PATCH 10/17] libata: kill old init helpers Tejun Heo
2006-08-07  3:04 ` [PATCH 09/17] libata: use remove_one() for deinit instead of ->host_stop() Tejun Heo
2006-08-07  3:04 ` [PATCH 08/17] libata: update ata_pci_remove_one() using new PCI init helpers Tejun Heo
2006-08-07  3:04 ` [PATCH 15/17] libata: make ata_pci_acquire_resources() handle iomap Tejun Heo
2006-08-07  3:04 ` [PATCH 14/17] libata: make ata_host_set_alloc() take care of hpriv alloc/free Tejun Heo
2006-08-07  3:04 ` [PATCH 17/17] libata: kill unused ATA_FLAG_MMIO Tejun Heo
2006-08-07  3:08 ` [git-patches] libata: implement new initialization model w/ iomap support 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).