From: Jeff Garzik <jgarzik@pobox.com>
To: linux-ide@vger.kernel.org
Cc: Linux Kernel <linux-kernel@vger.kernel.org>
Subject: [sata] libata update
Date: Fri, 26 Mar 2004 21:27:29 -0500 [thread overview]
Message-ID: <4064E691.2070009@pobox.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1041 bytes --]
More work on libata... human-readable summary:
* scsi portion of command submission path now a lot more lightweight.
Should reduce CPU usage a bit.
* improved documentation (see below)
* New SiS SATA driver.
* Promise: minor improvements in locking, error handling, and
initialization. Promise users, please test.
* Intel ICH5: minor improvements in probing and combined mode handling.
Intel users, please test.
This is going to Linus after 2.6.5 is released.
BK repositories:
http://gkernel.bkbits.net/libata-2.[46]
Patches:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.4.25-libata15.patch.bz2
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.5-rc2-bk6-libata2.patch.bz2
And also, there are some PDF docs generated from the source code.
Although this is always available via "make pdfdocs", I also post this
document at
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/libata.pdf
I have attached the short and long changelogs for the above patches,
versus upstream 2.6.x.
[-- Attachment #2: changelog.txt --]
[-- Type: text/plain, Size: 1150 bytes --]
<uwe.koziolek:gmx.net>:
o [libata] Add driver for SiS 964/180 SATA
Jeff Garzik:
o [libata sata_promise] better locking and error handling
o [libata] more documentation
o [libata] more cmd queue path cleanups
o [libata] more command queue path cleanup
o [libata] clean up command queue/submit path a bit
o [libata sata_promise] minor initialization updates
o [libata] documentation, and a couple tiny cleanups
o [libata] use scsi host lock
o [libata] reduce diff with 2.4 libata backport
o [libata] pci_dma_error() was renamed to pci_dma_mapping_error()
o [ata] move some generic stuff linux/libata.h -> linux/ata.h
o [libata] consolidate data transfer mode handling
o [libata] set up some of the per-command data beforehand
o [libata sata_promise] check for PATA port on PDC20375
o [libata ata_piix] fix combined mode device detection
o [libata ata_piix] clean up combined mode handling
o [libata ata_piix] do not disable SATA port on module unload
o [libata] use kmap_atomic() rather than kmap()
o [libata] use new pci_dma_error() to check for pci_map_single() failure
o [libata sata_sis] minor cleanups
[-- Attachment #3: changelog-long.txt --]
[-- Type: text/plain, Size: 5886 bytes --]
ChangeSet@1.1694, 2004-03-26 20:40:58-05:00, jgarzik@redhat.com
[libata sata_promise] better locking and error handling
* Prefer spin_lock() to spin_lock_irq() in interrupt handler
* Reset each port, before probing the SATA phy
* Reset port when every time an error occurs
ChangeSet@1.1673.6.13, 2004-03-26 18:02:34-05:00, jgarzik@redhat.com
[libata] more documentation
libata-scsi.c should now be fully documented.
ChangeSet@1.1673.6.12, 2004-03-26 04:04:17-05:00, jgarzik@redhat.com
[libata] more cmd queue path cleanups
Final part in tonight's series of changes to clean up the
command queueing path.
The simulate-ATA-over-SCSI code is moved to a new function,
ata_scsi_simulate(), and ata_scsi_rw_queue() is renamed to
ata_scsi_translate(). With the SCSI CDB debugging dump function
also moved into its own function, the queue-command path is now
nice, compact, and readable.
ChangeSet@1.1673.6.11, 2004-03-26 03:32:10-05:00, jgarzik@redhat.com
[libata] more command queue path cleanup
A new helper ata_scsi_xlat_possible(), and the command queue path
gets a bit more compact.
As side effects we kill the 'cmd_size' argument from two functions,
and mark ata_scsi_rw_queue() as static, as its only needed
in libata-scsi.c.
ChangeSet@1.1673.6.10, 2004-03-26 03:20:47-05:00, jgarzik@redhat.com
[libata] clean up command queue/submit path a bit
This change is part of a series that compartmentalizes and consolidates
ATA taskfile submission.
Here, the device-location-related checks are moved out of the ->queuecommand()
hook and into an inline helper function.
ChangeSet@1.1673.6.9, 2004-03-26 01:13:20-05:00, jgarzik@redhat.com
[libata sata_promise] minor initialization updates
* remove incorrect PATA port check
* enable undocumented bit 13 in flash control register,
because the Promise driver does so.
* wait 10 ms after setting TBG mode, for the same reason.
ChangeSet@1.1673.6.8, 2004-03-25 17:23:41-05:00, jgarzik@redhat.com
[libata] documentation, and a couple tiny cleanups
Add more per-function source code documentation. Some of this stuff
is esoteric ATA crapola, and definitely needed to be documented.
Also, two tiny cleanups spotted while documenting:
* kill unused arg from internal function ata_dev_try_classify()
* kill unused return value from ata_dev_id_string()
ChangeSet@1.1673.6.7, 2004-03-25 14:40:17-05:00, jgarzik@redhat.com
[libata] use scsi host lock
In 2.4 we release io_request_lock and take our own per-host lock,
in the ->queuecommand() hook. In 2.6, the SCSI layer provides a
useful to simply use the lock we already have, via scsi_assign_lock().
ChangeSet@1.1673.6.6, 2004-03-25 14:36:59-05:00, jgarzik@redhat.com
[libata] reduce diff with 2.4 libata backport
ChangeSet@1.1673.6.5, 2004-03-25 14:36:27-05:00, jgarzik@redhat.com
[libata] pci_dma_error() was renamed to pci_dma_mapping_error()
ChangeSet@1.1643.1.215, 2004-03-25 01:57:34-05:00, jgarzik@redhat.com
[ata] move some generic stuff linux/libata.h -> linux/ata.h
struct ata_taskfile is generic, and so far its flags (ATA_TFLAG_xxx)
Also, move ATA_PROT_xxx definitions into their own enum.
ChangeSet@1.1643.1.214, 2004-03-25 01:44:08-05:00, jgarzik@redhat.com
[libata] consolidate data transfer mode handling
The various ways you can send data to/from your ATA device is
known as the ATA taskfile protocol: PIO single sector, PIO
multiple sector, DMA, DMA TCQ, DMA NCQ, ...
Prior to this change, the data direction (read/write) was encoded
implicitly into the ATA_PROT_xxx value itself. This increased
complexity in some areas, and inhibited flexibility in others.
This change separates data direction from taskfile protocol, and also
moves the data direction flag (ATA_QCFLAG_WRITE) down to a lower
level (ATA_TFLAG_WRITE).
ChangeSet@1.1643.1.213, 2004-03-25 00:53:07-05:00, jgarzik@redhat.com
[libata] set up some of the per-command data beforehand
The data transfer mode and the set of read/write commands we generate
during normal operation remains constant until we change the data
transfer mode.
This removes a series of branches in the read/write fast path,
and in general cleans up that particular spot of code.
ChangeSet@1.1643.1.212, 2004-03-24 23:50:34-05:00, jgarzik@redhat.com
[libata sata_promise] check for PATA port on PDC20375
We don't handle it yet, but this prints out a message in its presence,
permitting verification of the check and informing users why their
PATA device is not recognized.
ChangeSet@1.1643.1.211, 2004-03-23 12:35:54-05:00, jgarzik@redhat.com
[libata ata_piix] fix combined mode device detection
SATA port detection should not have assumed that a single SATA port
mapped to a single struct ata_port. Combined mode breaks this
assumption.
Change code to simply detect if one or more devices are present
on the struct ata_port, which is what we really wanted to do.
ChangeSet@1.1643.1.210, 2004-03-23 11:52:00-05:00, jgarzik@redhat.com
[libata ata_piix] clean up combined mode handling
ChangeSet@1.1643.1.209, 2004-03-23 11:14:06-05:00, jgarzik@redhat.com
[libata ata_piix] do not disable SATA port on module unload
We were disabling the SATA port, but not enabling it on module load.
So, modprobe+rmmod+modprobe would fail.
ChangeSet@1.1643.1.208, 2004-03-23 09:20:14-05:00, jgarzik@redhat.com
[libata] use kmap_atomic() rather than kmap()
ChangeSet@1.1643.1.207, 2004-03-22 23:40:01-05:00, jgarzik@redhat.com
[libata] use new pci_dma_error() to check for pci_map_single() failure
ChangeSet@1.1643.39.2, 2004-03-21 12:15:16-05:00, jgarzik@redhat.com
[libata sata_sis] minor cleanups
ChangeSet@1.1643.39.1, 2004-03-21 11:55:35-05:00, uwe.koziolek@gmx.net
[libata] Add driver for SiS 964/180 SATA.
next reply other threads:[~2004-03-27 2:27 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-27 2:27 Jeff Garzik [this message]
2004-03-30 22:59 ` [sata] libata update Petr Sebor
2004-03-30 23:14 ` Jeff Garzik
2004-03-31 1:43 ` Jarno Paananen
2004-03-31 1:50 ` Jeff Garzik
2004-03-31 1:53 ` Jarno Paananen
2004-03-30 23:16 ` Jeff Garzik
2004-03-30 23:26 ` Petr Sebor
2004-03-30 23:39 ` Bartlomiej Zolnierkiewicz
2004-03-30 23:47 ` Jeff Garzik
2004-03-31 0:28 ` Bartlomiej Zolnierkiewicz
2004-03-31 2:33 ` Jeff Garzik
2004-03-31 8:24 ` [PATCH] " Jeff Garzik
2004-03-31 11:50 ` Petr Sebor
2004-03-31 16:41 ` Jarno Paananen
2004-03-31 16:48 ` Jeff Garzik
2004-03-31 17:21 ` Jarno Paananen
2004-03-31 21:04 ` Jeff Garzik
2004-04-01 7:35 ` Petr Sebor
-- strict thread matches above, loose matches on Subject: below --
2004-04-25 2:48 Jeff Garzik
2004-04-25 4:24 ` J. Ryan Earl
2004-03-31 21:02 Jeff Garzik
2004-04-03 0:45 ` Erik Andersen
2004-03-30 21:31 Jeff Garzik
2004-03-27 22:07 Henrik Gustafsson
2004-03-27 22:20 ` Jeff Garzik
2004-03-23 18:04 Jeff Garzik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4064E691.2070009@pobox.com \
--to=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.