ChangeSet@1.1718, 2004-03-31 14:51:55-05:00, jgarzik@redhat.com [libata sata_via] Fix detection of device 1 VIA hardware thinks port 1 (second port) is "SATA primary slave". Since the hardware rarely configures SATA to present as slave devices, we must pretend that the second hardware port (as the user sees it) is the third port (as the VIA PCI config registers see it). ChangeSet@1.1717, 2004-03-30 16:42:18-05:00, jgarzik@redhat.com [libata] fix broken delay 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. ChangeSet@1.1716, 2004-03-30 12:31:48-05:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.6 into redhat.com:/spare/repo/libata-2.6 ChangeSet@1.1715, 2004-03-29 19:30:47-05:00, jgarzik@redhat.com [libata] back out duplicated upstream fix We already fixed this bug locally, so fix up the automerge by removing the upstream change. ChangeSet@1.1714, 2004-03-29 19:28:22-05:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.6 into redhat.com:/spare/repo/libata-2.6 ChangeSet@1.1692.3.4, 2004-03-27 00:21:34-05:00, jgarzik@redhat.com [libata] remove synchronize-cache dead code Just a placeholder, and now that a better way to do this is coming, we don't even need the [unused] placeholder anymore. ChangeSet@1.1692.3.3, 2004-03-26 22:14:11-05:00, jgarzik@redhat.com [libata] fix bug with READ(6) and WRITE(6) SCSI commands Must set the LBA bit on all transfers, not just {read,write}{10,16} scsi commands. ChangeSet@1.1692.3.2, 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.1692.3.1, 2004-03-26 19:33:40-05:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.6 into redhat.com:/spare/repo/libata-2.6 ChangeSet@1.1673.7.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.7.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.7.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.7.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.7.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.7.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.7.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.7.6, 2004-03-25 14:36:59-05:00, jgarzik@redhat.com [libata] reduce diff with 2.4 libata backport ChangeSet@1.1673.7.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.1673.7.4, 2004-03-25 14:18:04-05:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.6 into redhat.com:/spare/repo/libata-2.6 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.1.206, 2004-03-22 23:25:09-05:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.6 into redhat.com:/spare/repo/libata-2.6 ChangeSet@1.1643.47.1, 2004-03-22 14:15:33-05:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.6 into redhat.com:/spare/repo/libata-2.6 ChangeSet@1.1643.40.2, 2004-03-21 12:15:16-05:00, jgarzik@redhat.com [libata sata_sis] minor cleanups ChangeSet@1.1643.40.1, 2004-03-21 11:55:35-05:00, uwe.koziolek@gmx.net [libata] Add driver for SiS 964/180 SATA.