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:28 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox