summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ahci.c
AgeCommit message (Collapse)Author
2006-02-11[PATCH] ahci: convert to new reset mechanismTejun Heo
Convert ahci ->phy_reset to new reset mechanism. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-02-11[PATCH] ahci: make ahci_fill_cmd_slot() take *pp instead of *apTejun Heo
Make ahci_fill_cmd_slot() take struct ahci_port_priv *pp instead of struct ata_port *ap as suggested by Jeff Garzik. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-02-10[PATCH] ahci: separate out ahci_fill_cmd_slot()Tejun Heo
Separate out ahci_fill_cmd_slot() from ahci_qc_prep(). ahci_fill_cmd_slot() can later be used to issue non-standard commands. (e.g. softreset) Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-02-10[PATCH] libata: kill NULL qc handling from ->eng_timeout callbacksTejun Heo
->eng_timeout cannot be invoked with NULL qc anymore. Add an assertion in ata_scsi_error() and kill NULL qc handling from all ->eng_timeout callbacks. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-02-10[PATCH] libata: use ata_scsi_timed_out()Tejun Heo
Make all libata low level drivers use ata_scsi_timed_out(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-29Merge branch 'upstream-fixes'Jeff Garzik
2006-01-29[libata ahci] add another JMicron pci idJeff Garzik
2006-01-29Merge branch 'upstream-fixes'Jeff Garzik
2006-01-29[libata ahci] Isolate Intel-ism, add JMicron JMB360 supportJeff Garzik
Isolate some PCI config register bitbanging to Intel hardware, as it should have been all along. Add support for JMicron JMB360.
2006-01-26[PATCH] ahci: add constants for SRSTTejun Heo
Add constants needed to perform SRST. This is preparation for adding softreset method. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-26[PATCH] ahci: stop engine during hard resetTejun Heo
AHCI spec mandates engine to be stopped during hard resets. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-26[PATCH] libata: implement and apply ata_eh_qc_complete/retry()Tejun Heo
Implement ata_eh_qc_complete/retry() using scsi_eh_finish_cmd() and scsi_eh_flush_done_q(). This removes all eh scsicmd finish hacks from low level drivers. This change was first suggested by Jeff Garzik. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-26[PATCH] libata: return AC_ERR_* from issue functionsTejun Heo
Return AC_ERR_* mask from issue fuctions instead of 0/-1. This enables things like failing a qc with AC_ERR_HSM when the device doesn't set DRDY when the qc is about to be issued. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-26[PATCH] libata: add detailed AC_ERR_* flagsTejun Heo
Add detailed AC_ERR_* flags and use them. Long-term goal is to describe all errors with err_mask and tf combination (tf for failed sector information, etc...). After proper error diagnosis is implemented, sense data should also be generated from err_mask instead of directly from hardware tf registers as it is currently. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-26[PATCH] ahci: fix err_mask setting in ahci_host_intrTejun Heo
In ahci_host_intr err_mask is determined from IRQ status but never used. This patch sets qc->err_mask to the determined err_mask. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] ahci: separate out ahci_dev_classifyTejun Heo
Separate out ahci_dev_classify(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] ahci: separate out ahci_stop/start_engineTejun Heo
Separate out ahci_stop/start_engine(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-17[PATCH] ahci: AHCI mode SATA patch for Intel ICH8Jason Gaston
This patch adds the Intel ICH8 DID's to the ahci.c file for AHCI mode SATA support. Signed-off-by:  Jason Gaston <Jason.d.gaston@intel.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-01-06[BLOCK] update libata to use new blk_ordered for barriersTejun Heo
Reflect changes in SCSI midlayer and updated to use new ordered request implementation Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
2005-12-06[PATCH] libata: move err_mask to ata_queued_cmdAlbert Lee
- remove err_mask from the parameter list of the complete functions - move err_mask to ata_queued_cmd - initialize qc->err_mask when needed - for each function call to ata_qc_complete(), replace the err_mask parameter with qc->err_mask. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> =============== Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-01[PATCH] mark several libata datastructures constArjan van de Ven
Hi, the patch below marks several libata (and libata-driver) structures const so that they end up in the .rodata segment and don't false-share cachelines with things that get dirtied often. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-16[libata] bump versionsJeff Garzik
2005-11-16[libata ahci] tone down ATAPI errorsJeff Garzik
ATA devices don't generate many errors, so the preferred method is to printk() when they occur. ATAPI devices generate tons of exceptions during the normal course of operation, so this change skips logging the most common class of errors.
2005-11-15[libata ahci] command completion fixes, improved debug msgsJeff Garzik
- Fix a regression in command completion, which prevented the restart of the DMA engine after the device throws an error. - Pack more hardware info into the port-reset error message. - Promote "welcome to our timeout" message from debug msg to normal printk.
2005-11-14[libata ahci] error handling fixesJeff Garzik
Needed to get ATAPI working. - dump hardware error bits, if hardware signals an error - only reset hardware during timeout if a command was active - call ata_qc_complete() with a fine-grained error mask. Needed so that atapi_qc_complete() can distinguish between device errors and other errors.
2005-11-12[libata ahci] set port ATAPI bit correctlyJeff Garzik
Although according to the documentation this largely only affects desktop LED control, let's make sure we set the ATAPI bit when we have an ATAPI device attached to the port.
2005-11-12[libata ahci, qstor] fix miscount of scatter/gather entriesJeff Garzik
Don't directly reference qc->n_elem, as that might cause an off-by-one error for misaligned (padded) ATAPI transfers.
2005-11-10[libata] constify PCI ID table in several driversJeff Garzik
2005-11-07[libata] eliminate use of drivers/scsi/scsi.h compatibility header/definesJeff Garzik
2005-11-04[libata] ATAPI pad allocation fixes/cleanupJeff Garzik
Use ata_pad_{alloc,free} in two drivers, to factor out common code. Add ata_pad_{alloc,free} to two other drivers, which needed the padding but had not been updated.
2005-10-30Merge branch 'master'Jeff Garzik
2005-10-30[libata] use dev_printk() throughout driversJeff Garzik
A few drivers were not following the standard meme of printing out their driver name and version at module load time; this is fixed as well.
2005-10-30Merge branch 'upstream'Jeff Garzik
2005-10-30[libata] change ata_qc_complete() to take error mask as second argJeff Garzik
The second argument to ata_qc_complete() was being used for two purposes: communicate the ATA Status register to the completion function, and indicate an error. On legacy PCI IDE hardware, the latter is often implicit in the former. On more modern hardware, the driver often completely emulated a Status register value, passing ATA_ERR as an indication that something went wrong. Now that previous code changes have eliminated the need to use drv_stat arg to communicate the ATA Status register value, we can convert it to a mask of possible error classes. This will lead to more flexible error handling in the future.
2005-10-30Merge branch 'upstream'Jeff Garzik
2005-10-29[libata] remove ata_chk_err(), ->check_err() hook.Jeff Garzik
We now depend on ->tf_read() to provide us with the contents of the Error shadow register.
2005-10-28Merge branch 'master'Jeff Garzik
2005-10-22libata: const-ification bombing runJeff Garzik
Enforce access rules where appropriate. If the compiler is smart enough, this may buy us an optimization or two as a side effect.
2005-10-21[PATCH] iomem annotations (ahci)Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-09Merge branch 'upstream'Jeff Garzik
2005-10-05libata: fix ATAPI DMA alignment issuesJeff Garzik
ATAPI needs to be padded to next 4 byte boundary, if misaligned. Original work by me, many fixes from Tejun Heo.
2005-10-05libata: add ata_ratelimit(), use it in AHCI driver irq handlerJeff Garzik
2005-09-08[PATCH] PCI/libata INTx cleanupBrett M Russ
Simple cleanup to eliminate X copies of the pci_enable_intx() function in libata. Moved ahci.c's pci_intx() to pci.c and use it throughout libata and msi.c. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-09-07[PATCH] libata: fix pio_mask values (take 2)Brett Russ
ata_get_mode_mask() uses bits 3 and 4 in the pio_mask to represent PIO modes 3 and 4. The value read from the drive, which reports support for PIO3 and PIO4 in bits 0 and 1, is shifted left by 3 bits and OR'd with 0x7 (which then corresponds to PIO 2-0 in libata). Thus, the drivers below need adjustments to comply with the way pio_mask is used. I changed the masks from the commented values to all support PIO4-0, since the spec mandates that PIO0-2 are supported and there's no reason not to support PIO3 IMO. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-30[libata] update several drivers to use pci_iomap()/pci_iounmap()Jeff Garzik
2005-08-30[libata] __iomem annotations for various driversJeff Garzik
2005-08-30[libata ahci] minor remove/unplug path cleanupJeff Garzik
Don't bother calling a hook, to call our own module, to call a helper than simply calls ionumap(). If you unroll all that convolution, you get a simple kfree()+iounmap() pair of calls.
2005-08-29Merge /spare/repo/linux-2.6/Jeff Garzik
2005-08-28[libata] license change, other bitsJeff Garzik
- changes license of all code from OSL+GPL to plain ole GPL - except for NVIDIA, who hasn't yet responded about sata_nv - copyright holders were already contacted privately - adds info in each driver about where hardware/protocol docs may be obtained - where I have made major contributions, updated copyright dates
2005-08-25libata: fix EH lockingJeff Garzik
Wrap ata_qc_complete() calls in EH context in spinlocks, to prevent races (mainly in ATAPI code paths).