summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_sil24.c
Commit message (Collapse)AuthorAgeFilesLines
* Move libata to drivers/ata.Jeff Garzik2006-08-101-1222/+0
|
* [PATCH] libata: replace pci_module_init() with pci_register_driver()Pavel Roskin2006-08-101-1/+1
| | | | | | | Replace pci_module_init() with pci_register_driver(). Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] sata_sil24: don't set probe_ent->mmio_baseTejun Heo2006-08-051-1/+0
| | | | | | | | sata_sil24 doesn't make use of probe_ent->mmio_base and setting this field causes the area to be released twice on detach. Don't set probe_ent->mmio_base. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] sata_sil24: add suspend/sleep supportTejun Heo2006-07-051-0/+25
| | | | | | | Add suspend/sleep support. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: separate out sil24_init_controller()Tejun Heo2006-07-051-45/+62
| | | | | | | | Separate out controller initialization from sil24_init_one() into sil24_init_controller(). This will be used by resume. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata: clean up debounce parameters and improve parameter selectionTejun Heo2006-07-051-1/+1
| | | | | | | | | | | | | | The names of predefined debounce timing parameters didn't exactly match their usages. Rename to more generic names and implement param selection helper sata_ehc_deb_timing() which uses EHI_HOTPLUGGED to select params. Combined with the previous EHI_RESUME_LINK differentiation, this makes parameter selection accurate. e.g. user scan resumes link but normal deb param is used instead of hotplug param. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] irq-flags: scsi: Use the new IRQF_ constantsThomas Gleixner2006-07-021-1/+1
| | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [libata] Bump versionsJeff Garzik2006-06-261-1/+1
| | | | | | Update major version for libata, and several drivers. Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: endian anotationsAlexey Dobriyan2006-06-111-8/+8
| | | | | | | With help from Tejun Heo. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: convert to new probing mechanism and add hotplug supportTejun Heo2006-05-311-19/+8
| | | | | | | | | | | Convert to new probing mechanism and add hotplug support by enabling PORT_IRQ_PHYRDY_CHG, marking ehi for hotplug and scheduling EH on PORT_IRQ_PHYRDY_CHG or PORT_IRQ_DEV_XCHG. Sil3124/32 family of controllers don't have any mechanism to wait for the first D2H FIS after hotplug, so ATA_FLAG_SKIP_D2H_BSY is used. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-hp: hook warmplugTejun Heo2006-05-311-0/+1
| | | | | | Hook transportt->user_scan() and hostt->slave_destroy(). Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] sata_sil24: update sil24_hardreset()Tejun Heo2006-05-311-12/+14
| | | | | | | | | | | Use phy debouncing instead of unconditional wait after DEV_RST and make sil24_hardreset() to request followup SRST as that's the only way to wait for !BSY. Note that the original implementation never worked - if the cached status was !BSY, ata_busy_sleep() finished immediately; otherwise, it timed out regardless of the actual device status. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] sata_sil24: rename PORT_PRB to PORT_LRAM and add PORT_LRAM_SLOT_SZTejun Heo2006-05-311-2/+4
| | | | | | | PORT_PRB is a misnomer as the area also contains other stuff. Rename it to PORT_LRAM and add PORT_LRAM_SLOT_SZ. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata-hp-prep: add prereset() method and implement ata_std_prereset()Tejun Heo2006-05-311-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With hotplug, every reset might be a probing reset and thus something similar to probe_init() is needed. prereset() method is called before a series of resets to a port and is the counterpart of postreset(). prereset() can tell EH to use different type of reset or skip reset by modifying ehc->i.action. This patch also implements ata_std_prereset(). Most controllers should be able to use this function directly or with some wrapping. After hotplug, different controllers need different actions to resume the PHY and detect the newly attached device. Controllers can be categorized as follows. * Controllers which can wait for the first D2H FIS after hotplug. Note that if the waiting is implemented by polling TF status, there needs to be a way to set BSY on PHY status change. It can be implemented by hardware or with the help of the driver. * Controllers which can wait for the first D2H FIS after sending COMRESET. These controllers need to issue COMRESET to wait for the first FIS. Note that the received D2H FIS could be the first D2H FIS after POR (power-on-reset) or D2H FIS in response to the COMRESET. Some controllers use COMRESET as TF status synchronization point and clear TF automatically (sata_sil). * Controllers which cannot wait for the first D2H FIS reliably. Blindly issuing SRST to spinning-up device often results in command issue failure or timeout, causing extended delay. For these controllers, ata_std_prereset() explicitly waits ATA_SPINUP_WAIT (currently 8s) to give newly attached device time to spin up, then issues reset. Note that failing to getting ready in ATA_SPINUP_WAIT is not critical. libata will retry. So, the timeout needs to be long enough to spin up most devices. LLDDs can tell ata_std_prereset() which of above action is needed with ATA_FLAG_HRST_TO_RESUME and ATA_FLAG_SKIP_D2H_BSY flags. These flags are PHY-specific property and will be moved to ata_link later. While at it, this patch unifies function typedef's such that they all have named arguments. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] sata_sil24: implement NCQ supportTejun Heo2006-05-151-21/+47
| | | | | | | | | 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] sata_sil24: convert to new EHTejun Heo2006-05-151-141/+187
| | | | | | | | | | | | | | | | | | | | | | Convert sata_sil24 to new EH. * When port is frozen, IRQ for the port is masked. * sil24_softreset() doesn't need to mangle with IRQ mask anymore. libata ensures that the port is frozen during reset. * Only turn on interrupts which are handled by interrupt handler and EH. As we don't handle SDB notify yet, turn it off. DEV_XCHG and UNK_FIS are handled by EH and thus turned on. * sil24_softreset() usually fails to recover the port after DEV_XCHG. ATA_PORT_HARDRESET is used as recovery action for DEV_XCHG. * sil24 may be invoked without any active command. e.g. DEV_XCHG irq occuring while no qc in progress still triggers EH and will reset the port and revalidate attached device. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: use ATA printk helpersTejun Heo2006-05-151-3/+3
| | | | | | Use ATA printk helpers. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: use new SCR and on/offline functionsTejun Heo2006-05-151-3/+3
| | | | | | | | Use new SCR and on/offline functions. Note that for LLDD which know it implements SCR callbacks, SCR functions are guaranteed to succeed and ata_port_online() == !ata_port_offline(). Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] sata_sil24: update TF image only when necessaryTejun Heo2006-05-151-10/+2
| | | | | | Update TF image (pp->tf) only when necessary. Signed-off-by: Tejun Heo <htejun@gmail.com>
* [PATCH] libata: rename ata_down_sata_spd_limit() and friendsTejun Heo2006-05-151-1/+1
| | | | | | | 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] sata_sil24: enable 64bitTejun Heo2006-04-111-19/+28
| | | | | | | Enable 64bit. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: fix on-memory structure byteorderTejun Heo2006-04-111-7/+6
| | | | | | | | Data structures residing on memory and fetched by the controller should have LE ordering. Fix it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: don't do hardreset during driver initializationTejun Heo2006-04-111-5/+0
| | | | | | | | | There's no need to perform hardreset during driver initialization. It's already done during host reset and even if the controller is in some wacky state, we now have proper hardreset to back us up. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: reimplement hardresetTejun Heo2006-04-111-3/+40
| | | | | | | | | | | | | Reimplement hardreset according to the datasheet. The old hardreset didn't reset controller status and the controller might not be ready after reset. Also, as SStatus is a bit flakey after hardreset, sata_std_hardrset() didn't use to wait long enough before proceeding. Note that as we're not depending on SStatus, DET==1 condition cannot be used to wait for link, so use shorter timeout for no device case. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: kill 10ms sleep in softresetTejun Heo2006-04-111-6/+1
| | | | | | | | | Nothing, not the datasheet nor the errats, says this delay is necessary and with the previous PORT_CS_INIT change, we know the controller is in good state. Kill 10ms sleep. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: put port into known state before softresettingTejun Heo2006-04-111-0/+6
| | | | | | | | Make sure the controller has no pending commands and ready for command before issuing SRST. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: implement sil24_init_port()Tejun Heo2006-04-111-0/+16
| | | | | | | | Implement sil24_init_port which performs port initialization via PORT_CS_INIT. To be used later by softreset and EH. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: implement loss of completion interrupt on PCI-X errta fixTejun Heo2006-04-111-2/+25
| | | | | | | | | | | | | SiI3124 might lose completion interrupt if completion interrupt occurs shortly after SLOT_STAT register is read for the previous completion interrupt if it is operating in PCI-X mode. This currently doesn't trigger as libata never queues more than one command, but it will with NCQ changes. This patch implements the workaround - turning on WoC and explicitly clearing interrupt. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: consolidate host flags into SIL24_COMMON_FLAGSTejun Heo2006-04-111-9/+7
| | | | | | | | All sil24 controllers share the same host flags except for NPORTS. Consolidate them into SIL24_COMMON_FLAGS. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: add more constantsTejun Heo2006-04-111-1/+12
| | | | | | | Add HOST_CTRL_* and more PORT_IRQ_* bits. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: rename PORT_IRQ_SDB_FIS to PORT_IRQ_SDB_NOTIFYTejun Heo2006-04-111-3/+3
| | | | | | | Rename PORT_IRQ_SDB_FIS to more proper PORT_IRQ_SDB_NOTIFY. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: typo fixTejun Heo2006-04-111-1/+1
| | | | | | | Type fix. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: use ata_wait_register()Tejun Heo2006-04-111-20/+10
| | | | | | | Replace hard-coded waiting loops in sata_sil24 to ata_wait_register(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: better error message from softresetTejun Heo2006-04-111-2/+10
| | | | | | | Improve softreset error message. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: fix timeout calculation in sil24_softresetTejun Heo2006-04-111-1/+1
| | | | | | | | | sil24_softreset calculated timeout by adding ATA_TMOUT_BOOT * HZ to jiffies; however, as ATA_TMOUT_BOOT is already in jiffies, multiplying by HZ makes the value way off. Fix it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata: make reset methods complain when they failTejun Heo2006-04-111-1/+1
| | | | | | | Make reset methods complain loud when they fail. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata: kill @verbose from ata_reset_fn_tTejun Heo2006-04-111-5/+3
| | | | | | | | | | | @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>
* Merge branch 'master'Jeff Garzik2006-04-111-1/+0
|\ | | | | | | | | | | | | Conflicts: drivers/scsi/libata-scsi.c include/linux/libata.h
| * [PATCH] move ->eh_strategy_handler to the transport classChristoph Hellwig2006-04-101-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Overriding the whole EH code is a per-transport, not per-host thing. Move ->eh_strategy_handler to the transport class, same as ->eh_timed_out. Downside is that scsi_host_alloc can't check for the total lack of EH anymore, but the transition period from old EH where we needed it is long gone already. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | [libata] bump versionsJeff Garzik2006-04-021-1/+1
| |
* | [PATCH] libata: rename ATA_FLAG_PORT_DISABLED to ATA_FLAG_DISABLEDTejun Heo2006-04-021-1/+1
|/ | | | | | | | Rename ATA_FLAG_PORT_DISABLED to ATA_FLAG_DISABLED for consistency. (ATA_FLAG_* are always about ports). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [libata] export ata_dev_pair; trim trailing whitespaceJeff Garzik2006-03-241-1/+1
| | | | | | | | Mostly, trim trailing whitespace. Also: * export ata_dev_pair * move ata_dev_classify export closer to ata_dev_pair export
* [libata sata_sil24] cleanups: use pci_iomap(), kzalloc()Jeff Garzik2006-03-221-13/+10
| | | | | | * libata will soon move to iomap, so we should use pci_iomap() and pci_iounmap(). * Use kzalloc() where appropriate.
* [SCSI] libata: implement minimal transport template for ->eh_timed_outTejun Heo2006-03-211-1/+0
| | | | | | | | | | 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] sata_sil24: lengthen softreset timeoutTejun Heo2006-03-111-4/+4
| | | | | | | | | | | | | sil24 softreset timeout was > 100ms (100 loops with msleep(1)), which turned out to be too short for some devices (ASI ARAID99 2000). This patch converts sil24 softreset waiting loop to use proper timeout condition and lengthen the timeout to ATA_TMOUT_BOOT secs and check interval to 100ms. Chisato Yamauchi discovered the problem and supplied initial patch. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Chisato Yamauchi <cyamauch@plamo.linet.gr.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: exit early from softreset if SStatus reports no deviceTejun Heo2006-03-111-8/+14
| | | | | | | | | | | | | | | sata_sil24 softreset routine used to check sata_dev_present() after SRST is complete in the hope that SRST may do some good even when SStatus reports no device. This is okay as long as SRST timeout is short (> 100ms in the current code) but it seems that not all SATA devices are happy with short SRST timeout. This patch makes softreset exit early without performing actual SRST if SStatus reports no device in preparation for lengthening SRST timeout. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: fix mwdma_mask settingTejun Heo2006-03-051-0/+1
| | | | | | | mwdma_mask was not copied from port_info to probe_ent. Fix it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_sil24: add a new PCI ID for SiI 3124Tejun Heo2006-03-011-0/+1
| | | | | | | | Add a new PCI ID for SiI 3124. Reported by Silicon Image. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Carlos Pardo <Carlos.Pardo@siliconimage.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] libata: kill sht->max_sectorsTejun Heo2006-02-121-1/+0
| | | | | | | | The previous dev->max_sectors patch made sht->max_sectors meaningless. Kill all initializations of sht->max_sectors. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [PATCH] libata: move cdb_len for host to deviceTejun Heo2006-02-121-2/+2
| | | | | | | | | cdb_len is per-device property. Sharing cdb_len on ap results in inaccurate configuration on revalidation and hotplugging. This patch makes cdb_len per-device. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
OpenPOWER on IntegriCloud