Commit 00a442fa authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] u14-34f update from maintainer

parent 2d407c8b
/* /*
* u14-34f.c - Low-level driver for UltraStor 14F/34F SCSI host adapters. * u14-34f.c - Low-level driver for UltraStor 14F/34F SCSI host adapters.
* *
* 10 Oct 2002 Rev. 7.70 for linux 2.5.42
* + Foreport from revision 6.70.
*
* 25 Jun 2002 Rev. 6.70 for linux 2.4.19
* + Fixed endian-ness problem due to bitfields.
*
* 21 Feb 2002 Rev. 6.52 for linux 2.4.18
* + Backport from rev. 7.22 (use io_request_lock).
*
* 20 Feb 2002 Rev. 7.22 for linux 2.5.5 * 20 Feb 2002 Rev. 7.22 for linux 2.5.5
* + Remove any reference to virt_to_bus(). * + Remove any reference to virt_to_bus().
* + Fix pio hang while detecting multiple HBAs. * + Fix pio hang while detecting multiple HBAs.
...@@ -393,6 +402,10 @@ MODULE_AUTHOR("Dario Ballabio"); ...@@ -393,6 +402,10 @@ MODULE_AUTHOR("Dario Ballabio");
#include <linux/ctype.h> #include <linux/ctype.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#if !defined(__BIG_ENDIAN_BITFIELD) && !defined(__LITTLE_ENDIAN_BITFIELD)
#error "Adjust your <asm/byteorder.h> defines"
#endif
/* Values for the PRODUCT_ID ports for the 14/34F */ /* Values for the PRODUCT_ID ports for the 14/34F */
#define PRODUCT_ID1 0x56 #define PRODUCT_ID1 0x56
#define PRODUCT_ID2 0x40 /* NOTE: Only upper nibble is used */ #define PRODUCT_ID2 0x40 /* NOTE: Only upper nibble is used */
...@@ -459,7 +472,7 @@ MODULE_AUTHOR("Dario Ballabio"); ...@@ -459,7 +472,7 @@ MODULE_AUTHOR("Dario Ballabio");
#define REG_CONFIG2 7 #define REG_CONFIG2 7
#define REG_OGM 8 #define REG_OGM 8
#define REG_ICM 12 #define REG_ICM 12
#define REGION_SIZE 13 #define REGION_SIZE 13UL
#define BSY_ASSERTED 0x01 #define BSY_ASSERTED 0x01
#define IRQ_ASSERTED 0x01 #define IRQ_ASSERTED 0x01
#define CMD_RESET 0xc0 #define CMD_RESET 0xc0
...@@ -481,14 +494,21 @@ struct sg_list { ...@@ -481,14 +494,21 @@ struct sg_list {
/* MailBox SCSI Command Packet */ /* MailBox SCSI Command Packet */
struct mscp { struct mscp {
unsigned char opcode: 3; /* type of command */
unsigned char xdir: 2; /* data transfer direction */ #if defined(__BIG_ENDIAN_BITFIELD)
unsigned char dcn: 1; /* disable disconnect */ unsigned char sg:1, ca:1, dcn:1, xdir:2, opcode:3;
unsigned char ca: 1; /* use cache (if available) */ unsigned char lun: 3, channel:2, target:3;
unsigned char sg: 1; /* scatter/gather operation */ #else
unsigned char target: 3; /* SCSI target id */ unsigned char opcode: 3, /* type of command */
unsigned char channel: 2; /* SCSI channel number */ xdir: 2, /* data transfer direction */
unsigned char lun: 3; /* SCSI logical unit number */ dcn: 1, /* disable disconnect */
ca: 1, /* use cache (if available) */
sg: 1; /* scatter/gather operation */
unsigned char target: 3, /* SCSI target id */
channel: 2, /* SCSI channel number */
lun: 3; /* SCSI logical unit number */
#endif
unsigned int data_address PACKED; /* transfer data pointer */ unsigned int data_address PACKED; /* transfer data pointer */
unsigned int data_len PACKED; /* length in bytes */ unsigned int data_len PACKED; /* length in bytes */
unsigned int link_address PACKED; /* for linking command chains */ unsigned int link_address PACKED; /* for linking command chains */
...@@ -730,17 +750,27 @@ static inline int port_detect \ ...@@ -730,17 +750,27 @@ static inline int port_detect \
}; };
struct config_1 { struct config_1 {
unsigned char bios_segment: 3;
unsigned char removable_disks_as_fixed: 1; #if defined(__BIG_ENDIAN_BITFIELD)
unsigned char interrupt: 2; unsigned char dma_channel: 2, interrupt:2,
unsigned char dma_channel: 2; removable_disks_as_fixed:1, bios_segment: 3;
#else
unsigned char bios_segment: 3, removable_disks_as_fixed: 1,
interrupt: 2, dma_channel: 2;
#endif
} config_1; } config_1;
struct config_2 { struct config_2 {
unsigned char ha_scsi_id: 3;
unsigned char mapping_mode: 2; #if defined(__BIG_ENDIAN_BITFIELD)
unsigned char bios_drive_number: 1; unsigned char tfr_port: 2, bios_drive_number: 1,
unsigned char tfr_port: 2; mapping_mode: 2, ha_scsi_id: 3;
#else
unsigned char ha_scsi_id: 3, mapping_mode: 2,
bios_drive_number: 1, tfr_port: 2;
#endif
} config_2; } config_2;
char name[16]; char name[16];
......
...@@ -13,7 +13,7 @@ int u14_34f_abort(Scsi_Cmnd *); ...@@ -13,7 +13,7 @@ int u14_34f_abort(Scsi_Cmnd *);
int u14_34f_reset(Scsi_Cmnd *); int u14_34f_reset(Scsi_Cmnd *);
int u14_34f_biosparam(Disk *, struct block_device *, int *); int u14_34f_biosparam(Disk *, struct block_device *, int *);
#define U14_34F_VERSION "7.22.00" #define U14_34F_VERSION "7.70.00"
#define ULTRASTOR_14_34F { \ #define ULTRASTOR_14_34F { \
name: "UltraStor 14F/34F rev. " U14_34F_VERSION " ", \ name: "UltraStor 14F/34F rev. " U14_34F_VERSION " ", \
......
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