summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_nv.c
Commit message (Collapse)AuthorAgeFilesLines
* [libata] sata_nv: add PCI IDsJeff Garzik2006-06-221-0/+4
| | | | | | Based on a patch contributed by Andrew Chew @ NVIDIA. Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [libata] sata_nv: s/spin_lock_irqsave/spin_lock/ in irq handlerJeff Garzik2006-06-201-6/+4
| | | | | | | | | We don't need to use the heavier spin lock in the irq handler. It's quite possible we can do this in nv_generic_interrupt() as well, but I didn't take the time to pursue that train of thought. Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_nv: add hotplug supportTejun Heo2006-06-201-1/+8
| | | | | | | Add hotplug support. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_nv: convert to new EHTejun Heo2006-06-201-26/+89
| | | | | | | Convert to new EH. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_nv: better irq handlersTejun Heo2006-06-201-17/+194
| | | | | | | | | | | | | nf2/3 and ck804 have irq status register. Implement better irq handler for those flavors of nv. This patch makes different flavors of nv controllers use different irq handlers by using separate port_info for each flavor. This change also makes following EH and hotplug updates easier to integrate. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_nv: simplify constantsTejun Heo2006-06-201-19/+12
| | | | | | | Simplify interrupt constants and make NFORCE3 equal to NFORCE2. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_nv: kill struct nv_host_desc and nv_hostTejun Heo2006-06-201-48/+2
| | | | | | | | | nv_host_desc and nv_host are used to discern different generations of nv controllers. Kill those. New EH/hotplug implementation will use standard port_info/ata_port_operations for that. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [PATCH] sata_nv: kill not-working hotplug codeTejun Heo2006-06-201-169/+0
| | | | | | | | | sata_nv contained hotplug code which is mainly for demonstrating how hotplug event is handled. This patch kills the demo code in prepration for real hotplug implementation. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* [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] PATCH: libata. Add ->data_xfer methodAlan Cox2006-05-241-0/+1
| | | | | | | | | | | 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>
* [PATCH] sata_nv: Add MCP61 supportAndrew Chew2006-05-241-0/+6
| | | | | | Added MCP61 SATA support to sata_nv. Signed-off-by: Jeff Garzik <jeff@garzik.org>
* Merge branch 'upstream'Jeff Garzik2006-04-121-1/+0
|\
| * 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>
* | | Merge branch 'upstream'Jeff Garzik2006-04-021-1/+1
|\| |
| * | [libata] bump versionsJeff Garzik2006-04-021-1/+1
| | |
* | | Merge branch 'upstream'Jeff Garzik2006-04-021-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/scsi/libata-core.c drivers/scsi/pdc_adma.c drivers/scsi/sata_mv.c drivers/scsi/sata_nv.c drivers/scsi/sata_promise.c drivers/scsi/sata_qstor.c drivers/scsi/sata_sx4.c drivers/scsi/sata_vsc.c include/linux/libata.h
| * | [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>
* | Merge branch 'upstream'Jeff Garzik2006-03-241-120/+62
|\| | | | | | | | | | | Conflicts: drivers/scsi/sata_vsc.c
| * [libata sata_nv] eliminate duplicate codepaths with iomapJeff Garzik2006-03-221-44/+13
| | | | | | | | | | | | | | | | | | | | eliminate a bunch of if (mmio) writel() else outl() code with the pci_iomap() and io{read,write}{8,16,32}() interface.
| * [libata sata_nv] cleanups: convert #defines to enums; remove in-file historyJeff Garzik2006-03-221-75/+49
| |
| * [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>
* | Merge branch 'upstream'Jeff Garzik2006-02-131-1/+0
|\|
| * [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>
* | Merge branch 'upstream'Jeff Garzik2006-02-101-0/+1
|\|
| * [PATCH] libata: use ata_scsi_timed_out()Tejun Heo2006-02-101-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>
* | Merge branch 'upstream'Jeff Garzik2006-01-171-7/+24
|\|
| * [PATCH] sata_nv, spurious interrupts at system startup with MAXTOR 6H500F0 driveAndrew Chew2006-01-091-6/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch works around a problem with spurious interrupts seen at boot time when a MAXTOR 6H500F0 drive is present. An ATA interrupt condition is mysteriously present at start of day. If we took too long in issuing the first command, the kernel would basically get tired of the spurious interrupts and turn the interrupt off. Issuing the first command essentially causes the interrupt condition to get acknowledged. I haven't seen this happen with any other drives. What I basically do is ack ATA status by reading it regardless of whether we're expecting to have to handle an interrupt. This clears the start-of-day anomalous interrupt condition, and keeps the kernel from disabling that interrupt due to too many spurious interrupts. Also, I fixed a bug where hotplug interrupts weren't getting acknowledged as handled in the ISR. This was not the cause of the spurious interrupts, but it's the right thing to do anyway. Signed-Off-By: Andrew Chew Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * [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 'master'Jeff Garzik2005-11-111-1/+1
|\|
| * [libata] constify PCI ID table in several driversJeff Garzik2005-11-101-1/+1
| |
* | Merge branch 'upstream'Jeff Garzik2005-11-091-2/+1
|\|
| * [libata] eliminate use of drivers/scsi/scsi.h compatibility header/definesJeff Garzik2005-11-071-2/+1
| |
* | Merge branch 'master'Jeff Garzik2005-10-301-1/+2
|\|
| * [libata] use dev_printk() throughout driversJeff Garzik2005-10-301-1/+2
| | | | | | | | | | | | 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 'master'Jeff Garzik2005-10-281-3/+3
|\|
| * 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] iomem annotations (sata_nv)Al Viro2005-10-211-2/+2
| | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | Merge branch 'upstream'Jeff Garzik2005-10-091-8/+8
|\|
| * [PATCH] Fix sata_nv handling of NVIDIA MCP51/55Andy Currid2005-10-091-7/+7
| | | | | | | | | | | | | | Patch to fix sata_nv handling of NVIDIA MCP51/55 Signed-off-by: Andy Currid <acurrid@nvidia.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * libata: bitmask based pci init functions for one or two portsAlan Cox2005-10-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This redoes the n_ports logic I proposed before as a bitmask. ata_pci_init_native_mode is now used with a mask allowing for mixed mode stuff later on. ata_pci_init_legacy_port is called with port number and does one port now not two. Instead it is called twice by the ata init logic which cleans both of them up. There are stil limits in the original code left over - IRQ/port mapping for legacy mode should be arch specific values - You can have one legacy mode IDE adapter per PCI root bridge on some systems - Doesn't handle mixed mode devices yet (but is now a lot closer to it)
* | [PATCH] libata: interrupt driven pio for LLDAlbert Lee2005-09-281-2/+2
|/ | | | | | | | | | | | | | | | | | | | | libata.h: libata-core: Add ATA_FLAG_PIO_POLLING flag for LLDs that expect interrupt for command completion only. sata_nv.c: sata_vsc.c: irq handler is wrapper around ata_host_intr(), can handle PIO interrupts. sata_promise.c: sata_sx4.c: sata_qstor.c: sata_mv.c: Private irq handler. Polling mode ATA_FLAG_PIO_POLLING used for compatibility. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [PATCH] Add NVIDIA device ID in sata_nvAndy Currid2005-09-211-0/+2
| | | | | Signed-off-by: Andy Currid <acurrid@nvidia.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [libata] update several drivers to use pci_iomap()/pci_iounmap()Jeff Garzik2005-08-301-4/+5
|
* Merge /spare/repo/linux-2.6/Jeff Garzik2005-08-291-3/+21
|\
| * [PATCH] fix atapi_packet_task vs. intr race (take 2)Tejun Heo2005-08-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Interrupts from devices sharing the same IRQ could cause ata_host_intr to finish commands being processed by atapi_packet_task if the commands are using ATA_PROT_ATAPI_NODATA or ATA_PROT_ATAPI_DMA protocol. This is because libata interrupt handler is unaware that interrupts are not expected during that period. This patch adds ATA_FLAG_NOINTR flag to tell the interrupt handler that we're not expecting interrupts. Note that once proper HSM is implemented for interrupt-driven PIO, this should be merged into it and this flag will be removed. ahci.c is a different kind of beast, so it's left alone. * The following drivers use ata_qc_issue_prot and ata_interrupt, so changes in libata core will do. ata_piix sata_sil sata_svw sata_via sata_sis sata_uli * The following drivers use ata_qc_issue_prot and custom intr handler. They need this change to work correctly. sata_nv sata_vsc * The following drivers use custom issue function and intr handler. Currently all custom issue functions don't support ATAPI, so this change is irrelevant, updated for consistency and to avoid later mistakes. sata_promise sata_qstor sata_sx4 Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * [PATCH] sata_nv: Support MCP51/MCP55 device IDsDaniel Drake2005-07-311-2/+19
| | | | | | | | | | This is a multi-part message in MIME format. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | [libata sata_nv] NVIDIA ok'd license change from OSL+GPL to GPLJeff Garzik2005-08-291-14/+13
| |
* | [libata] license change, other bitsJeff Garzik2005-08-281-0/+11
|/ | | | | | | | | | | - 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
* libata: Fix use-after-iounmapJeff Garzik2005-05-261-0/+2
| | | | | | | | | | | | | | | | | | Jens Axboe pointed out that the iounmap() call in libata was occurring too early, and some drivers (ahci, probably others) were using ioremap'd memory after it had been unmapped. The patch should address that problem by way of improving the libata driver API: * move ->host_stop() call after all ->port_stop() calls have occurred. * create default helper function ata_host_stop(), and move iounmap() call there. * add ->host_stop_prewalk() hook, use it in sata_qstor.c (hi Mark). sata_qstor appears to require the host-stop-before-port-stop ordering that existed prior to applying the attached patch.