What's in libata-dev.git?

From: Jeff Garzik
Date: Tue Apr 17 2007 - 13:05:00 EST



I just checked in some useful improvements, so I thought it would be a
good time to review what's queued for 2.6.21 in
git://git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git

Here is a quick tour of the branches currently available:
ALL Meta-branch. Conduit for external testing.
Contains all branches noted as "in -mm".
mv-ahci Marvell AHCI SATA support (in -mm)
reset-seq Updated ATA reset sequence (in -mm)
upstream Changes queued for 2.6.22 (in -mm)
sii-lbt Enables SiI 311x enhanced DMA support
(Works for some, but not all)
mv-eh sata_mv conversion to new EH
(Works for some, but not all)

Feel free to ask about other branches, if you want more details. The
most interesting branch is 'upstream', which among other stuff contains
these notable changes:

* Remove PCI/IDE/libata combined mode quirk. This should result in
happier users, getting better performance. Now that both old-IDE and
libata are fully capable of driving the old-style Intel PIIX PCI IDE
interface, we can eliminate the performance-killing split-driver
configuration created by the quirk.

Now, after the quirk has been removed, normal kernel resource
reservation code will decide whether old-IDE or libata attaches to
Intel PIIX PATA/SATA. Thus, module choice / load order is the main
factor that determines which driver attaches.

The lone downside is that this change will result in a few users
having to suffer through an hdX<->sdX change for their devices. This
should be mitigated on modern distros by mount-by-LABEL and LVM, which
makes such changes more seamless. (me)

* Moves libata driver API to a sane register/unregister style model.
This eliminates a lot of pointless duplication and copying. This is a
far more natural way to write drivers, and mimics several other
well-known kernel APIs. Life is now easier for driver writers. (Tejun)

* Host Protected Area "HPA" support. ATA drives allow BIOS to reserve a
portion of your hard drive for its own use, thus "protecting" the data
from the "host" (OS). The old-IDE driver makes this area available to
Linux users, but libata did not (until now). Controlled by a module
option ignore_hpa, if you wish to alter the default behavior. (Alan)

* Improving libata API, so that ->post_set_mode hook can be removed (Alan)

* Further PATA work, bringing the PATA drivers up to snuff. Fedora
is testing libata PATA support for Fedora 7, so that area is getting a
lot of attention right now. (Alan)

* Remove hardcoded 512 sector size, and enable support for ATA commands
READ/WRITE LONG. (Mark)

* New ->cable_detect() hook, which simplifies the code (Alan)


Diffstat and shortlog for 'upstream' branch:

arch/i386/defconfig | 1 -
arch/parisc/configs/c3000_defconfig | 1 -
arch/x86_64/defconfig | 1 -
drivers/ata/Kconfig | 43 +-
drivers/ata/Makefile | 1 +
drivers/ata/ahci.c | 444 ++++++++--------
drivers/ata/ata_generic.c | 32 +--
drivers/ata/ata_piix.c | 56 +--
drivers/ata/libata-core.c | 978 ++++++++++++++++++++++++-----------
drivers/ata/libata-eh.c | 6 +-
drivers/ata/libata-scsi.c | 85 +++-
drivers/ata/libata-sff.c | 631 +++++++++++++++--------
drivers/ata/libata.h | 10 +-
drivers/ata/pata_ali.c | 74 +---
drivers/ata/pata_amd.c | 94 ++--
drivers/ata/pata_artop.c | 26 +-
drivers/ata/pata_atiixp.c | 26 +-
drivers/ata/pata_cmd640.c | 304 +++++++++++
drivers/ata/pata_cmd64x.c | 34 +-
drivers/ata/pata_cs5520.c | 145 +++---
drivers/ata/pata_cs5530.c | 15 +-
drivers/ata/pata_cs5535.c | 24 +-
drivers/ata/pata_cypress.c | 14 +-
drivers/ata/pata_efar.c | 31 +-
drivers/ata/pata_hpt366.c | 26 +-
drivers/ata/pata_hpt37x.c | 368 ++++++--------
drivers/ata/pata_hpt3x2n.c | 29 +-
drivers/ata/pata_hpt3x3.c | 22 +-
drivers/ata/pata_isapnp.c | 44 +-
drivers/ata/pata_it8213.c | 36 +-
drivers/ata/pata_it821x.c | 36 +--
drivers/ata/pata_ixp4xx_cf.c | 40 +-
drivers/ata/pata_legacy.c | 45 +-
drivers/ata/pata_marvell.c | 20 +-
drivers/ata/pata_mpc52xx.c | 49 +-
drivers/ata/pata_mpiix.c | 40 +-
drivers/ata/pata_netcell.c | 31 +-
drivers/ata/pata_ns87410.c | 6 +-
drivers/ata/pata_oldpiix.c | 6 +-
drivers/ata/pata_opti.c | 5 +-
drivers/ata/pata_optidma.c | 54 +-
drivers/ata/pata_pcmcia.c | 77 ++-
drivers/ata/pata_pdc2027x.c | 158 +++---
drivers/ata/pata_pdc202xx_old.c | 45 +--
drivers/ata/pata_platform.c | 44 +-
drivers/ata/pata_qdi.c | 47 +-
drivers/ata/pata_radisys.c | 37 +--
drivers/ata/pata_rz1000.c | 28 +-
drivers/ata/pata_sc1200.c | 1 +
drivers/ata/pata_scc.c | 51 +--
drivers/ata/pata_serverworks.c | 34 +-
drivers/ata/pata_sil680.c | 11 +-
drivers/ata/pata_sis.c | 109 +---
drivers/ata/pata_sl82c105.c | 2 +-
drivers/ata/pata_triflex.c | 4 +-
drivers/ata/pata_via.c | 27 +-
drivers/ata/pata_winbond.c | 99 ++--
drivers/ata/pdc_adma.c | 85 ++--
drivers/ata/sata_inic162x.c | 86 ++--
drivers/ata/sata_mv.c | 213 ++++----
drivers/ata/sata_nv.c | 130 +++---
drivers/ata/sata_promise.c | 398 ++++++++-------
drivers/ata/sata_qstor.c | 62 +--
drivers/ata/sata_sil.c | 118 +++---
drivers/ata/sata_sil24.c | 122 ++---
drivers/ata/sata_sis.c | 50 +--
drivers/ata/sata_svw.c | 107 ++--
drivers/ata/sata_sx4.c | 150 +++---
drivers/ata/sata_uli.c | 65 +--
drivers/ata/sata_via.c | 217 ++++-----
drivers/ata/sata_vsc.c | 72 +--
drivers/pci/quirks.c | 113 ----
drivers/scsi/ipr.c | 3 +-
include/linux/ata.h | 8 +
include/linux/ioport.h | 1 -
include/linux/libata.h | 68 ++--
include/linux/pci.h | 1 +
include/linux/pci_ids.h | 1 -
kernel/resource.c | 21 -
lib/devres.c | 26 +
80 files changed, 3548 insertions(+), 3276 deletions(-)
create mode 100644 drivers/ata/pata_cmd640.c

Alan Cox (34):
libata: dev_config does not need ap and adev passing
libata: cable detection fixes
pata_cmd640: CMD640 PCI support
pata_it8213: Cable detect
pata_marvell: Cable and reset fixes
pata_sis: Clean up using cable_detect methods
pata_via: Use cable_detect method
pata_cmd640: Multiple updates
libata: Restore Kconfig updated experimental levels and correct
libata-core: fix comments on cable type
sata_promise: Switch to cable method, clean up some bits as a result
pata_platform: Add cable_detect method
pata_rz1000: support cable_detect
pata_sc1200: restore cable type
pata_radisys: support cable_detect
pata_atiixp: support ->cable_detect
pata_efar: support ->cable_detect
pata_hpt366: support ->cable_detect
pata_hpt37x: Updates from drivers/ide work
pata: expose set_mode method so it can be wrapped
libata-core: Fix the iordy methods
sata_sil: First step to removing ->post_set_mode
libata: Change prototype of mode_filter to remove ata_port*
pcmcia - spot slave decode flaws (for testing)
pata_ali: remove all the crap again and switch to cable_detect method
pata_qdI: restore cable detect
pata_netcell: re-remove all the crud
pata_sl82c105: restore cable detect method
pata_winbond: restore cable method
pata_optidma: rework for cable detect and to remove post_set_mode()
pata: cable methods
pata_winbond
pata_pdc2027x: Updates
libata: HPA support

Andrew Morton (1):
git-libata-all-ipr-fix

Conke Hu (1):
ahci.c: remove non-existing SB600 raid id (re-send)

Dmitriy Monakhov (1):
libata: handle ata_pci_device_do_resume() failure while resuming

Jeff Garzik (8):
[libata] sata_mv: remove extra braces
[libata] export sata_print_link_status()
[libata] sata_mv: clean up DMA boundary issues, turn on 64-bit DMA
[libata] Update several PATA drivers for new ->cable_detect hook
[libata] More PATA driver ->cable_detect support
[libata] sata_mv: support ->cable_detect
[libata] turn on !IORDY filter
libata/IDE: remove combined mode quirk

Mark Lord (2):
RESEND: libata: check cdb len per dev instead of per host
libata: add support for READ/WRITE LONG

Mikael Pettersson (4):
sata_promise: add missing cable_detect hooks
sata_promise: separate SATA and PATA ops
sata_promise: decode and report error reasons
sata_promise: fix error decode regression

Morrison, Tom (1):
Support for Marvell 7042 Chip

Robert Hancock (2):
libata: warn if speed limited due to 40-wire cable
sata_nv: don't read shadow registers when in ADMA mode

Robin H\. Johnson (1):
Add notation that the Asus W5F laptop has a short cable instead of 80-wire.

Tejun Heo (20):
iomap: implement pcim_iounmap_regions()
libata: hardreset on SERR_INTERNAL
ahci: implement ata_save/restore_initial_config()
ahci: move port_map handling to ahci_save_initial_config()
libata: fix native mode disabled port handling
libata: improve AC_ERR_DEV handling for ->post_internal_cmd
libata: kill type mismatch compile warning
ahci: add PCI ID for new VIA chip
libata: allocate ap separately from shost
libata: separate out ata_host_start()
libata: separate out ata_host_alloc() and ata_host_register()
libata: implement ata_host_alloc_pinfo() and ata_host_register()
libata: convert legacy PCI host handling to new init model
libata: convert native PCI host handling to new init model
libata: add init helpers including ata_pci_prepare_native_host()
libata: convert drivers with combined SATA/PATA ports to new init model
libata: convert ata_pci_init_native_mode() users to new init model
libata: convert the remaining SATA drivers to new init model
libata: convert the remaining PATA drivers to new init model
libata: kill probe_ent and related helpers

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