[git patches] libata update

From: Jeff Garzik
Date: Fri Oct 12 2007 - 15:40:28 EST



[ I just sent this upstream to Andrew and Linus ]

Now that I have nailed down the corruption problem, I can attend to
this... Fun stuff:

* port multiplier support (like an ethernet hub, only dumber)

* Asynchronous notification -- finally userspace CD-ROM polling can go away!
(NOTE: waiting on James B to apply the piece that actually makes this
work...)

* Alan continues to hammer out edge cases in generic ATA support. An
amazing amount of ancient and/or obscure hardware works with libata thanks to him :)

* Turn on ACPI by default (watch for bug reports!). This should make
suspend/resume work a lot better.

* New drivers for embedded ATA chips.


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/kernel-parameters.txt | 8 +-
drivers/ata/Kconfig | 59 ++-
drivers/ata/Makefile | 8 +-
drivers/ata/ahci.c | 451 +++++++---
drivers/ata/ata_generic.c | 16 +-
drivers/ata/ata_piix.c | 71 +-
drivers/ata/libata-acpi.c | 165 +++-
drivers/ata/libata-core.c | 1329 ++++++++++++++++++----------
drivers/ata/libata-eh.c | 922 ++++++++++++++------
drivers/ata/libata-pmp.c | 1191 +++++++++++++++++++++++++
drivers/ata/libata-scsi.c | 496 +++++++----
drivers/ata/libata-sff.c | 69 +-
drivers/ata/libata.h | 41 +-
drivers/ata/pata_acpi.c | 395 ++++++++
drivers/ata/pata_ali.c | 17 +-
drivers/ata/pata_amd.c | 43 +-
drivers/ata/pata_artop.c | 20 +-
drivers/ata/pata_at32.c | 441 +++++++++
drivers/ata/pata_atiixp.c | 15 +-
drivers/ata/pata_bf54x.c | 1627 ++++++++++++++++++++++++++++++++++
drivers/ata/pata_cmd640.c | 4 +-
drivers/ata/pata_cmd64x.c | 43 +-
drivers/ata/pata_cs5520.c | 47 +-
drivers/ata/pata_cs5530.c | 4 +-
drivers/ata/pata_cs5535.c | 4 +-
drivers/ata/pata_cypress.c | 4 +-
drivers/ata/pata_efar.c | 11 +-
drivers/ata/pata_hpt366.c | 4 +-
drivers/ata/pata_hpt37x.c | 28 +-
drivers/ata/pata_hpt3x2n.c | 11 +-
drivers/ata/pata_hpt3x3.c | 10 +-
drivers/ata/pata_icside.c | 39 +-
drivers/ata/pata_isapnp.c | 8 +-
drivers/ata/pata_it8213.c | 11 +-
drivers/ata/pata_it821x.c | 17 +-
drivers/ata/pata_ixp4xx_cf.c | 24 +-
drivers/ata/pata_jmicron.c | 24 +-
drivers/ata/pata_legacy.c | 27 +-
drivers/ata/pata_marvell.c | 12 +-
drivers/ata/pata_mpc52xx.c | 9 +-
drivers/ata/pata_mpiix.c | 25 +-
drivers/ata/pata_netcell.c | 5 +-
drivers/ata/pata_ns87410.c | 11 +-
drivers/ata/pata_ns87415.c | 467 ++++++++++
drivers/ata/pata_oldpiix.c | 11 +-
drivers/ata/pata_opti.c | 11 +-
drivers/ata/pata_optidma.c | 26 +-
drivers/ata/pata_pcmcia.c | 16 +-
drivers/ata/pata_pdc2027x.c | 114 ++--
drivers/ata/pata_pdc202xx_old.c | 23 +-
drivers/ata/pata_platform.c | 16 +-
drivers/ata/pata_qdi.c | 15 +-
drivers/ata/pata_radisys.c | 4 +-
drivers/ata/pata_rz1000.c | 13 +-
drivers/ata/pata_sc1200.c | 4 +-
drivers/ata/pata_scc.c | 66 +-
drivers/ata/pata_serverworks.c | 8 +-
drivers/ata/pata_sil680.c | 11 +-
drivers/ata/pata_sis.c | 33 +-
drivers/ata/pata_sl82c105.c | 11 +-
drivers/ata/pata_triflex.c | 11 +-
drivers/ata/pata_via.c | 16 +-
drivers/ata/pata_winbond.c | 13 +-
drivers/ata/pdc_adma.c | 103 ++-
drivers/ata/sata_inic162x.c | 34 +-
drivers/ata/sata_mv.c | 68 +-
drivers/ata/sata_nv.c | 53 +-
drivers/ata/sata_promise.c | 27 +-
drivers/ata/sata_qstor.c | 17 +-
drivers/ata/sata_sil.c | 53 +-
drivers/ata/sata_sil24.c | 341 ++++++--
drivers/ata/sata_sis.c | 2 -
drivers/ata/sata_svw.c | 14 +-
drivers/ata/sata_sx4.c | 25 +-
drivers/ata/sata_uli.c | 16 +-
drivers/ata/sata_via.c | 35 +-
drivers/ata/sata_vsc.c | 16 +-
drivers/scsi/ipr.c | 19 +-
drivers/scsi/libsas/sas_ata.c | 11 +-
include/asm-generic/libata-portmap.h | 5 -
include/linux/ata.h | 116 +++-
include/linux/libata.h | 320 +++++--
82 files changed, 7866 insertions(+), 2064 deletions(-)
create mode 100644 drivers/ata/libata-pmp.c
create mode 100644 drivers/ata/pata_acpi.c
create mode 100644 drivers/ata/pata_at32.c
create mode 100644 drivers/ata/pata_bf54x.c
create mode 100644 drivers/ata/pata_ns87415.c

Alan Cox (22):
libata: Correct IORDY handling
libata-core: Document some limits/assumptions about ID_ATA
libata: Note that our cache flush code needs fixing up
pata_cmd64x: Set up MWDMA modes properly
[libata] add ACPI cable detect API
libata pata_amd: ACPI checks for 80wire cable
libata pata_via: ACPI checks for 80wire cable
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
libata-portmap: Remove unused definitions
libata: Spot bridge chips
libata: Strict checking for identify reporting
libata: Update experimental tags to reflect reality better
pdc2027x: Switch properly to ioread/iowrite
pata_atiixp: Audit notes on locking
pata_pdc202xx_old MWDMA fixes, and notes
pata_ns87415: Initial cut at 87415/87560 IDE support
libata: Fix HPA handling regression
libata: Add a drivers/ide style DMA disable
libata: correct handling of SRST reset sequences
libata_scsi: Fix ATAPI transfer lengths
libata-core: Expose gtm methods for driver use
pata_acpi: ACPI driver support

Albert Lee (2):
libata: move ata_altstatus() to pio data xfer functions
libata: pata_pdc2027x PLL detection minor cleanup

Andrew Morton (1):
libata-add-irq_flags-to-struct-pata_platform_info-fix

Boaz Harrosh (2):
libata-scsi: Remove !use_sg code paths
libata-scsi: convert to use the data buffer accessors

Christian Lamparter (1):
ata_piix: disallow UDMA 133 on ICH5 & ICH7

Dave Jones (1):
libata: correct kernel parameter in documentation.

David Milburn (1):
libata-core: blacklist HITACHI HDS drives using wildcard blacklist matching

Jason Gaston (2):
ata_piix: replace spaces with tabs
ahci: RAID mode SATA patch for Intel Tolapai

Jeff Garzik (14):
[libata] pdc_adma: convert to new exception handling (EH) framework
[libata] Remove ->irq_ack() hook, and ata_dummy_irq_on()
[libata] Remove ->port_disable() hook
[libata] ata_piix: Use more-robust form of array initialization
[libata] blacklist Maxtor*BANC* using new wildcard blacklist matching
[libata] SCSI: support INQUIRY page 89h (ATA info page)
[libata] Slightly improved no-op REQUEST SENSE, SEND DIAGNOSTIC
[libata] SCSI: improve FORMAT UNIT; minor code cleanups
[libata] SCSI: clean up R/W recovery mode page
[libata] SCSI: simulator version, not device version, belongs in VPD
[libata] AHCI: enable AHCI mode, before using AHCI reset
[libata] ata_piix: add HP compaq laptop to short cable list
[libata] Turn on ACPI by default
[libata] struct pci_dev related cleanups

Kristen Carlson Accardi (4):
[libata] check for SATA async notify support
[libata] ahci: send event when AN received
ahci: Store interrupt value
ata: increase allowed config flags

Kristoffer Nyborg Gregertsen (1):
AVR32 PATA driver

Mark Lord (1):
libata: add support for ATA_16 on ATAPI

Matthew Garrett (1):
libata: Integrate ACPI-based PATA/SATA hotplug - version 5

Paolo Ornati (1):
libata: blacklist NCQ on Seagate Barracuda ST380817AS

Peer Chen (1):
ahci: Add MCP79 support to AHCI driver

Robert Hancock (1):
libata: add human-readable error value decoding

Satyam Sharma (1):
libata: Fix build failure on ppc64 drivers/ata/pata_scc.c

Sonic Zhang (1):
libata driver for bf548 on chip ATAPI controller.

Tejun Heo (61):
libata-link: introduce ata_link
libata-link: implement and use link/device iterators
libata-link: linkify PHY-related functions
libata-link: linkify EH action helpers
libata-link: linkify reset
libata-link: linkify config/EH related functions
libata-link: make two port flags HRST_TO_RESUME and SKIP_D2H_BSY link flags
libata-link: separate out link initialization functions
libata-link: implement ata_link_abort()
libata-link: add PMP links
libata-link: update ata_scsi_error() to handle PMP links
libata-link: update EH to deal with PMP links
libata-link: update hotplug to handle PMP links
libata-link: update Power Management to handle PMP links
libata: use ata_port_printk() in ata_wait_idle()
libata: add printf format attribute to ehi desc functions
libata: implement and use ata_port_desc() to report port configuration
libata: move EH repeat reporting into ata_eh_report()
libata: move ata_id_n_sectors() upward
libata: clean up read/set native_max address functions
libata: remiplement ata_hpa_resize()
ahci: reimplement port_map handling
libata: update ata_dev_try_classify() arguments
libata: assume ATA_DEV_ATA on diagnostic failure
libata: misc updates for AN
libata-pmp-prep: add PMP related constants, fields, ops and update helpers
libata-pmp-prep: add @new_class to ata_dev_revalidate()
libata-pmp-prep: make a number of functions global to libata
libata-pmp-prep: implement ops->qc_defer()
libata-pmp-prep: implement qc_defer helpers
libata-pmp-prep: implement ATA_LFLAG_NO_SRST, ASSUME_ATA and ASSUME_SEMB
libata-pmp-prep: implement ATA_LFLAG_NO_RETRY
libata-pmp-prep: implement ATA_LFLAG_DISABLED
libata-pmp-prep: implement EH fast-fail path
libata-pmp-prep: implement ATA_HORKAGE_SKIP_PM
libata-pmp-prep: implement sata_async_notification()
libata: fix ata_set_max_sectors()
sata_via: kill SATA_PATA_SHARING register handling
libata: update spurious NCQ completion blacklist
libata-pmp: update ata_eh_reset() for PMP
libata-pmp: implement Port Multiplier support
libata-pmp: hook PMP support and enable it
libata-pmp: extend ACPI support to cover PMP
libata-pmp: implement qc_defer for command switching PMP support
sata_sil24: implement PMP support
sata_sil24: implement PORT_RST
ahci: implement PMP support
ahci: move host flags over to pi.private_data
ahci: implement AHCI_HFLAG_NO_PMP
libata: add HDT722516DLA380 to NCQ blacklist
libata: add ST9160821AS / 3.ALD to NCQ blacklist
pata_jmicron: match vendor and class code only
libata: clear ehi description after initial host report
libata: skip suppress reporting if ATA_EHI_QUIET
libata: wrap schedule_timeout_uninterruptible() in loop
ahci: kill leftover from enabling NCQ over PMP
ahci: clean up PORT_IRQ_BAD_PMP enabling
ahci: fix notification handling
libata: add @timeout to ata_exec_internal[_sg]()
libata: implement ATA_PFLAG_RESETTING
libata: use ata_exec_internal() for PMP register access

[patch snipped due to size; grab it from git]

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