summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic7xxx
Commit message (Collapse)AuthorAgeFilesLines
* [SCSI] aic79xx: target hotplug fixesHannes Reinecke2006-04-132-44/+10
| | | | | | | | | | | | | When a target is added aic79xx tries to be overly clever: it changes the command on the fly to TEST UNIT READY and tries to requeue the original command. Sadly this breaks SCSI compability and of course the midlayer is getting a bit confused by it. So we're just removing that bit of code and let the midlayer deal with it. It's clever enough by now. And the driver code is getting simpler. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx bus reset updateHannes Reinecke2006-04-133-62/+58
| | | | | | | | | | | | | | As James B. correctly noted, ahd_reset_channel() in ahd_linux_bus_reset() should be protected by ahd_lock(). However, the main reason for not doing so was a deadlock with the interesting polling mechanism to detect the end a bus reset. This patch replaces the polling mechanism with a saner signalling via flags; it also gives us the benefit of detecting any multiple calls to ahd_reset_channel(). Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* fix a typo in the AIC7XXX_DEBUG_MASK help textAdrian Bunk2006-04-011-1/+1
| | | | | | This patch fixes a typo in the AIC7XXX_DEBUG_MASK help text. Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [SCSI] aic79xx: Avoid renegotiation on inquiryHannes Reinecke2006-03-121-24/+0
| | | | | | | | | Because of some quirk in the SCSI spec the aic79xx driver chose to force a renegotiation when sending an inquiry. This should better be handled by the upper layers if required at all. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: use BIOS settingsHannes Reinecke2006-03-121-7/+28
| | | | | | | | This patch fixes the aic79xx driver to properly respond to BIOS settings. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: Invalid Sequencer interrupt occuredHannes Reinecke2006-03-121-2/+6
| | | | | | | | | | | On certain systems the driver seems to hit upon some "scsi0: Invalid Sequencer interrupt occurred." problem and dumps card state. According to Adaptec engineers this message is harmless. So as not to confuse user we can as well disable the internal card state dump and just print out the message itself. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: Update error recoveryHannes Reinecke2006-03-121-124/+201
| | | | | | | | This patch updates the error recovery. Routines for TARGET RESET and ABORT COMMAND are split up as the logic is quite dissimilar. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: Remove dead codeHannes Reinecke2006-03-123-62/+0
| | | | | Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: use tcq functionsHannes Reinecke2006-03-121-9/+5
| | | | | | | | | | | | This patch converts aic79xx to use the midlayer-supplied tcq functions. We also set the queuedepth to '1' if tcq is disabled; the aic79xx driver gets confused otherwise. Will set it back to '2' once I figure out how to queue requests in the driver. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: remove qfrozenHannes Reinecke2006-03-122-82/+27
| | | | | | | | | | This patch removes the need for platform_data->qfrozen. We're now using complete() instead of semaphores thus simplifying ahd_freeze_simq() quite a lot. This also fixes some deadlocks in the recovery code (again). Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic7xxx: semaphore to completion conversionChristoph Hellwig2006-02-272-38/+12
| | | | | | | | | | | | | | | On Tue, Jan 31, 2006 at 06:20:18PM +0100, Christoph Hellwig wrote: > switch eh_sem to a completion. due to wait_for_completion_timeout this > also nicely simplifies the code. Unfortunately it's untested, so if > someone with the hardware could give it a try that would be nice. Once > it works the same thing can be applied to aic79xx. New version that switches to the common onstack completion and just a pointer in the platform_data struct idiom. This gets rid of all the flags fiddling. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] Add spi_populate_*_msg functionsMatthew Wilcox2006-02-272-34/+14
| | | | | | | | | | | | Introduce new helpers: - spi_populate_width_msg() - spi_populate_sync_msg() - spi_populate_ppr_msg() and use them in drivers which already enable the SPI transport. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: Fix timer handlingHannes Reinecke2006-01-314-26/+17
| | | | | | | | | Fix the timer handling in aic79xx to use the SCSI-ML provided handling instead of implementing our own. It also fixes a deadlock in the command recovery code. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: SLOWCRC fixHannes Reinecke2006-01-314-3/+49
| | | | | | This patch introduces the SLOWCRC handling for certain buggy chipsets. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: sequencer fixesHannes Reinecke2006-01-319-553/+834
| | | | | | | This patch updates the aic79xx sequencer with latest fixes from adaptec. The sequencer code now corresponds with adaptec version 2.0.15. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic7xxx: Update aicasmHannes Reinecke2006-01-314-17/+140
| | | | | | This patchset updates aicasm code with the latest fixes from adaptec. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: bump version to 3.0James Bottomley2006-01-121-1/+1
| | | | | | | | This takes us past the old 1.x version of the SCSI driver and the 2.x version of the aic website version to reflect the full incorporation of both branches. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: Sequencer updateHannes Reinecke2006-01-129-1538/+1911
| | | | | | Update sequencer code to Adaptec version 2.0.12-6.3.9. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: Sanitize inb/outb handlingHannes Reinecke2006-01-121-59/+21
| | | | | | This patch coalesces inb/outb calls to the approriate word or long form. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic79xx: Use struct map_nodeHannes Reinecke2006-01-123-33/+58
| | | | | | Use struct map_node instead of separate variables. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic7xxx/aic79xx: New device idsHannes Reinecke2006-01-124-14/+40
| | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic7xxx: fix timer handling bugJames Bottomley2006-01-123-41/+16
| | | | | | | | | The driver is doing a rather stupid mod_timer allegedly to "give request sense more time to complete". This is illegal and pointless, so just eliminate it. Also eliminate all the other uses of struct timer_list in the driver, which are mostly bogus. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds2006-01-041-0/+6
|\
| * gitignore: misc filesBrian Gerst2006-01-011-0/+6
| | | | | | | | | | | | | | Ignore all files generated from *_shipped files, plus a few others. Signed-off-by: Brian Gerst <bgerst@didntduck.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
* | [SCSI] handle scsi_add_host failure for aic7xxx and fix compiler warningJesper Juhl2005-12-141-5/+13
| | | | | | | | | | | | | | | | | | | | Add scsi_add_host() failure handling for aic7xxx Also silence a compiler warning : drivers/scsi/aic7xxx/aic7xxx_osm.c: In function `ahc_linux_register_host': drivers/scsi/aic7xxx/aic7xxx_osm.c:1100: warning: ignoring return value of `scsi_add_host', declared with attribute warn_unused_result Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [SCSI] handle scsi_add_host failure for aic79xx and fix compiler warningJesper Juhl2005-12-141-2/+9
| | | | | | | | | | | | | | | | | | | | Add scsi_add_host() failure handling for aic79xx Also silence a compiler warning : drivers/scsi/aic7xxx/aic79xx_osm.c: In function `ahd_linux_register_host': drivers/scsi/aic7xxx/aic79xx_osm.c:1099: warning: ignoring return value of `scsi_add_host', declared with attribute warn_unused_result Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [SCSI] aic7xxx: reset handler selects a wrong commandVasily Averin2005-11-282-2/+2
|/ | | | | | | | | | | | | | | | | To transport scsi reset command to device aic7xxx reset handler looks at the driver's pending_list and searches any proper command. However the search condition has been inverted: ahc_match_scb() returns TRUE if a matched command is found. As a result the reset on required devices did not turn out well, a correctly working neighbour device may be surprised by the reset. aic7xxx reset handler reports about the success, but really the original situation is not corrected yet. Signed-off-by: Vasily Averin <vvs@sw.ru> Naturally, there's a corresponding problem in the aic79xx driver, so I've also added the same fix for that. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge by hand (whitespace conflicts in libata.h)James Bottomley2005-11-102-2/+0
|\ | | | | | | Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reasonOlaf Hering2005-11-092-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes almost all inclusions of linux/version.h. The 3 #defines are unused in most of the touched files. A few drivers use the simple KERNEL_VERSION(a,b,c) macro, which is unfortunatly in linux/version.h. There are also lots of #ifdef for long obsolete kernels, this was not touched. In a few places, the linux/version.h include was move to where the LINUX_VERSION_CODE was used. quilt vi `find * -type f -name "*.[ch]"|xargs grep -El '(UTS_RELEASE|LINUX_VERSION_CODE|KERNEL_VERSION|linux/version.h)'|grep -Ev '(/(boot|coda|drm)/|~$)'` search pattern: /UTS_RELEASE\|LINUX_VERSION_CODE\|KERNEL_VERSION\|linux\/\(utsname\|version\).h Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [SCSI] aic79xx: remove scsi_assign_lock usageChristoph Hellwig2005-11-061-23/+14
| | | | | | | | | | | | | | | | just take the internal lock in queuecommand instead. also switch the only direct use of the internal lock to the wrappers used elsewhere. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | [SCSI] aic7xxx: remove scsi_assign_lock usageChristoph Hellwig2005-11-061-23/+16
|/ | | | | | | | just take the internal lock in queuecommand instead. also switch the only direct use of the internal lock to the wrappers used elsewhere. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] use scmd_id(), scmd_channel() throughout codeJeff Garzik2005-10-282-10/+11
| | | | | | | | | | | Wrap a highly common idiom. Makes the code easier to read, helps pave the way for sdev->{id,channel} removal, and adds a token that can easily by grepped-for in the future. There are a couple sdev_id() and scmd_printk() updates thrown in as well. Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] use sfoo_printk() in driversJeff Garzik2005-10-282-35/+15
| | | | | Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic7xxx/aic79xx: fix module removal path not to panicJames Bottomley2005-10-025-10/+15
| | | | | | | | | | | | In these drivers, scsi_remove_host() is called too late, at the point it is called, the driver has already shut down too far to accept any I/O that the shutdown might generate. Any generated I/O actually triggers a panic. Fix this by calling scsi_remove_host() as early as possible and not calling scsi_host_put() until just before we kfree the ahc_softc. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* [SCSI] aic7xxx: move to dma_get_required_mask() and correct 39 bit assumptionsJames Bottomley2005-09-133-14/+5
| | | | | | | | | | | | | | | This patch moves aic7xxx over to the dma_get_required_mask() API and dumps its open coded memory check. It also appears from this bug: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167049 That 39 bit addressing doesn't work on older cards. I surmise that the AHC_LARGE_SCBS flag is the one that marks cards capable of using 39 bit addressing, so I also folded that check into the code. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* Merge by hand (conflicts in sd.c)James Bottomley2005-09-066-165/+253
|\
| * [SCSI] aic7xxx: remove aiclib.cChristoph Hellwig2005-09-046-165/+253
| | | | | | | | | | | | | | | | #include of C files and macro tricks to rename symbols are evil and just cause trouble. Let's doublicate the two functions as they're going to go away soon enough anyway. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | Merge HEAD from ../scsi-misc-2.6-tmp James Bottomley2005-08-2822-6484/+1746
|\ \ | |/
| * [SCSI] aiclib remove deadChristoph Hellwig2005-08-152-2124/+0
| | | | | | | | | | | | | | | | remove lots of completely dead code from aiclib, there's not a lot left and even what's left is rather useless. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic79xx: sane pci probingChristoph Hellwig2005-08-157-291/+60
| | | | | | | | | | | | | | remove ahd_tailq and do sane pci probing. ported over from aic7xxx. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic79xx: remove some dead codeChristoph Hellwig2005-08-152-38/+0
| | | | | | | | | | | | | | remove some dead cruft, as done already in aic7xxx Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: lost multifunction flags handlingJames Bottomley2005-08-131-0/+29
| | | | | | | | | | | | | | | | | | From: Christoph Hellwig <hch@lst.de> Multi-function cards need to inherit the PCI flags from the master PCI device. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] fix warning in aic7770.cakpm@osdl.org2005-08-121-1/+0
| | | | | | | | | | | | | | | | | | | | From: "Martin J. Bligh" <mbligh@mbligh.org> drivers/scsi/aic7xxx/aic7770.c: In function `aic7770_config': drivers/scsi/aic7xxx/aic7770.c:129: warning: unused variable `l' Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic79xx: fix boot panic with no hardwareJames Bottomley2005-08-092-5/+1
| | | | | | | | | | | | | | | | There's a spurious (and illegal since it's marked __exit) call to ahc_linux_exit() in ahc_linux_init() which causes a double list deletion of the transport class; remove it. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic79xx: needs to select SPI_TRANSPORT_ATTRSakpm@osdl.org2005-08-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | without it you get this failure: drivers/built-in.o(.text+0xdcccd): In function `ahd_linux_slave_configure': drivers/scsi/aic7xxx/aic79xx_osm.c:636: undefined reference to `spi_dv_device' drivers/built-in.o(.text+0xdd7b1): In function `ahd_send_async': drivers/scsi/aic7xxx/aic79xx_osm.c:1652: undefined reference to `spi_display_xfer_agreement' drivers/built-in.o(.init.text+0x7b4d): In function `ahd_linux_init': drivers/scsi/aic7xxx/aic79xx_osm.c:2765: undefined reference to `spi_attach_transport' drivers/built-in.o(.init.text+0x7c94):drivers/scsi/aic7xxx/aic79xx_osm.c:2774: undefined reference to `spi_release_transport' drivers/built-in.o(.exit.text+0x72c): In function `ahd_linux_exit': drivers/scsi/aic7xxx/aic79xx_osm.c:2783: undefined reference to `spi_release_transport' Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx/79xx: fix another potential panic due to a non existent targetJames Bottomley2005-08-052-4/+4
| | | | | | | | | | | | I ran into this one sending bus resets across the hardware. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic7xxx: upport all sequencer and core fixes from adaptec version 6.3.9James Bottomley2005-08-0410-512/+544
| | | | | | | | | | | | | | This patch upports all relevant code fixes and bumps the driver version to 7.0 to signify starting a new tree. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic79xx: fixup DT settingHannes Reinecke2005-08-041-2/+3
| | | | | | | | | | | | | | | | | | | | this patch is just a cross-port of the fixup for aic7xxx DT settings. As the same restrictions apply for aic79xx also (DT requires wide transfers) the dt setting routine should be modified equivalently. And an invalid period setting will be caught by ahd_find_syncrate() anyway. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic79xx: add hold_mcs to the transport parametersJames Bottomley2005-08-031-1/+37
| | | | | | | | | | | | since this card can support the setting, add it to the parameter list. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| * [SCSI] aic79xx: fix up transport settingsJames Bottomley2005-08-032-32/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a slight problem in the way you've done the transport parameters; reading from the variables actually produces the current settings, not the ones you just set (and there's usually a lag because devices don't renegotiate until the next command goes over the bus). If you set the bit immediately, you get into the situation where the transport parameters report something as being set even if the drive cannot support it. I patched the driver to do it this way and also corrected a panic in the proc routines. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
OpenPOWER on IntegriCloud