An error occurred fetching the project authors.
- 14 Jun, 2004 1 commit
-
-
Jeff Garzik authored
Since we want the probe phase to call other workqueues, this is required to eliminate future deadlocks. Other methods would include starting a single-shot thread just for probing, but overall, using a separate thread for probing is pointless since we are already in process context when we probe. So, we simply call ata_bus_probe directly.
-
- 02 Jun, 2004 2 commits
-
-
Pat LaVarre authored
Move hand-coded BMDMA status check into separate function.
-
Arjan van de Ven authored
-
- 18 May, 2004 1 commit
-
-
Greg Kroah-Hartman authored
-
- 17 May, 2004 1 commit
-
-
Jeff Garzik authored
Mainly involved fixing a great many docproc warnings, by filling in missing documentation in the source code.
-
- 16 May, 2004 3 commits
-
-
Jeff Garzik authored
Detection of an ATAPI taskfile is possible using a simple test on existing information, so there is no need to cache this value in a separate flag (ATA_QCFLAG_ATAPI). Instead, create and use a new helper function is_atapi_taskfile().
-
Jeff Garzik authored
* note a nasty problem with shared interrupts that must be fixed before we turn on certain code paths. * add a few comments to the READ CAPACITY scsi simulator * remove a FIXME comment from the TEST UNIT READY scsi simulator * add constant for ATA command CHECK POWER MODE, and associated "mandatory" power management feature set bit.
-
Jeff Garzik authored
The SCSI T10 committee is working on a document describing a standard method for translating ATA<->SCSI, since it being done quite often these days. Some of the recommendations are reasonable, and we implement two here: * Mirror that ATA 'removeable media' bit into INQUIRY output. * Change behavior of INQUIRY output field 'product revision' from the libata software version number to the first 4 bytes of the ATA device's firmware revision number. Rather than cache the firmware revision in struct ata_device, as was/is done with two other strings, I took the opportunity to eliminate the caching of the two other strings, 'vendor' and 'product'. These strings are now retrieved as needed from the IDENTIFY [PACKET] DEVICE info page, since we cache its entire contents. Retrieving a string from the identify-device page is done via the helper function ata_dev_id_string(), which is now exported. This patch winds up making struct ata_device 40 bytes smaller, and the libata core gets a bit smaller as well.
-
- 15 May, 2004 3 commits
-
-
Jeff Garzik authored
It's easier to do it this way, than polling, at the moment. Also, fix a test in ata_scsi_translate that was incorrectly erroring-out non-data commands.
-
Jeff Garzik authored
* now that ATAPI is close to working, making ATAPI DMA interrupts in ata_host_intr * remove unnecessary space character in printk() output (oh, the horror)
-
Jeff Garzik authored
Remove unused 'done_late' arg to ata_qc_complete(), which was never useful in 2.4, and never used at all in 2.6. This allows us to eliminate the same arg from ata_dma_complete(), and also make it more correct by passing the command rather than the ATA port structure as arg0.
-
- 13 May, 2004 5 commits
-
-
Jeff Garzik authored
The standard ATA bit nIEN in the Device Control register serves as the indicator for whether we are polling or not. As it mirrors ATA_QCFLAG_POLL completely, eliminate that in favor of testing ATA_NIEN bit.
-
Jeff Garzik authored
* Only call ata_sg_setup{_one} if ATA_QCFLAG_SG is set. Preparation for future use, as currently ATA_QCFLAG_SG is always set when ata_qc_issue is called. This change in theory is incorrect for Promise TX/SX4 drivers, since those drivers set up the Promise-specific packet in their ->fill_sg hook, which is now called conditionally. A FIXME that doesn't affect anything, for now. * ATA_PROT_ATAPI and ATA_PROT_ATAPI_DMA command issue need to be differentiated. * Create and use ata_qc_set_polling() to consistently set/clear the flags associated with using polling instead of interrupts.
-
Jeff Garzik authored
Now that we can specify ATAPI as a taskfile protocol, we can utilize the existing SCSI->ATA translation infrastructure to build an ATA PACKET command quickly and easily.
-
Jeff Garzik authored
-
Jeff Garzik authored
In order to support some new taskfile protocols, particularly ATAPI, the setup-and-start-DMA hook needs to be split into its component pieces, 'setup' and 'start'. For PCI IDE-style controllers, most of the code is moved into the 'setup' portion, with the 'start' portion only flipping a single bit in hardware.
-
- 10 May, 2004 1 commit
-
-
Jeff Garzik authored
* bug fix: make sure 'nsect' member of struct ata_queued_cmd is initialized each time a cmd is re-used. Only affects PIO data xfers, which nobody uses. * slightly change the way a device's flags are printed out. currently the only flag is 'lba48', but soon 'wcache' will appear also. * add WB-cache-related constants and macros to linux/ata.h
-
- 26 Apr, 2004 1 commit
-
-
Jeff Garzik authored
-
- 25 Apr, 2004 9 commits
-
-
Jeff Garzik authored
The semaphore was initialized and up'd for each command, but nobody was listening. Replace this with a completion, which may or may not be present.
-
Jeff Garzik authored
Make sure to initialize PIO data xfer state. Use queue_delayed_work() rather than manually calling schedule_timeout(), then queue_work(), ourselves.
-
Jeff Garzik authored
Remove a lot of redundant code in ATAPI packet submission. ATAPI is still disabled, it doesn't work yet.
-
Jeff Garzik authored
Integrate it into its caller.
-
Jeff Garzik authored
Now that libata-scsi module no longer calls queue_work() directly, we can localize the use of ata_wq.
-
Jeff Garzik authored
-
Jeff Garzik authored
This allows us to kill the katad thread itself, and several thread-related variables in struct ata_port.
-
Jeff Garzik authored
-
Jeff Garzik authored
libata creates one thread per ata_port structure. This is inadequate for our needs, and also cumbersome to maintain, now that workqueues and Rusty's thread work is available. This patch begins to move libata away from doing its own per-port thread, by moving the ATAPI command initiation code to work under the workqueue system. This patch also creates a private workqueue, global to all of libata.
-
- 24 Apr, 2004 2 commits
-
-
Jeff Garzik authored
When writing taskfile (an ATA command) to the controller, the exact setup of the taskfile is dependent on the taskfile "protocol": PIO, PIO Multiple, DMA, Non-data, etc. So, we separate out the submission of the taskfile to hardware into a separate function ata_qc_issue_prot(), which will later be the home for more code. Also, remove some dead code (#if 0'd).
-
Jeff Garzik authored
-
- 19 Apr, 2004 1 commit
-
-
Andrew Morton authored
From: Nigel Cunningham <ncunningham@users.sourceforge.net> A few weeks ago, Pavel and I agreed that PF_IOTHREAD should be renamed to PF_NOFREEZE. This reflects the fact that some threads so marked aren't actually used for IO while suspending, but simply shouldn't be frozen. This patch, against 2.6.5 vanilla, applies that change. In the refrigerator calls, the actual value doesn't matter (so long as it's non-zero) and it makes more sense to use PF_FREEZE so I've used that.
-
- 14 Apr, 2004 1 commit
-
-
Jeff Garzik authored
-
- 30 Mar, 2004 1 commit
-
-
Jeff Garzik authored
Due to rounding and HZ==100, sometimes delays would not occur for the desired length of time, or even at all. Fix call to schedule_timeout() to ensure we delay -at least- for the correct amount of time.
-
- 25 Mar, 2004 3 commits
-
-
Jeff Garzik authored
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()
-
Jeff Garzik authored
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().
-
Jeff Garzik authored
-
- 24 Mar, 2004 2 commits
-
-
Jeff Garzik authored
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).
-
Jeff Garzik authored
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.
-
- 22 Mar, 2004 1 commit
-
-
Jeff Garzik authored
-
- 18 Mar, 2004 2 commits
-
-
Jeff Garzik authored
Do not rely on the default being 0xffffffff.
-
Jeff Garzik authored
Silicon Image has a register that indicates the data transfer mode (pio-old, pio-new, mdma or udma) that must be initialized after the SET FEATURES - XFER command has been issued. This requires a hook in libata core to set the register at the right time. Also, limit to UDMA5 due to scary comments in FreeBSD about chip errata.
-