aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
Commit message (Collapse)AuthorAge
* [PATCH] libata: implement ata_eh_wait()Tejun Heo2006-05-31
| | | | | | | | | Implement ata_eh_wait(). On return from this function, it's guaranteed that the EH which was pending or in progress when the function was called is complete - including the tailing part of SCSI EH. This will be used by hotplug and others to synchronize with EH. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: set PIO-0 after successful EH resetTejun Heo2006-05-31
| | | | | | | | | Set ata_device->pio_mode to XFER_PIO_0 after a successful reset. This is to keep EH resets consistent with probe resets as updated by the commit b6079ca409bf88c248992e96510dd6f610f7ed89. Note that, with soon-to-follow hotplug update, EH resets will include probe resets. Signed-off-by: Tejun Heo <htejun@gmail.com>
* libata debugging: set initial dbg valueBorislav Petkov2006-05-29
| | | | | | | | | | | This patch sets the prerequisites for the new debugging scheme that more or less resembles Donald Becker's net driver example. This one liner doesn't change any functionality beside setting the appropriate debug level for the msg_enable control in the ata_port struct, which will be later used by the ata_msg_* macros to control the amount of debug information sent to printk. Signed-off-by: <petkov@uni-muenster.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* Merge branch 'upstream-fixes' into upstreamJeff Garzik2006-05-28
|\ | | | | | | | | | | Conflicts: drivers/scsi/libata-core.c
| * [PATCH] the latest consensus libata resume fixMark Lord2006-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Okay, just to sum things up. This forces libata to wait for up to 2 seconds for BUSY|DRQ to clear on resume before continuing. [jgarzik adds...] During testing we never saw DRQ asserted, but nonetheless (a) this works and (b) testing for DRQ won't hurt. Signed-off-by: Mark Lord <liml@rtr.ca> Acked-by: Jens Axboe <axboe@suse.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] libata: add pio_data_xfer_noirqAlan Cox2006-05-26
| | | | | | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] libata: add back ->data_xfer to ata_piix.cAlbert Lee2006-05-26
| | | | | | | | | | | | | | Add back ->data_xfer and ->mode_filter to ata_piix.c. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] ata_piix formattingAlan Cox2006-05-24
| | | | | | | | | | | | | | if( spacing fix for Garzik compliant formatting Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] sata_mv: endian annotationsMark Lord2006-05-24
| | | | | | | | | | Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] PATCH: libata. Add ->data_xfer methodAlan Cox2006-05-24
| | | | | | | | | | | | | | | | | | | | | | We need to pass the device in order to do per device checks such as 32bit I/O enables. With the changes to include dev->ap we now don't have to add parameters however just clean them up. Also add data_xfer methods to the existing drivers except ata_piix (which is in the other block of patches). If you reject the piix one just add a data_xfer to it... Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [libata] libata-scsi, sata_mv: trim trailing whitespaceJeff Garzik2006-05-24
| |
* | [PATCH] libata - fix bracketing and DMA oopsAlan Cox2006-05-24
| | | | | | | | | | | | | | | | The upstream tree has the ATA_DFLAG_PIO bug fixed but does not have the pass throuugh bug fix Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] libata: PIO 0Alan Cox2006-05-24
| | | | | | | | | | | | | | | | | | Ensure the pio_mode is always setup. Don't do any setup on the controller b just ensure the mode reporting is valid to avoid tons of special cases in PATA driver code when mode switching on the fly. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] libata: minor fix for irq-pio mergeAlbert Lee2006-05-24
| | | | | | | | | | | | | | Minor fix to put the ATA_FLAG_NO_ATAPI flag back. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | Merge branch 'upstream-fixes' into upstreamJeff Garzik2006-05-24
|\| | | | | | | | | | | Conflicts: drivers/scsi/libata-core.c
| * [PATCH] libata: add pio flush for via atapi (was: Re: TR: ASUS A8V Deluxe, ↵Albert Lee2006-05-24
| | | | | | | | | | | | | | | | | | x86_64) Backport the "pio flush" from the libata major update to 2.6.17 for via atapi. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [libata sata_promise] Add PATA cable detection.Jeff Garzik2006-05-24
| | | | | | | | | | Original patch from Phillip Jordan <phillip.m.jordan@gmail.com> Cleanups and fixes by me.
* | [PATCH] sata_nv: Add MCP61 supportAndrew Chew2006-05-24
| | | | | | | | | | | | Added MCP61 SATA support to sata_nv. Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | Merge branch 'master' into upstreamJeff Garzik2006-05-24
|\|
| * [PATCH] missing newline in scsi/st.cRene Herman2006-05-21
| | | | | | | | | | | | | | | | | | st: Version 20050830, fixed bufsize 32768, s/g segs 256 st 0:0:6:0: Attached scsi tape st0<4>st0: try direct i/o: yes (alignment 512 B) Cc: James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] Add PCI ID for the Intel IDE Controller which is in the Intel Mac ↵Thomas Glanzmann2006-05-20
| | | | | | | | | | | | | | Minis shipped in first quarter 2006 Signed-off-by: Thomas Glanzmann <sithglan@stud.uni-erlangen.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] SCSI: make scsi_implement_eh() generic API for SCSI transportsTejun Heo2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | libata implemented a feature to schedule EH without an associated EH by manipulating shost->host_eh_scheduled in ata_scsi_schedule_eh() directly. Move this function to scsi_error.c and rename it to scsi_schedule_eh(). It is now an exported API for SCSI transports and exported via new header file drivers/scsi/scsi_transport_api.h This patch also de-export scsi_eh_wakeup() which was exported specifically for ata_scsi_schedule_eh(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] libata: enforce default EH actionsTejun Heo2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | LLDDs rely on libata that certain EH actions are automatically taken on some errors. If the port is frozen or one or more qc's have failed with HSM violation or timeout, softreset is enforced (LLDD can ask for storonger EH action at will). If any other error condition exists, libata EH always revalidates. This behavior existed in earlier revisions of new EH but lost during development process. This patch restores it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] libata: use qc->result_tf for temp taskfile storageAlbert Lee2006-05-20
| | | | | | | | | | | | | | Use qc->result_tf for temp taskfile storage. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [PATCH] libata: Fix the HSM error_mask mapping (was: Re: libata-tj and SMART)Albert Lee2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | Fix the HSM error_mask mapping. Changes: - Better mapping in ac_err_mask() - In HSM_ST_FIRST ans HSM_ST state, check ATA_ERR|ATA_DF and map it to AC_ERR_DEV instead of AC_ERR_HSM. - In HSM_ST_FIRST and HSM_ST state, map DRQ=1 ERR=1 to AC_ERR_HSM. - For PIO data in and DRQ=1 ERR=1, add check after the junk data block is read. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | Merge branch 'upstream-fixes' into upstreamJeff Garzik2006-05-20
|\| | | | | | | | | | | Conflicts: drivers/scsi/libata-core.c
| * [PATCH] libata-core: fix current kernel-doc warningsRandy Dunlap2006-05-20
| | | | | | | | | | | | | | Fix all current kernel-doc warnings. Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] sata_mv: version bumpMark Lord2006-05-20
| | | | | | | | | | | | | | Increment the version number inside sata_mv.c. Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] sata_mv: endian fixMark Lord2006-05-20
| | | | | | | | | | | | | | | | | | | | This fixes a byte-swap issue on PPC, found by Zang Roy-r61911 on the powerpc platform. His original patch also had some other platform-specific changes in #ifdef's, but I'm not sure yet how to incorporate them. Look for another patch for those (soon). Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] sata_mv: remove local copy of queue indexesMark Lord2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | The driver currently keeps local copies of the hardware request/response queue indexes. But it expends significant effort ensuring consistency between the two views, and still gets it wrong after an error or reset occurs. This patch removes the local copies, in favour of just accessing the hardware whenever we need them. Eventually this may need to be tweaked again for NCQ, but for now this works and solves problems some users were seeing. Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] sata_mv: spurious interrupt workaroundMark Lord2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | The 60xx chips, and possibly others, incorrectly assert DEV_IRQ interrupts on a regular basis. The cause of this is under investigation (by me and in theory by Marvell also), but regardless we do need to deal with these events. This patch tidies up some interrupt handler code, and ensures that we ignore DEV_IRQ interrupts when the drive still has ATA_BUSY asserted. Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] sata_mv: chip initialization fixesMark Lord2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | The interface control register of the 60xx (and later) Marvell chip requires certain bits to always be set when writing to it. These bits incorrectly read-back as zeros, so the pattern must be ORed in with each write of the register. Also, bit 12 should NOT be set (note that Marvell's own driver also had bit-12 wrong here). While we're at it, we also now do pci_set_master() in the init code. Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] sata_mv: deal with interrupt coalescing interruptsMark Lord2006-05-20
| | | | | | | | | | | | | | | | | | In some systems, it is possible that the BIOS may have enabled interrupt coalescing for the Marvell controllers which support it. This patch adds code to detect/ack interrupts from the chip's coalescing (combing) logic. Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] sata_mv: prevent unnecessary double-resetsMark Lord2006-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The mv_err_intr() function is invoked from the driver's interrupt handler, as well as from the timeout function. This patch prevents it from triggering a one-after-the-other double reset of the controller when invoked from the timeout function. This also adds a check for a timeout race condition that has been observed to occur with this driver in earlier kernels. This should not be needed, in theory, but in practice it has caught bugs. Maybe nuke it at a later date. Signed-off-by: Mark Lord <liml@rtr.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | Merge branch 'max-sect' into upstreamJeff Garzik2006-05-15
|\ \
| * \ Merge branch 'upstream' into max-sectJeff Garzik2006-04-27
| |\ \
| * \ \ Merge branch 'upstream'Jeff Garzik2006-04-18
| |\ \ \
| * \ \ \ Merge branch 'upstream'Jeff Garzik2006-04-12
| |\ \ \ \
| * \ \ \ \ Merge branch 'upstream'Jeff Garzik2006-03-29
| |\ \ \ \ \
| * | | | | | [PATCH] libata: increase LBA48 max sectors to 65535Tejun Heo2006-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | max_hw_sectors/max_sectors separation patch made into the tree, increase max_sectors to its hardware limit. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | | | | | Merge branch 'for-jeff' of git://htj.dyndns.org/libata-tj into tejun-mergeJeff Garzik2006-05-15
|\ \ \ \ \ \ \
| * | | | | | | [PATCH] sata_sil24: implement NCQ supportTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement NCQ support. Sil24 has 31 command slots and all of them are used for NCQ command queueing. libata guarantees that no other command is in progress when it issues an internal command, so always use tag 0 for internal commands. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] ahci: implement NCQ suppportTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement NCQ support. Original implementation is from Jens Axboe. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] ahci: kill pp->cmd_tbl_sgTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With NCQ, there are multiple sg tables, so pp->cmd_tbl_sg doesn't cut it. Directly calculate sg table address from pp->cmd_tbl. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] ahci: add HOST_CAP_NCQ constantTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add HOST_CAP_NCQ. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] ahci: clean up AHCI constants in preparation for NCQTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rename CMD_TBL_HDR to CMD_TBL_HDR_SZ as it's size not offset. * Define MAX_CMDS and CMD_SZ and use them in calculation of other constants. * Define CMD_TBL_AR_SZ as product of CMD_TBL_SZ and MAX_CMDS, and use it when calculating PRIV_DMA_SZ. * CMD_SLOT_SZ is also dependent on MAX_CMDS but hasn't been changed because I didn't want to change the value used by the original code (32 commands). Later NCQ change will bump MAX_CMDS to 32 anyway and the hard coded 32 can be changed to MAX_CMDS then. * Reorder HOST_CAP_* flags. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] libata-ncq: implement NCQ device configurationTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that all NCQ related stuff are in place, implement NCQ device configuration and bump ATA_MAX_QUEUE to 32 thus activating NCQ support. Original implementation is from Jens Axboe. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] libata-ncq: update EH to handle NCQTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update EH to handle NCQ. ata_eh_autopsy() is updated to call ata_eh_analyze_ncq_error() which reads log page 10h on NCQ device error and updates eh_context accordingly. ata_eh_report() is updated to report SActive. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] libata-ncq: implement NCQ command translation and exclusionTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements NCQ command translation and exclusion. Note that NCQ commands don't use ata_rwcmd_protocol() to choose ATA command. This is because, unlike non-NCQ RW commands, NCQ commands can only be used for NCQ protocol and FUA handling is done with a flag rather than separate command. NCQ enabled device will have queue depth larger than one but no two non-NCQ commands can be issued simultaneously, neither can a non-NCQ command and NCQ commands. This patch makes ata_scsi_translate() return SCSI_MLQUEUE_DEVICE_BUSY if such exclusion is necessary. SCSI midlayer will retry the command later. As SCSI midlayer always retries once a command completes, this doesn't incur unnecessary delays and as most commands will be NCQ ones for NCQ device, so the overhead should be negligible. Initial implementation is from Jens Axboe and using SCSI_MLQUEUE_DEVICE_BUSY for exclusion is suggested by Jeff Garzik. Signed-off-by: Tejun Heo <htejun@gmail.com>
| * | | | | | | [PATCH] libata-ncq: implement ap->qc_active, ap->sactive and complete helperTejun Heo2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add ap->qc_active and ap->sactive, mask of all active qcs and libata's view of the SActive register, respectively. Also, implement ata_qc_complete_multiple() which takes new qc_active mask and complete multiple qcs according to the mask. These will be used to track NCQ commands and complete them. The distinction between ap->qc_active and ap->sactive is also useful for later PM implementation. Signed-off-by: Tejun Heo <htejun@gmail.com>