aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_mv.c
Commit message (Collapse)AuthorAgeFilesLines
* [BLOCK] update libata to use new blk_ordered for barriersTejun Heo2006-01-061-1/+0
| | | | | | | | 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>
* Merge branch 'upstream-fixes'Jeff Garzik2005-12-131-1/+2
|\
| * [libata] mark certain hardware (or drivers) with a no-atapi flagJeff Garzik2005-12-131-1/+2
| | | | | | | | | | | | | | | | | | | | Some hardware does not support the PACKET command at all. Other hardware supports ATAPI, but the driver does something nasty such as calling BUG() when an ATAPI command is issued. For these such cases, we mark them with a new flag, ATA_FLAG_NO_ATAPI. Initial version contributed by Ben Collins.
* | [PATCH] libata: move err_mask to ata_queued_cmdAlbert Lee2005-12-061-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | - 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>
* | [PATCH] mark several libata datastructures constArjan van de Ven2005-12-011-1/+1
|/ | | | | | | | | | | 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>
* [libata sata_mv] update copyright, driver versionJeff Garzik2005-11-181-1/+2
|
* [libata sata_mv] handle lack of hardware nIEN supportJeff Garzik2005-11-171-1/+6
| | | | | | | | | | | Handle errata (it was unintentional on this h/w, whereas its intentional on others) whereby the nIEN bit in Device Control is ignored, leading to a situation where a hardware interrupt completes the qc before the polling code has a chance to. This will get fixed The Right Way(tm) once Albert Lee's irq-pio branch is merged, as the more natural PIO method on this hardware is interrupt-driven.
* [libata sata_mv] SATA probe, DMA boundary fixesJeff Garzik2005-11-171-18/+70
| | | | | | | | - DMA boundary was being handled incorrectly. Copied the code from ata_fill_sg(), since Marvell has the same DMA boundary needs. (we can't use ata_fill_sg directly since we have different hardware descriptors) - cleaned up the SATA phy reset code, to deal with various errata
* [libata sata_mv] fix tons of 50XX bugsJeff Garzik2005-11-131-49/+252
|
* [libata sata_mv] call phy fixups during init, as well as phy resetJeff Garzik2005-11-121-12/+26
|
* [libata sata_mv] move code aroundJeff Garzik2005-11-121-100/+100
| | | | No content changes. Move 60xx code to be closer to other 60xx code.
* [libata sata_mv] hardware initialization workJeff Garzik2005-11-121-12/+105
| | | | | Implement flash reset and PCI reset on 50xx and 60xx. Implement LED enable on 50xx.
* [libata sata_mv] mv_hw_ops for hardware families; new errataJeff Garzik2005-11-121-138/+158
| | | | | | - eliminate a bunch of redundant tests by creating a per-chip-family set of hooks, mv_hw_ops - implement more errata, from newer Marvell GPL'd driver
* [libata sata_mv] move code aroundJeff Garzik2005-11-121-48/+48
| | | | No content change, just prepping up future mv_hw_ops modularization.
* [libata sata_mv] implement a bunch of errata workaroundsJeff Garzik2005-11-121-7/+261
| | | | Based largely on the GPL'd Marvell vendor driver.
* [libata sata_mv] trim trailing whitespaceJeff Garzik2005-11-121-38/+38
|
* [libata sata_mv] minor fixesJeff Garzik2005-11-121-10/+22
| | | | | - clear SError and EDMA irq cause registers, after re-init'ing the phy - move enums with type suffix 'U' to their own enum
* [libata sata_mv] add Adaptec 1420SA PCI IDJeff Garzik2005-11-111-0/+2
| | | | Contributed by Jeroen <dekien@pandora.be>
* [libata] constify PCI ID table in several driversJeff Garzik2005-11-101-1/+1
|
* [libata] eliminate use of drivers/scsi/scsi.h compatibility header/definesJeff Garzik2005-11-071-2/+2
|
* [libata] ATAPI pad allocation fixes/cleanupJeff Garzik2005-11-041-8/+23
| | | | | | | 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.
* Merge branch 'master'Jeff Garzik2005-10-301-6/+6
|\
| * [libata] use dev_printk() throughout driversJeff Garzik2005-10-301-6/+6
| | | | | | | | | | | | 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.
* | Merge branch 'upstream'Jeff Garzik2005-10-301-5/+6
|\ \ | |/
| * [libata] change ata_qc_complete() to take error mask as second argJeff Garzik2005-10-301-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'upstream'Jeff Garzik2005-10-301-18/+0
|\ \ | |/
| * [libata] remove ata_chk_err(), ->check_err() hook.Jeff Garzik2005-10-291-18/+0
| | | | | | | | | | We now depend on ->tf_read() to provide us with the contents of the Error shadow register.
* | Merge branch 'master'Jeff Garzik2005-10-281-2/+2
|\ \ | |/
| * libata: const-ification bombing runJeff Garzik2005-10-221-1/+1
| | | | | | | | | | | | | | Enforce access rules where appropriate. If the compiler is smart enough, this may buy us an optimization or two as a side effect.
| * [PATCH] libata: Marvell endian fixBrett Russ2005-10-201-2/+3
| | | | | | | | | | | | | | | | Jeff found an endian bug in the Marvell driver (thanks!). Here's the fix for it. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | libata: add ata_sg_is_last() helper, use it in several driversJeff Garzik2005-10-181-7/+9
|/
* [libata sata_mv] fix warningJeff Garzik2005-10-051-2/+3
| | | | | shuffle ifdef location to fix the following warning: drivers/scsi/sata_mv.c:471: warning: 'mv_dump_mem' defined but not used
* [PATCH] libata: Marvell function headersBrett Russ2005-10-051-6/+219
| | | | | | | adds helpful function header comments. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [PATCH] libata: Marvell spinlock fixes and simplificationBrett Russ2005-10-051-34/+24
| | | | | | | | | This should fix up lockups that people were seeing due to improper spinlock placement. Also, the start/stop DMA routines put guarded trust in the cached state of DMA. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [PATCH] libata: Marvell SATA support (DMA mode) (resend: v0.22)Brett Russ2005-10-031-189/+749
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is my libata compatible low level driver for the Marvell SATA family. Currently it runs in DMA mode on a 6081 chip. The 5xxx series parts are not yet DMA capable in this driver because the registers have differences that haven't been accounted for yet. Basically, I'm focused on the 6xxx series right now. I apologize for those seeing problems on the 5xxx series, I've not had a chance to look at those problems yet. For those curious, the previous bug causing the SCSI timeout and subsequent panics was caused by an improper clear of hc_irq_cause in mv_host_intr(). This version is running well in my environment (6081 chips, with/without SW raid1) and is showing equal or better performance compared to the Marvell driver (mv_sata) in my initial tests (timed dd's of reads/writes to/from memory/disk). I still need to look at the causes of occasional problems such as this: ata11: translating stat 0x35 err 0x00 to sense ata11: status=0x35 { DeviceFault SeekComplete CorrectedError Error } SCSI error : <10 0 0 0> return code = 0x8000002 Current sda: sense key Hardware Error end_request: I/O error, dev sda, sector 3155010 and this, seen at init time: ATA: abnormal status 0x80 on port 0xE093911C but they aren't showstoppers. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [libata] minor fixesJeff Garzik2005-09-081-16/+0
| | | | | * sata_mv: remove pci_intx(), now that the same function is in PCI core * sata_sis: fix variable initialization bug, trim trailing whitespace
* [libata sata_mv] fix buildJeff Garzik2005-09-071-0/+16
| | | | | This function will go away when pci_intx() finally makes it into the core PCI layer.
* [PATCH] libata: Marvell SATA support (PIO mode)Brett Russ2005-09-071-0/+827
This is my libata compatible low level driver for the Marvell SATA family. Currently it successfully runs in PIO mode on a 6081 chip. EDMA support is in the works and should be done shortly. Review, testing (especially on other flavors of Marvell), comments welcome. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>