summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata.h
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] Snoop SET FEATURES - WRITE CACHE ENABLE/DISABLE command(v5)zhao, forrest2006-06-121-0/+1
| | | | | | | | | This patch makes libata snoop 'SET FEATURES - WRITE CACHE ENABLE/DISABLE' command, executing requisite revalidation processes to update cached data. Signed-off-by: Forrest Zhao <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata-hp: move ata_do_reset() to libata-eh.cTejun Heo2006-05-311-2/+0
| | | | | | | With ops->probe_init() gone, no user is left in libata-core.c. Move ata_do_reset() to libata-eh.c and make it static. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-hp: implement SCSI part of hotplugTejun Heo2006-05-311-0/+1
| | | | | | | | | | | Implement SCSI part of hotplug. This must be done in a separate context as SCSI makes use of EH during probing. SCSI scan fails silently if EH is in progress. In such cases, libata pauses briefly and retries until every device is attached. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-hp: implement ata_eh_detach_dev()Tejun Heo2006-05-311-0/+1
| | | | | | | | | Implement ata_eh_detach_dev(). This function is responsible for detaching an ATA device and offlining the associated SCSI device atomically so that the detached device is not accessed after ATA detach is complete. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-hp-prep: make probing related functions globalTejun Heo2006-05-311-0/+3
| | | | | | | Hotplug will be implemented in libata-eh.c. Make ata_dev_read_id() and ata_dev_configure() global. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-hp-prep: add ata_aux_wqTejun Heo2006-05-311-0/+1
| | | | | | | | It's best to run ATA hotplug from EH but attaching SCSI devices needs working EH. ata_aux_wq is used to give SCSI hotplug operations a separate context. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-hp-prep: implement ata_dev_init()Tejun Heo2006-05-311-0/+1
| | | | | | | | Move initialization of struct ata_device into ata_dev_init() in preparation for hotplug. This patch calls ata_dev_init() from ata_host_init() and thus makes no functional difference. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: implement ata_eh_wait()Tejun Heo2006-05-311-0/+1
| | | | | | | | | 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-eh-fw: implement ata_port_schedule_eh() and ata_port_abort()Tejun Heo2006-05-151-0/+1
| | | | | | | | | | | | | | | | ata_port_schedule_eh() directly schedules EH for @ap without associated qc. Once EH scheduled, no further qc is allowed and EH kicks in as soon as all currently active qc's are drained. ata_port_abort() schedules all currently active commands for EH by qc_completing them with ATA_QCFLAG_FAILED set. If ata_port_abort() doesn't find any qc to abort, it directly schedule EH using ata_port_schedule_eh(). These two functions provide ways to invoke EH for conditions which aren't directly related to any specfic qc. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-eh-fw: implement new EH scheduling via error completionTejun Heo2006-05-151-0/+2
| | | | | | | | | | | | | | | | | | | There are several ways a qc can get schedule for EH in new EH. This patch implements one of them - completing a qc with ATA_QCFLAG_FAILED set or with non-zero qc->err_mask. ALL such qc's are examined by EH. New EH schedules a qc for EH from completion iff ->error_handler is implemented, qc is marked as failed or qc->err_mask is non-zero and the command is not an internal command (internal cmd is handled via ->post_internal_cmd). The EH scheduling itself is performed by asking SCSI midlayer to schedule EH for the specified scmd. For drivers implementing old-EH, nothing changes. As this change makes ata_qc_complete() rather large, it's not inlined anymore and __ata_qc_complete() is exported to other parts of libata for later use. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: use dev->apTejun Heo2006-05-151-7/+4
| | | | | | | Use dev->ap where possible and eliminate superflous @ap from functions and structures. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: remove postreset handling from ata_do_reset()Tejun Heo2006-05-151-1/+1
| | | | | | | | Make ata_do_reset() deal only with reset. postreset is now the responsibility of the caller. This is simpler and eases later prereset addition. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: rename ata_down_sata_spd_limit() and friendsTejun Heo2006-05-151-2/+2
| | | | | | | Rename ata_down_sata_spd_limit() and friends to sata_down_spd_limit() and likewise for simplicity & consistency. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: kill @verbose from ata_reset_fn_tTejun Heo2006-04-111-4/+2
| | | | | | | | | | | @verbose was added to ata_reset_fn_t because AHCI complained during probing if no device was attached to the port. However, muting failure message isn't the correct approach. Reset methods are responsible for detecting no device condition and finishing successfully. Now that AHCI softreset is fixed, kill @verbose. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* libata: Fix EH merge difference between this branch and upstream.Jeff Garzik2006-04-111-0/+1
|
* [PATCH] libata: convert ATAPI_ENABLE_DMADIR to module parameterAlbert Lee2006-04-041-0/+1
| | | | | | | | Convert the ATAPI_ENABLE_DMADIR compile time option needed by some SATA-PATA bridge to runtime module parameter. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [libata] bump versionsJeff Garzik2006-04-021-1/+1
|
* [PATCH] libata: make some libata-core routines externTejun Heo2006-04-021-0/+13
| | | | | | | | Make libata-core routines which will be used by EH implementation extern. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata: separate out libata-eh.cTejun Heo2006-04-021-1/+3
| | | | | | | | | | A lot of EH codes are about to be added to libata. Separate out libata-eh.c. ata_scsi_timed_out(), ata_scsi_error(), ata_qc_timeout(), ata_eng_timeout(), ata_eh_qc_complete() and ata_eh_qc_retry() are moved. No code is changed by this patch. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata: make ata_qc_issue complete failed qcsTejun Heo2006-03-311-1/+1
| | | | | | | | | | There is no reason for the issuer to diddle with a failed qc as the issuer has complete control over when a qc gets freed (usually in ->complete_fn). Make ata_qc_issue() responsible for completing qcs which failed to issue. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [SCSI] libata: implement minimal transport template for ->eh_timed_outTejun Heo2006-03-211-0/+2
| | | | | | | | | | SCSI midlayer has moved hostt->eh_timed_out to transport template. As libata doesn't need full-blown transport support yet, implement minimal transport for libata. No transport class or whatsoever, just empty transport template with ->eh_timed_out hook. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [PATCH] libata: implement port_taskTejun Heo2006-03-111-0/+1
| | | | | | | | | | Implement port_task. LLDD's can schedule a function to be executed with context after specified delay. libata core takes care of synchronization against EH. This is generalized form of pio_task and packet_task which are tied to PIO hsm implementation. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* Merge branch 'master'Jeff Garzik2006-03-011-0/+1
|\
| * [libata] Disable FUAJeff Garzik2006-02-271-0/+1
| | | | | | | | Until problems are sorted.
* | [PATCH] libata: inline ata_qc_complete()Tejun Heo2006-02-111-1/+0
| | | | | | | | | | | | | | | | This patch inlines ata_qc_complete() and uninlines __ata_qc_complete() as suggested by Jeff Garzik. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | [PATCH] libata: add ATA_QCFLAG_EH_SCHEDULEDTejun Heo2006-02-101-0/+1
| | | | | | | | | | | | | | | | | | Add ATA_QCFLAG_EH_SCHEDULED. If this flag is set, the qc is owned by EH and normal completion path is not allowed to finish it. This patch doesn't actually use this flag. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | [PATCH] libata: return AC_ERR_* from issue functionsTejun Heo2006-01-261-1/+1
|/ | | | | | | | | 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>
* [BLOCK] add FUA support to libataTejun Heo2006-01-061-1/+3
| | | | | Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jens Axboe <axboe@suse.de>
* [PATCH] libata: remove unused functionsTejun Heo2005-12-131-1/+0
| | | | | | | | There is no user of ata_qc_wait_err() and ata_qc_complete_noop() after ata_exec_internal() changes. Remove unused functions. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [PATCH] libata: move err_mask to ata_queued_cmdAlbert Lee2005-12-061-1/+1
| | | | | | | | | | | | - 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>
* [libata] bump versionsJeff Garzik2005-11-161-1/+1
|
* [libata] REQUEST SENSE handling fixesJeff Garzik2005-11-141-2/+0
| | | | | | | | - Move ATAPI check-condition handling out of the timeout handler - Use multi-qc-issue feature to issue REQUEST SENSE ATAPI PACKET command upon receiving an ATAPI check-condition. This cleans things up a lot, and eliminates a nasty recursion bug.
* [libata] ata_tf_to_host cleanupsJeff Garzik2005-10-301-1/+0
| | | | | | | | | | Integrate ata_exec() and ata_tf_to_host() into their only caller, ata_bus_edd(). Rename ata_tf_to_host_nolock() to ata_tf_to_host(). This makes locking a bit easier to review, and may help pave the way for future changes.
* [libata] change ata_qc_complete() to take error mask as second argJeff Garzik2005-10-301-1/+1
| | | | | | | | | | | | | | | 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 'master'Jeff Garzik2005-10-281-1/+1
|\
| * 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.
* | Merge branch 'upstream'Jeff Garzik2005-10-181-0/+1
|\|
| * [PATCH] libata CHS: calculate read/write commands and protocol on the fly ↵Albert Lee2005-10-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (revise #6) - merge ata_prot_to_cmd() and ata_dev_set_protocol() as ata_rwcmd_protocol() - pave road for read/write multiple support - remove usage of pre-cached command and protocol values and call ata_rwcmd_protocol() instead Signed-off-by: Albert Lee <albertcc@tw.ibm.com> ============== Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | Merge branch 'upstream'Jeff Garzik2005-10-091-10/+6
|\|
| * [libata scsi] improve scsi error handling with ata_scsi_set_sense()Douglas Gilbert2005-10-091-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - change "xlat" and "fill" actors in libata-scsi so they are responsible for SCSI status and sense data when they return 1. This allows GOOD status or a specialized error to be set. - yield an error for mode sense requests for saved values [sat-r06] - remove static inlines for ata_bad_scsiop() and ata_bad_cdb() which are no longer used Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * [libata scsi] add ata_scsi_set_sense helperDouglas Gilbert2005-10-091-0/+2
| | | | | | | | | | | | | | | | - add extern ata_scsi_set_sense() to build SCSI fixed sense data and corresponding SCSI status Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * libata: move atapi_request_sense() to libata-scsi moduleJeff Garzik2005-10-051-0/+3
| | | | | | | | No content changes, just moving code around.
| * [libata] improve device scanJeff Garzik2005-10-031-0/+1
| | | | | | | | | | | | | | | | Replace SCSI's legacy "bang at the door" method of probing with one directly controlled by the underlying ATA transport layer. We now only call scsi_scan_target() for devices we find, rather than probing every possible channel/id within a certain range.
* | Merge /spare/repo/linux-2.6/ Jeff Garzik2005-09-081-0/+1
|\|
| * [libata] allow ATAPI to be enabled with new atapi_enabled module optionJeff Garzik2005-08-301-0/+1
| | | | | | | | | | | | | | | | ATAPI is getting close to being ready. To increase exposure, we enable the code in the upstream kernel, but default it to off (present behavior). Users must pass atapi_enabled=1 as a module option (if module) or on the kernel command line (if built in) to turn on discovery of their ATAPI devices.
* | Merge upstream kernel into libata 'passthru' branchJeff Garzik2005-08-291-23/+26
|\|
| * Merge /spare/repo/linux-2.6/Jeff Garzik2005-08-291-1/+1
| |\
| | * /spare/repo/libata-dev branch 'upstream-fixes'Jeff Garzik2005-08-231-1/+1
| | |\
| | * | libata: trim trailing whitespace.Jeff Garzik2005-07-311-1/+1
| | | | | | | | | | | | | | | | Also, fixup a tabs-to-spaces block of code in ata_piix.
| * | | [libata] license change, other bitsJeff Garzik2005-08-281-21/+24
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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