summaryrefslogtreecommitdiff
path: root/drivers/scsi/sata_sil24.c
AgeCommit message (Collapse)AuthorFilesLines
2006-02-10[PATCH] sata_sil24: add hardresetTejun Heo1-1/+10
Now that libata is smart enough to handle both soft and hard resets, add hardreset method. Note that sil24 hardreset doesn't supply signature; still, the new reset mechanism can make good use of it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2006-02-10[PATCH] sata_sil24: convert to new reset mechanismTejun Heo1-28/+28
Convert sata_sil24 ->phy_reset to new reset mechanism. 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 Heo1-5/+0
->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 Heo1-0/+1
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-27[PATCH] libata: implement and apply ata_eh_qc_complete/retry()Tejun Heo1-9/+1
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-27[PATCH] libata: return AC_ERR_* from issue functionsTejun Heo1-2/+2
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-27[PATCH] libata: add detailed AC_ERR_* flagsTejun Heo1-1/+1
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-06[BLOCK] update libata to use new blk_ordered for barriersTejun Heo1-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>
2005-12-06[PATCH] libata: move err_mask to ata_queued_cmdAlbert Lee1-5/+10
- 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-11-18[PATCH] sil24: make error_intr less verboseTejun Heo1-3/+9
sil24_error_intr logs all error interrupts. ATAPI devices generates many harmless errors which can be ignored and all serious ones are reported via sense data by SCSI layer. Don't log device errors from ATAPI devices. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-18[PATCH] sil24: add ATAPI supportTejun Heo1-26/+58
This patch implements ATAPI support for sil24 and bumps driver version to 0.23. Signed-off-by: Tejun Heo <htejun@gmail.com> -- Jeff, it has been converted to use ->dev_config as pointed out. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-18[PATCH] sil24: use SRST for phy_resetTejun Heo1-10/+66
There seems to be no way to obtain device signature from sil24 after SATA phy reset and SRST is needed anyway for later port multiplier suppport. This patch converts sil24_phy_reset to use SRST instaed. Signed-off-by: Tejun Heo <htejun@gmail.com> -- Jeff, I didn't remove the 10ms sleep just to be on the safe side. I think we can live with 10ms sleep on SRST. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-18[PATCH] sil24: add sil24_restart_controllerTejun Heo1-3/+32
When an error condition is raised by device via D2H FIS or SDB. sil24 controller should be restarted by setting PORT_CS_INIT and waiting until PORT_CS_RDY is asserted instead of resetting the controller. This patch implements sil24_restart_controller for those cases. This patch also makes sure that PORT_CS_RDY is asserted on sil24_reset_controller completion. Signed-off-by: Tejun Heo <htejun@gmail.com> -- Jeff, delay is reduced to 1us and cnt increased to 10k. My sil3124 turns on PORT_CS_RDY on the second iteration even without any delay. I think 10k * 1us should be more than enough. I tried to convert both restart and reset to use msleep's with work queue, but if we do that, host_set lock should be released after initiating restart or reset, leading to race condition among reset/restart, other interrupts and timeout. Implementing synchronization among those in low-level driver doesn't seem right. Well, reduced timeout should work for the time being. Thanks. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-16[PATCH] sil24: add constantsTejun Heo1-1/+20
Adds constants for ATAPI support to sata_sil24. This patch is originally from Jeff Garzik <jgarzik@pobox.com>. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-13[PATCH] sil24: add missing ata_pad_free()Tejun Heo1-0/+1
sil24_port_stop() is missing call to ata_pad_free() thus leaking pad buffer when a port is stopped. This patch adds it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-11-10[libata] constify PCI ID table in several driversJeff Garzik1-1/+1
2005-11-07[libata] eliminate use of drivers/scsi/scsi.h compatibility header/definesJeff Garzik1-2/+2
2005-11-05[libata] ATAPI pad allocation fixes/cleanupJeff Garzik1-9/+24
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-31Merge branch 'master'Jeff Garzik1-11/+10
2005-10-30[libata] use dev_printk() throughout driversJeff Garzik1-11/+10
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 Garzik1-5/+7
2005-10-30[libata] change ata_qc_complete() to take error mask as second argJeff Garzik1-5/+7
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 Garzik1-8/+0
2005-10-30[libata] remove ata_chk_err(), ->check_err() hook.Jeff Garzik1-8/+0
We now depend on ->tf_read() to provide us with the contents of the Error shadow register.
2005-10-30Merge branch 'master'Jeff Garzik1-16/+19
2005-10-29[PATCH] sata_sil24 iomem annotations and fixesAl Viro1-16/+19
trivial iomem annotations + missing memcpy_fromio() caught by those Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-28Merge branch 'master'Jeff Garzik1-1/+1
2005-10-22libata: const-ification bombing runJeff Garzik1-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.
2005-10-19libata: add ata_sg_is_last() helper, use it in several driversJeff Garzik1-5/+10
2005-10-09[libata sata_sil24] add support for 3131/3531Tejun Heo1-8/+30
This patch adds support for sil_3131 and sil_3531. Both are identical to 3124 except that they have only one port. Bits 30 and 31 of ata_port_info->host_flags is used to encode available port numbers. Version number is bumped to 0.22. Edward Falk supplied all the necessary information and preliminary patch. Signed-off-by: Tejun Heo <htejun@gmail.com>
2005-10-09[libata sata_sil24] nit pickingsTejun Heo1-2/+1
This patch removes unused NR_PORTS macro and adds termination entry to sil24_pci_tbl. Signed-off-by: Tejun Heo <htejun@gmail.com>
2005-10-06[PATCH] sil24: implement tf_read callbackTejun Heo1-0/+9
Hello, guys. This patch implements ->tf_read callback for sil24. It didn't use to be necessary but new ata_gen_fixed_sense now makes use of ->tf_read callback. This patch is taken from Edward Falk's driver. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-06[PATCH] sil24: implement proper TF register reading & cachingTejun Heo1-5/+45
03_sil24_add-tf-reading.patch This patch implements proper TF register reading back and caching and bumps up version to 0.22. This is taken from Edward's driver. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-06[PATCH] sil24: remove CMDERR clearingTejun Heo1-4/+0
02_sil24_remove-cmderr-clearing.patch CMDERR register doesn't need clearing. This is from Edward's driver. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 4 ---- 1 file changed, 4 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-06[PATCH] sil24: ignore non-error exception irqsTejun Heo1-1/+10
01_sil24_ignore-non-error-exception-irqs.patch Do not error-finish commands for non-error exception irqs - just ignore them. This is taken from Edward's driver. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-14[PATCH] sil24: initialization fixTejun Heo1-8/+23
sil24 0.20 didn't use to perform (what seems to be) port multiplier initialization and controller reset 0.10 driver does. This makes some sil24 controllers malfunction. This patch adds PM initialization and controller resetting to initilization and bumps version to 0.21. Please refer to the following thread for more information. http://marc.theaimsgroup.com/?l=linux-ide&m=112582819830324&w=2 http://marc.theaimsgroup.com/?l=linux-ide&m=112636045531060&w=2 Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: add more comments for constantsTejun Heo1-8/+8
08_sil24_add-comments-for-constants.patch Add more comments to constants. Signed-off-by: Edward Falk sata_sil24.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: fix PORT_CTRL_STAT constantsTejun Heo1-4/+4
07_sil24_fix-PORT_CTRL_STAT-constants.patch PORT_CTRL_STAT constants were copied incorrectly from the preview driver. Signed-off-by: Edward Falk sata_sil24.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: replace pp->port w/ ap->ioaddr.cmd_addrTejun Heo1-11/+6
06_sil24_remove-pp-port.patch As ap->ioaddr.cmd_addr isn't used for PORT_TF anymore, replace pp->port w/ it as AHCI does. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 17 ++++++----------- 1 files changed, 6 insertions(+), 11 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: remove PORT_TFTejun Heo1-6/+1
05_sil24_remove-PORT_TF.patch Remove PORT_TF, as taskfile isn't located at PORT_TF. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 7 +------ 1 files changed, 1 insertion(+), 6 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: move error handling out of hot interrupt pathTejun Heo1-24/+31
04_sil24_add-error_intr-function.patch Move error handling from sil24_host_intr into separate function - sil24_error_intr. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 55 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 31 insertions(+), 24 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: add testing for PCI faultTejun Heo1-0/+6
03_sil24_add-pci-fault-check.patch On entry to interrupt handler, PORT_SLOT_STAT register is read first. Check if PCI fault or device removal has occurred by testing the value for 0xffffffff. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 6 ++++++ 1 files changed, 6 insertions(+) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: remove irq disable code on spurious interruptTejun Heo1-10/+5
02_sil24_remove-irq-disable-on-spurious-intr.patch If interrupt occurs on a disabled port, the driver used to mask the port's interrupt, but we don't know if such action is necessary yet and that's not what other drives do. So, just do nothing and tell IRQ subsystem that it's not our interrupt. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-17[PATCH] sil24: add FIXME comment above ata_device_addTejun Heo1-0/+1
01_sil24_add-FIXME-comment.patch Add FIXME comment above ata_device_add. Signed-off-by: Tejun Heo <htejun@gmail.com> sata_sil24.c | 1 + 1 files changed, 1 insertion(+) Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-07-29[PATCH] SATA: rewritten sil24 driverTejun Heo1-0/+786
This is rewritten sil24 driver against v2.6.13-rc3. Rewritten based on driver originally submitted by Silicon Image. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>