aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/aic7xxx
AgeCommit message (Collapse)Author
2006-01-31[SCSI] aic7xxx: Update aicasmHannes Reinecke
This patchset updates aicasm code with the latest fixes from adaptec. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-01-12[SCSI] aic79xx: bump version to 3.0James Bottomley
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>
2006-01-12[SCSI] aic79xx: Sequencer updateHannes Reinecke
Update sequencer code to Adaptec version 2.0.12-6.3.9. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-01-12[SCSI] aic79xx: Sanitize inb/outb handlingHannes Reinecke
This patch coalesces inb/outb calls to the approriate word or long form. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-01-12[SCSI] aic79xx: Use struct map_nodeHannes Reinecke
Use struct map_node instead of separate variables. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-01-12[SCSI] aic7xxx/aic79xx: New device idsHannes Reinecke
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-01-12[SCSI] aic7xxx: fix timer handling bugJames Bottomley
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>
2006-01-04Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds
2006-01-01gitignore: misc filesBrian Gerst
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>
2005-12-14[SCSI] handle scsi_add_host failure for aic7xxx and fix compiler warningJesper Juhl
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>
2005-12-14[SCSI] handle scsi_add_host failure for aic79xx and fix compiler warningJesper Juhl
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>
2005-11-28[SCSI] aic7xxx: reset handler selects a wrong commandVasily Averin
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>
2005-11-10Merge by hand (whitespace conflicts in libata.h)James Bottomley
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-11-09[PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reasonOlaf Hering
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>
2005-11-06[SCSI] aic79xx: remove scsi_assign_lock usageChristoph Hellwig
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>
2005-11-06[SCSI] aic7xxx: remove scsi_assign_lock usageChristoph Hellwig
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>
2005-10-28[SCSI] use scmd_id(), scmd_channel() throughout codeJeff Garzik
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>
2005-10-28[SCSI] use sfoo_printk() in driversJeff Garzik
Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-10-02[SCSI] aic7xxx/aic79xx: fix module removal path not to panicJames Bottomley
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>
2005-09-13[SCSI] aic7xxx: move to dma_get_required_mask() and correct 39 bit assumptionsJames Bottomley
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>
2005-09-06Merge by hand (conflicts in sd.c)James Bottomley
2005-09-04[SCSI] aic7xxx: remove aiclib.cChristoph Hellwig
#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>
2005-08-28Merge HEAD from ../scsi-misc-2.6-tmp James Bottomley
2005-08-15[SCSI] aiclib remove deadChristoph Hellwig
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>
2005-08-15[SCSI] aic79xx: sane pci probingChristoph Hellwig
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>
2005-08-15[SCSI] aic79xx: remove some dead codeChristoph Hellwig
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>
2005-08-13[SCSI] aic7xxx: lost multifunction flags handlingJames Bottomley
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>
2005-08-12[SCSI] fix warning in aic7770.cakpm@osdl.org
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>
2005-08-09[SCSI] aic79xx: fix boot panic with no hardwareJames Bottomley
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>
2005-08-07[SCSI] aic79xx: needs to select SPI_TRANSPORT_ATTRSakpm@osdl.org
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>
2005-08-05[SCSI] aic7xxx/79xx: fix another potential panic due to a non existent targetJames Bottomley
I ran into this one sending bus resets across the hardware. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-08-04[SCSI] aic7xxx: upport all sequencer and core fixes from adaptec version 6.3.9James Bottomley
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>
2005-08-04[SCSI] aic79xx: fixup DT settingHannes Reinecke
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>
2005-08-04Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6Linus Torvalds
2005-08-04[SCSI] fix aic7xxx performance issues since 2.6.12-rc2James Bottomley
Several people noticed we dropped quite a bit on benchmark figures. OK, it was my fault but unfortunately I discovered I ran out of brown paper bags a while ago and forgot to reorder them. The issue is that a construct introduced in the conversion of the driver to use the transport class keyed off whether the block request was tagged or not. However, the aic7xxx driver doesn't properly set up the block layer TCQ (it uses the wrong API), so the driver now things all requests are untagged and we keep it to a queue depth of a single element. Oops. The fix is to use the correct TCQ API. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-08-03[SCSI] aic79xx: add hold_mcs to the transport parametersJames Bottomley
since this card can support the setting, add it to the parameter list. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-08-03[SCSI] aic79xx: fix up transport settingsJames Bottomley
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>
2005-08-03[SCSI] aic79xx: DV parameter settingsHannes Reinecke
This patch updates various scsi_transport_spi parameters with the actual parameters used by the driver internally. Domain Validation for all devices should now work properly. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-08-03[SCSI] aic79xx: update to use scsi_transport_spiHannes Reinecke
This patch updates the aic79xx driver to take advantage of the scsi_transport_spi infrastructure. Patch is quite a mess as some procedures have been reshuffled to be closer to the aic7xxx driver. Rejections fixed and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-08-03[SCSI] aic79xx: Remove busyqHannes Reinecke
From: Jeff Garzik <jgarzik@pobox.com> This patch removes the busyq in aic79xx and uses the command-queue from the midlayer instead. Additionally some dead code is removed. Signed-off-by: Hannes Reinecke <hare@suse.de> Fixed rejections Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-08-02[SCSI] aic7xxx: final fixes for DT handlingJames Bottomley
The aic7xxx can support Data Group transfers at periods > 12.5, so eliminate that restriction. Additionally wide is a requirement for DT so ensure wide is set if users request DT. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-08-02[PATCH] aic byteorder fixes after recent cleanupOlaf Hering
Rebuild the aic7xxx firmware doesn't work anymore after this change which appeared int 2.6.13-rc1: [SCSI] aic7xxx/aic79xx: remove useless byte order macro cruft Two files did not include byteorder.h, resulting in aic dying with a panic "Unknown opcode encountered in seq program" This fixes it for me. Signed-off-by: Olaf Hering <olh@suse.de> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-30[SCSI] aic7xxx: fix bug in DT handingJames Bottomley
Basically DT isn't reported or handled at all. The problem is that lines of code like this: spi_dt(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_DT_REQ; don't do what you think they do when spi_dt is a single bit variable. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-07-30[SCSI] aic byteorder fixes after recent cleanupOlaf Hering
aic doesnt work anymore after this change which appeared int 2.6.13-rc1: [SCSI] aic7xxx/aic79xx: remove useless byte order macro cruft 2 files did not include byteorder.h, aic died with panic "Unknown opcode encountered in seq program" This patch fixes it for me. Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-07-27[PATCH] turn many #if $undefined_string into #ifdef $undefined_stringOlaf Hering
turn many #if $undefined_string into #ifdef $undefined_string to fix some warnings after -Wno-def was added to global CFLAGS Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-11[SCSI] aic7xxx: remove ahc_tailqChristoph Hellwig
now that we do normal PCI probing there's no need to keep a list of all HBAs. Rejections fixed up and Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-07-11[SCSI] aic7xxx: sane pci probingChristoph Hellwig
always probe in bus order, avoid any reordering Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-07-11[SCSI] aic79xx: ahd_linux_dev_reset() cleanupAndrew Morton
Use the macros consistently in ahd_linux_dev_reset(). If ahd_linux_dev_reset() really can be called with local interrupts disabled then yuk. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-07-03[SCSI] aic7xxx: fix boot hang with Fujitsu drivesJames Bottomley
Apparently these are the only drives that try to negotiate IU and QAS at u160 speeds. The aic7xxx driver can't cope with this. The fix is to eliminate the IU and QAS setting routines. I've #if 0'd them out, just in case we ever get the sequencer documentation out of Adaptec, since we'd then be able to fix the driver. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-06-26[SCSI] aic7xxx: correct target valid check in aic7xxx_proc.cJames Bottomley
From: Andy Whitcroft <apw@shadowen.org> Updated to remove the bogus translated target check. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>