[PATCH] libata: Simplex and other mode filtering logic
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Mon, 27 Mar 2006 17:58:20 +0000 (18:58 +0100)
committerJeff Garzik <jeff@garzik.org>
Thu, 30 Mar 2006 00:30:28 +0000 (19:30 -0500)
commit5444a6f405618706eddbe1605ef8533b1b655764
tree9265a1e65563add47a9fe5f1ddae44d6dd0742e3
parent692785e798f341c057ff976c35a3d86ad5af8ac6
[PATCH] libata: Simplex and other mode filtering logic

Add a field to the host_set called 'flags' (was host_set_flags changed
to suit Jeff)
Add a simplex_claimed field so we can remember who owns the DMA channel
Add a ->mode_filter() hook to allow drivers to filter modes
Add docs for mode_filter and set_mode
Filter according to simplex state
Filter cable in core

This provides the needed framework to support all the mode rules found
in the PATA world. The simplex filter deals with 'to spec' simplex DMA
systems found in older chips. The cable filter avoids duplicating the
same rules in each chip driver with PATA. Finally the mode filter is
neccessary because drive/chip combinations have errata that forbid
certain modes with some drives or types of ATA object.

Drive speed setup remains per channel for now and the filters now use
the framework Tejun put into place which cleans them up a lot from the
older libata-pata patches.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Documentation/DocBook/libata.tmpl
drivers/scsi/libata-core.c
include/linux/libata.h