[git patches] libata updates 1 of 3

From: Jeff Garzik
Date: Fri Feb 09 2007 - 20:09:38 EST



(just sent this upstream to Andrew and Linus)

This is libata push 1 of 3. This is largely the "accumulated driver
updates" push: lots of minor changes. A few new drivers.

The most notable thing is "devres", an optional subsystem for drivers
that greatly simplifies the task of driver housekeeping, if you have
to acquire+map then later unmap+free a bunch of MMIO resources,
some PIO resources, an IRQ (or two or three) like we do with ATA
host controllers. devres is only used by libata drivers at the moment,
but the APIs are generic enough to be used by any driver. This should
enable the elimination of several highly common code patterns in various
drivers.

devres, in turn, has enabled us to finally merge the patches that convert
libata to using the lib/iomap.c stuff. Anyone with eyes can see the
code savings in libata-sff that iomap brings.

Kudos to Tejun Heo for the devres work.

I will be pushing ACPI support on Saturday or Sunday, in order to stage
it into a separate 2.6.20-gitX snapshot. That's libata push 2 of 3.

The third push will eliminate the ugly split-driver configuration
created by quirk_intel_ide_combined() and ____request_resource(),
whereby libata claims one half of a controller (SATA), and old-IDE
claims the other half (PATA). libata wins the battle for DMA and IRQ,
and so old-IDE (PATA) is driven via the slower PIO data xfer methods.

Was necessary at the time, as libata lacked ATAPI support and old-IDE
failed to handle irq storms created by newer Intel IDE irq-ack behavior.
But times have changed, and neither conditions remain true. So we can
remove the hacks.

Please pull from 'upstream-linus' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git upstream-linus

to receive the following updates:

Documentation/driver-model/devres.txt | 268 +++++++++++
drivers/ata/Kconfig | 41 ++-
drivers/ata/Makefile | 3 +
drivers/ata/ahci.c | 236 +++-------
drivers/ata/ata_generic.c | 8 +-
drivers/ata/ata_piix.c | 56 ++--
drivers/ata/libata-core.c | 591 ++++++++-----------------
drivers/ata/libata-eh.c | 7 +-
drivers/ata/libata-scsi.c | 98 +++--
drivers/ata/libata-sff.c | 641 ++++++++-------------------
drivers/ata/libata.h | 4 +-
drivers/ata/pata_ali.c | 32 +-
drivers/ata/pata_amd.c | 36 +-
drivers/ata/pata_artop.c | 12 +-
drivers/ata/pata_atiixp.c | 6 +-
drivers/ata/pata_cmd64x.c | 18 +-
drivers/ata/pata_cs5520.c | 41 ++-
drivers/ata/pata_cs5530.c | 41 +-
drivers/ata/pata_cs5535.c | 6 +-
drivers/ata/pata_cypress.c | 6 +-
drivers/ata/pata_efar.c | 6 +-
drivers/ata/pata_hpt366.c | 26 +-
drivers/ata/pata_hpt37x.c | 61 +--
drivers/ata/pata_hpt3x2n.c | 26 +-
drivers/ata/pata_hpt3x3.c | 8 +-
drivers/ata/pata_isapnp.c | 21 +-
drivers/ata/pata_it8213.c | 354 +++++++++++++++
drivers/ata/pata_it821x.c | 58 +--
drivers/ata/pata_ixp4xx_cf.c | 50 +--
drivers/ata/pata_jmicron.c | 8 +-
drivers/ata/pata_legacy.c | 166 ++++----
drivers/ata/pata_marvell.c | 12 +-
drivers/ata/pata_mpc52xx.c | 538 +++++++++++++++++++++++
drivers/ata/pata_mpiix.c | 113 ++---
drivers/ata/pata_netcell.c | 6 +-
drivers/ata/pata_ns87410.c | 6 +-
drivers/ata/pata_oldpiix.c | 24 +-
drivers/ata/pata_opti.c | 24 +-
drivers/ata/pata_optidma.c | 40 +-
drivers/ata/pata_pcmcia.c | 27 +-
drivers/ata/pata_pdc2027x.c | 122 ++---
drivers/ata/pata_pdc202xx_old.c | 41 +-
drivers/ata/pata_platform.c | 67 +---
drivers/ata/pata_qdi.c | 50 ++-
drivers/ata/pata_radisys.c | 6 +-
drivers/ata/pata_rz1000.c | 6 +-
drivers/ata/pata_sc1200.c | 6 +-
drivers/ata/pata_serverworks.c | 31 +-
drivers/ata/pata_sil680.c | 8 +-
drivers/ata/pata_sis.c | 70 +++-
drivers/ata/pata_sl82c105.c | 10 +-
drivers/ata/pata_triflex.c | 6 +-
drivers/ata/pata_via.c | 22 +-
drivers/ata/pata_winbond.c | 49 ++-
drivers/ata/pdc_adma.c | 120 ++----
drivers/ata/sata_inic162x.c | 781 +++++++++++++++++++++++++++++++++
drivers/ata/sata_mv.c | 200 +++------
drivers/ata/sata_nv.c | 629 ++++++++++++++++-----------
drivers/ata/sata_promise.c | 379 +++++++++++-----
drivers/ata/sata_qstor.c | 138 ++----
drivers/ata/sata_sil.c | 99 ++---
drivers/ata/sata_sil24.c | 178 +++-----
drivers/ata/sata_sis.c | 161 +++++---
drivers/ata/sata_svw.c | 127 +++---
drivers/ata/sata_sx4.c | 207 +++------
drivers/ata/sata_uli.c | 66 ++--
drivers/ata/sata_via.c | 193 ++++++---
drivers/ata/sata_vsc.c | 134 +++---
drivers/base/Kconfig | 12 +
drivers/base/Makefile | 1 +
drivers/base/base.h | 1 +
drivers/base/core.c | 2 +
drivers/base/dd.c | 3 +
drivers/base/devres.c | 644 +++++++++++++++++++++++++++
drivers/base/dma-mapping.c | 218 +++++++++
drivers/base/dmapool.c | 59 +++
drivers/pci/pci.c | 127 ++++++-
drivers/pci/quirks.c | 2 +-
include/linux/ata.h | 13 +-
include/linux/device.h | 38 ++
include/linux/dma-mapping.h | 29 ++-
include/linux/dmapool.h | 7 +
include/linux/interrupt.h | 6 +
include/linux/io.h | 21 +
include/linux/ioport.h | 20 +
include/linux/libata.h | 131 ++----
include/linux/pci.h | 9 +
include/linux/pci_ids.h | 3 +
kernel/irq/manage.c | 86 ++++
kernel/resource.c | 62 +++
lib/Makefile | 3 +-
lib/iomap.c | 299 +++++++++++++-
92 files changed, 6210 insertions(+), 3217 deletions(-)
create mode 100644 Documentation/driver-model/devres.txt
create mode 100644 drivers/ata/pata_it8213.c
create mode 100644 drivers/ata/pata_mpc52xx.c
create mode 100644 drivers/ata/sata_inic162x.c
create mode 100644 drivers/base/devres.c
create mode 100644 drivers/base/dma-mapping.c

Adrian Bunk (2):
drivers/ata/: make 4 functions static
fix CONFIG_SATA_SIS=y compile error

Akira Iguchi (2):
libata: add another IRQ calls (core and headers)
libata: add another IRQ calls (libata drivers)

Alan (10):
pata_it8213: Add new driver for the IT8213 card
sata_via: PATA support
libata-sff: Don't try and activate channels which are not in use
ahci: Remove jmicron fixup
libata: PIIX3 support
libata: trivial stuff
sata_sis: Support for PATA supports
Kconfig: clarify ATA_PIIX description
ata: Add defines for the iordy bits
libata: Early CFA adapters are not required to support mode setting

Alan Cox (1):
pci: Move PCI_VDEVICE from libata to core

Andrew Morton (2):
libata piix3 support warning fix
git-libata-all: forward declare struct device

Arjan van de Ven (1):
user of the jiffies rounding patch: ATA subsystem

Conke Hu (1):
Add pci class code for SATA & AHCI, and replace some magic numbers.

Dan Wolstenholme (1):
[libata] sata_vsc: support PCI MSI

Eric D. Mudama (1):
libata: rearrange dmesg info to add full ATA revision

J J (1):
ata_piix: add ICH7 on Acer 3682WLMi to laptop list

Jakub W. Jozwicki J (1):
pata_sis: implement laptop list and add ASUS A6K/A6U

Jeff Garzik (5):
[libata] trim trailing whitespace
[libata] sata_vsc: build fix after PCI MSI feature addition
[libata] Shuffle DRV_xxx in core and SiS drivers, to kill warnings
libata: build fix after dmesg probe output changes
libata: kill ATA_ENABLE_PATA

Mikael Pettersson (5):
sata_promise: TX2plus PATA support
sata_promise: ATAPI support
sata_promise: ATAPI cleanup
sata_promise: issue ATAPI commands as normal packets
sata_promise: handle ATAPI_NODATA ourselves

Robert Hancock (5):
sata_nv: add suspend/resume support v3 (Resubmit)
sata_nv: cleanup ADMA error handling
sata_nv: use ADMA for NODATA commands
sata_nv: wait for response on entering/leaving ADMA mode
sata_nv: propagate ata_pci_device_do_resume return value

Sergei Shtylyov (4):
pata_sl82c105: wrong assumptions about compatible PIO modes
(2.6.20) pata_oldpiix: fix PIO2 underclocking
(2.6.20) pata_mpiix: fix PIO setup issues
(2.6.20) pata_mpiix: probing cleanup (resend)

Sylvain Munaut (1):
libata: Add support for the MPC52xx ATA controller

Tejun Heo (18):
libata: straighten out ATA_ID_* constants
libata: use ata_id_c_string()
libata: handle pci_enable_device() failure while resuming
libata: kill qc->nsect and cursect
sata_inic162x: finally, driver for initio 162x SATA controllers, take #2
sata_promise: kill qc->nsect
libata: implement HDIO_GET_IDENTITY
devres: device resource management
libata: implement ata_host_detach()
libata: update libata core layer to use devres
libata: update libata LLDs to use devres
libata: remove unused functions
devres: implement pcim_iomap_regions()
iomap: iomap should be in obj-y not in lib-y
pata_platform: fix devres conversion
libata: convert to iomap
libata: add 150ms between completion of hardreset and status checking
sata_inic162x: fix a few glitches in hardreset

Uwe Koziolek (1):
sata_sis: support SiS966/966L


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