Commit f211e1fd authored by Justin T. Gibbs's avatar Justin T. Gibbs

Complete the upgrade to aic7xxx 6.2.23 and aic79xx 1.3.0_ALPHA3.

parent f33f47a2
...@@ -277,7 +277,50 @@ config SCSI_AACRAID ...@@ -277,7 +277,50 @@ config SCSI_AACRAID
tristate "Adaptec AACRAID support (EXPERIMENTAL)" tristate "Adaptec AACRAID support (EXPERIMENTAL)"
depends on EXPERIMENTAL && SCSI && PCI depends on EXPERIMENTAL && SCSI && PCI
source "drivers/scsi/aic7xxx/Kconfig" source "drivers/scsi/aic7xxx/Kconfig.aic7xxx"
config SCSI_AIC7XXX_OLD
tristate "Adaptec AIC7xxx support (old driver)"
help
WARNING This driver is an older aic7xxx driver and is no longer
under active development. Adaptec, Inc. is writing a new driver to
take the place of this one, and it is recommended that whenever
possible, people should use the new Adaptec written driver instead
of this one. This driver will eventually be phased out entirely.
This is support for the various aic7xxx based Adaptec SCSI
controllers. These include the 274x EISA cards; 284x VLB cards;
2902, 2910, 293x, 294x, 394x, 3985 and several other PCI and
motherboard based SCSI controllers from Adaptec. It does not support
the AAA-13x RAID controllers from Adaptec, nor will it likely ever
support them. It does not support the 2920 cards from Adaptec that
use the Future Domain SCSI controller chip. For those cards, you
need the "Future Domain 16xx SCSI support" driver.
In general, if the controller is based on an Adaptec SCSI controller
chip from the aic777x series or the aic78xx series, this driver
should work. The only exception is the 7810 which is specifically
not supported (that's the RAID controller chip on the AAA-13x
cards).
Note that the AHA2920 SCSI host adapter is *not* supported by this
driver; choose "Future Domain 16xx SCSI support" instead if you have
one of those.
Information on the configuration options for this controller can be
found by checking the help file for each of the available
configuration options. You should read
<file:Documentation/scsi/aic7xxx_old.txt> at a minimum before
contacting the maintainer with any questions. The SCSI-HOWTO,
available from <http://www.linuxdoc.org/docs.html#howto>, can also
be of great help.
If you want to compile this driver as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called aic7xxx_old.o.
source "drivers/scsi/aic7xxx/Kconfig.aic79xx"
# All the I2O code and drivers do not seem to be 64bit safe. # All the I2O code and drivers do not seem to be 64bit safe.
config SCSI_DPT_I2O config SCSI_DPT_I2O
......
# #
# AIC79XX 2.5.X Kernel configuration File. # AIC79XX 2.5.X Kernel configuration File.
# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic79xx#1 $ # $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic79xx#2 $
# #
config SCSI_AIC79XX config SCSI_AIC79XX
tristate "Adaptec AIC79xx U320 support" tristate "Adaptec AIC79xx U320 support"
depends on PCI
help help
This driver supports all of Adaptec's Ultra 320 PCI-X This driver supports all of Adaptec's Ultra 320 PCI-X
based SCSI controllers. based SCSI controllers.
......
# #
# AIC7XXX and AIC79XX 2.5.X Kernel configuration File. # AIC7XXX and AIC79XX 2.5.X Kernel configuration File.
# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#2 $ # $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Kconfig.aic7xxx#4 $
# #
config SCSI_AIC7XXX config SCSI_AIC7XXX
tristate "Adaptec AIC7xxx Fast -> U160 support" tristate "Adaptec AIC7xxx Fast -> U160 support (New Driver)"
---help--- ---help---
This driver supports all of Adaptec's Fast through Ultra 160 PCI This driver supports all of Adaptec's Fast through Ultra 160 PCI
based SCSI controllers as well as the aic7770 based EISA and VLB based SCSI controllers as well as the aic7770 based EISA and VLB
...@@ -98,9 +98,3 @@ config AIC7XXX_REG_PRETTY_PRINT ...@@ -98,9 +98,3 @@ config AIC7XXX_REG_PRETTY_PRINT
contents in diagnostics. This make it much easier to understand debug contents in diagnostics. This make it much easier to understand debug
output without having to refer to a data book and/or the aic7xxx.reg output without having to refer to a data book and/or the aic7xxx.reg
file. file.
config SCSI_AIC79XX
tristate "Adaptec AIC79xx U320 support"
help
This driver supports all of Adaptec's Ultra 320 PCI-X
based SCSI controllers.
# #
# Makefile for the Linux aic7xxx SCSI driver. # Makefile for the Linux aic7xxx SCSI driver.
# #
# Let kbuild descend into aicasm when cleaning # $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Makefile#2 $
#
# $Id: //depot/linux-aic79xx-2.5.0/drivers/scsi/aic7xxx/Makefile#1 $
# #
# Let kbuild descend into aicasm when cleaning
subdir- += aicasm subdir- += aicasm
obj-$(CONFIG_SCSI_AIC7XXX) += aic7xxx.o obj-$(CONFIG_SCSI_AIC7XXX) += aic7xxx.o
ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_SCSI_AIC79XX) += aic79xx.o obj-$(CONFIG_SCSI_AIC79XX) += aic79xx.o
endif
# Core files # Core Fast -> U160 files
aic7xxx-objs += aic7xxx_core.o aic7xxx_93cx6.o aic7770.o aic7xxx-y += aic7xxx_core.o \
aic7xxx_93cx6.o \
aic7770.o
aic7xxx-$(CONFIG_PCI) += aic7xxx_pci.o
aic7xxx-$(CONFIG_AIC7XXX_REG_PRETTY_PRINT) += aic7xxx_reg_print.o
# Platform Specific Files # Platform Specific Fast -> U160 Files
aic7xxx-objs += aic7xxx_osm.o aic7xxx_proc.o aic7770_osm.o aic7xxx-y += aic7xxx_osm.o \
ifeq ($(CONFIG_AIC7XXX_REG_PRETTY_PRINT),y) aic7xxx_proc.o \
aic7xxx-objs += aic7xxx_reg_print.o aic7770_osm.o
endif aic7xxx-$(CONFIG_PCI) += aic7xxx_osm_pci.o
# PCI Specific Files # Core U320 files
ifeq ($(CONFIG_PCI),y) aic79xx-y += aic79xx_core.o \
# Core PCI files aic79xx_pci.o
aic7xxx-objs += aic7xxx_pci.o aic79xx-$(CONFIG_AIC79XX_REG_PRETTY_PRINT) += aic79xx_reg_print.o
# Platform Specific PCI Files
aic7xxx-objs += aic7xxx_osm_pci.o
endif
# Platform Specific U320 Files # Platform Specific U320 Files
aic79xx-objs = aic79xx_osm.o aic79xx_proc.o aic79xx_osm_pci.o aic79xx-y += aic79xx_osm.o \
# Core Files aic79xx_proc.o \
aic79xx-objs += aic79xx_core.o aic79xx_pci.o aic79xx_osm_pci.o
ifeq ($(CONFIG_AIC79XX_REG_PRETTY_PRINT),y)
aic79xx-objs += aic79xx_reg_print.o
endif
EXTRA_CFLAGS += -I$(src)/.. EXTRA_CFLAGS += -Idrivers/scsi
#EXTRA_CFLAGS += -g #EXTRA_CFLAGS += -g
# Files generated that shall be removed upon make clean # Files generated that shall be removed upon make clean
...@@ -49,8 +45,8 @@ clean-files += aic79xx_seq.h aic79xx_reg.h aic79xx_reg_print.c ...@@ -49,8 +45,8 @@ clean-files += aic79xx_seq.h aic79xx_reg.h aic79xx_reg_print.c
$(obj)/aic7xxx_core.o: $(obj)/aic7xxx_seq.h $(obj)/aic7xxx_core.o: $(obj)/aic7xxx_seq.h
$(obj)/aic79xx_core.o: $(obj)/aic79xx_seq.h $(obj)/aic79xx_core.o: $(obj)/aic79xx_seq.h
$(addprefix $(obj)/,$(aic7xxx-objs)): $(obj)/aic7xxx_reg.h $(addprefix $(obj)/,$(aic7xxx-y)): $(obj)/aic7xxx_reg.h
$(addprefix $(obj)/,$(aic79xx-objs)): $(obj)/aic79xx_reg.h $(addprefix $(obj)/,$(aic79xx-y)): $(obj)/aic79xx_reg.h
ifeq ($(CONFIG_AIC7XXX_BUILD_FIRMWARE),y) ifeq ($(CONFIG_AIC7XXX_BUILD_FIRMWARE),y)
aic7xxx_gen = $(obj)/aic7xxx_seq.h $(obj)/aic7xxx_reg.h aic7xxx_gen = $(obj)/aic7xxx_seq.h $(obj)/aic7xxx_reg.h
......
/* /*
* Adaptec AIC79xx device driver for Linux. * Adaptec AIC79xx device driver for Linux.
* *
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#92 $ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#93 $
* *
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Copyright (c) 1994-2000 Justin T. Gibbs. * Copyright (c) 1994-2000 Justin T. Gibbs.
...@@ -801,7 +801,6 @@ static int ahd_linux_release(struct Scsi_Host *); ...@@ -801,7 +801,6 @@ static int ahd_linux_release(struct Scsi_Host *);
static const char *ahd_linux_info(struct Scsi_Host *); static const char *ahd_linux_info(struct Scsi_Host *);
static int ahd_linux_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *)); static int ahd_linux_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *));
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
static int ahd_linux_slave_alloc(Scsi_Device *);
static int ahd_linux_slave_configure(Scsi_Device *); static int ahd_linux_slave_configure(Scsi_Device *);
static void ahd_linux_slave_destroy(Scsi_Device *); static void ahd_linux_slave_destroy(Scsi_Device *);
static int ahd_linux_biosparam(struct scsi_device*, static int ahd_linux_biosparam(struct scsi_device*,
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES. * POSSIBILITY OF SUCH DAMAGES.
* *
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#88 $ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#90 $
* *
*/ */
#ifndef _AIC79XX_LINUX_H_ #ifndef _AIC79XX_LINUX_H_
...@@ -141,7 +141,7 @@ typedef Scsi_Cmnd *ahd_io_ctx_t; ...@@ -141,7 +141,7 @@ typedef Scsi_Cmnd *ahd_io_ctx_t;
/************************* Configuration Data *********************************/ /************************* Configuration Data *********************************/
extern int aic79xx_allow_memio; extern int aic79xx_allow_memio;
extern int aic79xx_detect_complete; extern int aic79xx_detect_complete;
extern Scsi_Host_Template* aic79xx_driver_template; extern Scsi_Host_Template aic79xx_driver_template;
/***************************** Bus Space/DMA **********************************/ /***************************** Bus Space/DMA **********************************/
...@@ -246,10 +246,6 @@ int ahd_dmamap_unload(struct ahd_softc *, bus_dma_tag_t, bus_dmamap_t); ...@@ -246,10 +246,6 @@ int ahd_dmamap_unload(struct ahd_softc *, bus_dma_tag_t, bus_dmamap_t);
typedef struct timer_list ahd_timer_t; typedef struct timer_list ahd_timer_t;
/********************************** Includes **********************************/ /********************************** Includes **********************************/
/* Host template and function declarations referenced by the template. */
#include "aic79xx_host.h"
/* Core driver definitions */
#if CONFIG_AIC79XX_REG_PRETTY_PRINT #if CONFIG_AIC79XX_REG_PRETTY_PRINT
#define AIC_DEBUG_REGISTERS 1 #define AIC_DEBUG_REGISTERS 1
#else #else
...@@ -1052,6 +1048,9 @@ ahd_flush_device_writes(struct ahd_softc *ahd) ...@@ -1052,6 +1048,9 @@ ahd_flush_device_writes(struct ahd_softc *ahd)
#define ahd_pci_set_dma_mask(dev_softc, mask) \ #define ahd_pci_set_dma_mask(dev_softc, mask) \
(((dev_softc)->dma_mask = mask) && 0) (((dev_softc)->dma_mask = mask) && 0)
#endif #endif
/**************************** Proc FS Support *********************************/
int ahd_linux_proc_info(char *, char **, off_t, int, int, int);
/*************************** Domain Validation ********************************/ /*************************** Domain Validation ********************************/
#define AHD_DV_CMD(cmd) ((cmd)->scsi_done == ahd_linux_dv_complete) #define AHD_DV_CMD(cmd) ((cmd)->scsi_done == ahd_linux_dv_complete)
#define AHD_DV_SIMQ_FROZEN(ahd) \ #define AHD_DV_SIMQ_FROZEN(ahd) \
......
/* /*
* Adaptec AIC7xxx device driver for Linux. * Adaptec AIC7xxx device driver for Linux.
* *
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#160 $ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#161 $
* *
* Copyright (c) 1994 John Aycock * Copyright (c) 1994 John Aycock
* The University of Calgary Department of Computer Science. * The University of Calgary Department of Computer Science.
...@@ -812,7 +812,6 @@ static int ahc_linux_release(struct Scsi_Host *); ...@@ -812,7 +812,6 @@ static int ahc_linux_release(struct Scsi_Host *);
static int ahc_linux_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *)); static int ahc_linux_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *));
static const char *ahc_linux_info(struct Scsi_Host *); static const char *ahc_linux_info(struct Scsi_Host *);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
static int ahc_linux_slave_alloc(Scsi_Device *);
static int ahc_linux_slave_configure(Scsi_Device *); static int ahc_linux_slave_configure(Scsi_Device *);
static void ahc_linux_slave_destroy(Scsi_Device *); static void ahc_linux_slave_destroy(Scsi_Device *);
static int ahd_linux_biosparam(struct scsi_device*, static int ahd_linux_biosparam(struct scsi_device*,
......
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
* along with this program; see the file COPYING. If not, write to * along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* *
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#108 $
*
* Copyright (c) 2000-2001 Adaptec Inc. * Copyright (c) 2000-2001 Adaptec Inc.
* All rights reserved. * All rights reserved.
* *
...@@ -55,7 +53,7 @@ ...@@ -55,7 +53,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES. * POSSIBILITY OF SUCH DAMAGES.
* *
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#108 $ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#109 $
* *
*/ */
#ifndef _AIC7XXX_LINUX_H_ #ifndef _AIC7XXX_LINUX_H_
...@@ -156,7 +154,7 @@ typedef Scsi_Cmnd *ahc_io_ctx_t; ...@@ -156,7 +154,7 @@ typedef Scsi_Cmnd *ahc_io_ctx_t;
extern int aic7xxx_no_probe; extern int aic7xxx_no_probe;
extern int aic7xxx_allow_memio; extern int aic7xxx_allow_memio;
extern int aic7xxx_detect_complete; extern int aic7xxx_detect_complete;
extern Scsi_Host_Template* aic7xxx_driver_template; extern Scsi_Host_Template aic7xxx_driver_template;
/***************************** Bus Space/DMA **********************************/ /***************************** Bus Space/DMA **********************************/
...@@ -261,10 +259,6 @@ int ahc_dmamap_unload(struct ahc_softc *, bus_dma_tag_t, bus_dmamap_t); ...@@ -261,10 +259,6 @@ int ahc_dmamap_unload(struct ahc_softc *, bus_dma_tag_t, bus_dmamap_t);
typedef struct timer_list ahc_timer_t; typedef struct timer_list ahc_timer_t;
/********************************** Includes **********************************/ /********************************** Includes **********************************/
/* Host template and function declarations referenced by the template. */
#include "aic7xxx_host.h"
/* Core driver definitions */
#if CONFIG_AIC7XXX_REG_PRETTY_PRINT #if CONFIG_AIC7XXX_REG_PRETTY_PRINT
#define AIC_DEBUG_REGISTERS 1 #define AIC_DEBUG_REGISTERS 1
#else #else
...@@ -1020,6 +1014,9 @@ ahc_flush_device_writes(struct ahc_softc *ahc) ...@@ -1020,6 +1014,9 @@ ahc_flush_device_writes(struct ahc_softc *ahc)
#define ahc_pci_set_dma_mask(dev_softc, mask) \ #define ahc_pci_set_dma_mask(dev_softc, mask) \
(((dev_softc)->dma_mask = mask) && 0) (((dev_softc)->dma_mask = mask) && 0)
#endif #endif
/**************************** Proc FS Support *********************************/
int ahc_linux_proc_info(char *, char **, off_t, int, int, int);
/*************************** Domain Validation ********************************/ /*************************** Domain Validation ********************************/
#define AHC_DV_CMD(cmd) ((cmd)->scsi_done == ahc_linux_dv_complete) #define AHC_DV_CMD(cmd) ((cmd)->scsi_done == ahc_linux_dv_complete)
#define AHC_DV_SIMQ_FROZEN(ahc) \ #define AHC_DV_SIMQ_FROZEN(ahc) \
......
...@@ -825,6 +825,25 @@ typedef enum { ...@@ -825,6 +825,25 @@ typedef enum {
extern const char *scsi_sense_key_text[]; extern const char *scsi_sense_key_text[];
/************************* Large Disk Handling ********************************/
static __inline int aic_sector_div(u_long capacity, int heads, int sectors);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
static __inline int
aic_sector_div(u_long capacity, int heads, int sectors)
{
return (capacity / (heads * sectors));
}
#else
static __inline int
aic_sector_div(sector_t capacity, int heads, int sectors)
{
/* ugly, ugly sector_div calling convention.. */
sector_div(capacity, (heads * sectors));
return (int)capacity;
}
#endif
/**************************** Module Library Hack *****************************/ /**************************** Module Library Hack *****************************/
/* /*
* What we'd like to do is have a single "scsi library" module that both the * What we'd like to do is have a single "scsi library" module that both the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment