diff options
author | Jack Hammer <jack_hammer@adaptec.com> | 2005-11-03 09:46:00 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-11-06 13:33:12 -0500 |
commit | a60768e2d43eb30a1adb8a119aeac35dc0d03ef6 (patch) | |
tree | e0864714d02523700878cadcca263a19ad57667d | |
parent | b1081ea6f000dee6dba288f9fab9df902802b25b (diff) |
[SCSI] ips: remove "Version Matching"
IBM has finally agreed that the "Version Matching" between firmware and
drivers ( and the resulting warning messages ) is no longer necessary.
This patch will remove those functions from the ServeRAID driver.
Signed-off-by: Jack Hammer <jack_hammer@adaptec.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r-- | drivers/scsi/ips.c | 138 |
1 files changed, 3 insertions, 135 deletions
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c index 68e5b2ab27c4..d0c51a2d40ba 100644 --- a/drivers/scsi/ips.c +++ b/drivers/scsi/ips.c | |||
@@ -139,6 +139,7 @@ | |||
139 | /* - Remove 3 unused "inline" functions */ | 139 | /* - Remove 3 unused "inline" functions */ |
140 | /* 7.12.xx - Use STATIC functions whereever possible */ | 140 | /* 7.12.xx - Use STATIC functions whereever possible */ |
141 | /* - Clean up deprecated MODULE_PARM calls */ | 141 | /* - Clean up deprecated MODULE_PARM calls */ |
142 | /* 7.12.05 - Remove Version Matching per IBM request */ | ||
142 | /*****************************************************************************/ | 143 | /*****************************************************************************/ |
143 | 144 | ||
144 | /* | 145 | /* |
@@ -210,7 +211,7 @@ module_param(ips, charp, 0); | |||
210 | * DRIVER_VER | 211 | * DRIVER_VER |
211 | */ | 212 | */ |
212 | #define IPS_VERSION_HIGH "7.12" | 213 | #define IPS_VERSION_HIGH "7.12" |
213 | #define IPS_VERSION_LOW ".02 " | 214 | #define IPS_VERSION_LOW ".05 " |
214 | 215 | ||
215 | #if !defined(__i386__) && !defined(__ia64__) && !defined(__x86_64__) | 216 | #if !defined(__i386__) && !defined(__ia64__) && !defined(__x86_64__) |
216 | #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" | 217 | #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" |
@@ -347,8 +348,6 @@ static int ips_proc_info(struct Scsi_Host *, char *, char **, off_t, int, int); | |||
347 | static int ips_host_info(ips_ha_t *, char *, off_t, int); | 348 | static int ips_host_info(ips_ha_t *, char *, off_t, int); |
348 | static void copy_mem_info(IPS_INFOSTR *, char *, int); | 349 | static void copy_mem_info(IPS_INFOSTR *, char *, int); |
349 | static int copy_info(IPS_INFOSTR *, char *, ...); | 350 | static int copy_info(IPS_INFOSTR *, char *, ...); |
350 | static int ips_get_version_info(ips_ha_t * ha, dma_addr_t, int intr); | ||
351 | static void ips_version_check(ips_ha_t * ha, int intr); | ||
352 | static int ips_abort_init(ips_ha_t * ha, int index); | 351 | static int ips_abort_init(ips_ha_t * ha, int index); |
353 | static int ips_init_phase2(int index); | 352 | static int ips_init_phase2(int index); |
354 | 353 | ||
@@ -406,8 +405,6 @@ static Scsi_Host_Template ips_driver_template = { | |||
406 | #endif | 405 | #endif |
407 | }; | 406 | }; |
408 | 407 | ||
409 | static IPS_DEFINE_COMPAT_TABLE( Compatable ); /* Version Compatability Table */ | ||
410 | |||
411 | 408 | ||
412 | /* This table describes all ServeRAID Adapters */ | 409 | /* This table describes all ServeRAID Adapters */ |
413 | static struct pci_device_id ips_pci_table[] = { | 410 | static struct pci_device_id ips_pci_table[] = { |
@@ -5936,7 +5933,7 @@ ips_write_driver_status(ips_ha_t * ha, int intr) | |||
5936 | strncpy((char *) ha->nvram->bios_high, ha->bios_version, 4); | 5933 | strncpy((char *) ha->nvram->bios_high, ha->bios_version, 4); |
5937 | strncpy((char *) ha->nvram->bios_low, ha->bios_version + 4, 4); | 5934 | strncpy((char *) ha->nvram->bios_low, ha->bios_version + 4, 4); |
5938 | 5935 | ||
5939 | ips_version_check(ha, intr); /* Check BIOS/FW/Driver Versions */ | 5936 | ha->nvram->versioning = 0; /* Indicate the Driver Does Not Support Versioning */ |
5940 | 5937 | ||
5941 | /* now update the page */ | 5938 | /* now update the page */ |
5942 | if (!ips_readwrite_page5(ha, TRUE, intr)) { | 5939 | if (!ips_readwrite_page5(ha, TRUE, intr)) { |
@@ -6853,135 +6850,6 @@ ips_verify_bios_memio(ips_ha_t * ha, char *buffer, uint32_t buffersize, | |||
6853 | return (0); | 6850 | return (0); |
6854 | } | 6851 | } |
6855 | 6852 | ||
6856 | /*---------------------------------------------------------------------------*/ | ||
6857 | /* Routine Name: ips_version_check */ | ||
6858 | /* */ | ||
6859 | /* Dependencies: */ | ||
6860 | /* Assumes that ips_read_adapter_status() is called first filling in */ | ||
6861 | /* the data for SubSystem Parameters. */ | ||
6862 | /* Called from ips_write_driver_status() so it also assumes NVRAM Page 5 */ | ||
6863 | /* Data is available. */ | ||
6864 | /* */ | ||
6865 | /*---------------------------------------------------------------------------*/ | ||
6866 | static void | ||
6867 | ips_version_check(ips_ha_t * ha, int intr) | ||
6868 | { | ||
6869 | IPS_VERSION_DATA *VersionInfo; | ||
6870 | uint8_t FirmwareVersion[IPS_COMPAT_ID_LENGTH + 1]; | ||
6871 | uint8_t BiosVersion[IPS_COMPAT_ID_LENGTH + 1]; | ||
6872 | int MatchError; | ||
6873 | int rc; | ||
6874 | char BiosString[10]; | ||
6875 | char FirmwareString[10]; | ||
6876 | |||
6877 | METHOD_TRACE("ips_version_check", 1); | ||
6878 | |||
6879 | VersionInfo = ( IPS_VERSION_DATA * ) ha->ioctl_data; | ||
6880 | |||
6881 | memset(FirmwareVersion, 0, IPS_COMPAT_ID_LENGTH + 1); | ||
6882 | memset(BiosVersion, 0, IPS_COMPAT_ID_LENGTH + 1); | ||
6883 | |||
6884 | /* Get the Compatible BIOS Version from NVRAM Page 5 */ | ||
6885 | memcpy(BiosVersion, ha->nvram->BiosCompatibilityID, | ||
6886 | IPS_COMPAT_ID_LENGTH); | ||
6887 | |||
6888 | rc = IPS_FAILURE; | ||
6889 | if (ha->subsys->param[4] & IPS_GET_VERSION_SUPPORT) { /* If Versioning is Supported */ | ||
6890 | /* Get the Version Info with a Get Version Command */ | ||
6891 | memset( VersionInfo, 0, sizeof (IPS_VERSION_DATA)); | ||
6892 | rc = ips_get_version_info(ha, ha->ioctl_busaddr, intr); | ||
6893 | if (rc == IPS_SUCCESS) | ||
6894 | memcpy(FirmwareVersion, VersionInfo->compatibilityId, | ||
6895 | IPS_COMPAT_ID_LENGTH); | ||
6896 | } | ||
6897 | |||
6898 | if (rc != IPS_SUCCESS) { /* If Data Not Obtainable from a GetVersion Command */ | ||
6899 | /* Get the Firmware Version from Enquiry Data */ | ||
6900 | memcpy(FirmwareVersion, ha->enq->CodeBlkVersion, | ||
6901 | IPS_COMPAT_ID_LENGTH); | ||
6902 | } | ||
6903 | |||
6904 | /* printk(KERN_WARNING "Adapter's BIOS Version = %s\n", BiosVersion); */ | ||
6905 | /* printk(KERN_WARNING "BIOS Compatible Version = %s\n", IPS_COMPAT_BIOS); */ | ||
6906 | /* printk(KERN_WARNING "Adapter's Firmware Version = %s\n", FirmwareVersion); */ | ||
6907 | /* printk(KERN_WARNING "Firmware Compatible Version = %s \n", Compatable[ ha->nvram->adapter_type ]); */ | ||
6908 | |||
6909 | MatchError = 0; | ||
6910 | |||
6911 | if (strncmp | ||
6912 | (FirmwareVersion, Compatable[ha->nvram->adapter_type], | ||
6913 | IPS_COMPAT_ID_LENGTH) != 0) | ||
6914 | MatchError = 1; | ||
6915 | |||
6916 | if (strncmp(BiosVersion, IPS_COMPAT_BIOS, IPS_COMPAT_ID_LENGTH) != 0) | ||
6917 | MatchError = 1; | ||
6918 | |||
6919 | ha->nvram->versioning = 1; /* Indicate the Driver Supports Versioning */ | ||
6920 | |||
6921 | if (MatchError) { | ||
6922 | ha->nvram->version_mismatch = 1; | ||
6923 | if (ips_cd_boot == 0) { | ||
6924 | strncpy(&BiosString[0], ha->nvram->bios_high, 4); | ||
6925 | strncpy(&BiosString[4], ha->nvram->bios_low, 4); | ||
6926 | BiosString[8] = 0; | ||
6927 | |||
6928 | strncpy(&FirmwareString[0], ha->enq->CodeBlkVersion, 8); | ||
6929 | FirmwareString[8] = 0; | ||
6930 | |||
6931 | IPS_PRINTK(KERN_WARNING, ha->pcidev, | ||
6932 | "Warning ! ! ! ServeRAID Version Mismatch\n"); | ||
6933 | IPS_PRINTK(KERN_WARNING, ha->pcidev, | ||
6934 | "Bios = %s, Firmware = %s, Device Driver = %s%s\n", | ||
6935 | BiosString, FirmwareString, IPS_VERSION_HIGH, | ||
6936 | IPS_VERSION_LOW); | ||
6937 | IPS_PRINTK(KERN_WARNING, ha->pcidev, | ||
6938 | "These levels should match to avoid possible compatibility problems.\n"); | ||
6939 | } | ||
6940 | } else { | ||
6941 | ha->nvram->version_mismatch = 0; | ||
6942 | } | ||
6943 | |||
6944 | return; | ||
6945 | } | ||
6946 | |||
6947 | /*---------------------------------------------------------------------------*/ | ||
6948 | /* Routine Name: ips_get_version_info */ | ||
6949 | /* */ | ||
6950 | /* Routine Description: */ | ||
6951 | /* Issue an internal GETVERSION Command */ | ||
6952 | /* */ | ||
6953 | /* Return Value: */ | ||
6954 | /* 0 if Successful, else non-zero */ | ||
6955 | /*---------------------------------------------------------------------------*/ | ||
6956 | static int | ||
6957 | ips_get_version_info(ips_ha_t * ha, dma_addr_t Buffer, int intr) | ||
6958 | { | ||
6959 | ips_scb_t *scb; | ||
6960 | int rc; | ||
6961 | |||
6962 | METHOD_TRACE("ips_get_version_info", 1); | ||
6963 | |||
6964 | scb = &ha->scbs[ha->max_cmds - 1]; | ||
6965 | |||
6966 | ips_init_scb(ha, scb); | ||
6967 | |||
6968 | scb->timeout = ips_cmd_timeout; | ||
6969 | scb->cdb[0] = IPS_CMD_GET_VERSION_INFO; | ||
6970 | scb->cmd.version_info.op_code = IPS_CMD_GET_VERSION_INFO; | ||
6971 | scb->cmd.version_info.command_id = IPS_COMMAND_ID(ha, scb); | ||
6972 | scb->cmd.version_info.reserved = 0; | ||
6973 | scb->cmd.version_info.count = sizeof (IPS_VERSION_DATA); | ||
6974 | scb->cmd.version_info.reserved2 = 0; | ||
6975 | scb->data_len = sizeof (IPS_VERSION_DATA); | ||
6976 | scb->data_busaddr = Buffer; | ||
6977 | scb->cmd.version_info.buffer_addr = Buffer; | ||
6978 | scb->flags = 0; | ||
6979 | |||
6980 | /* issue command */ | ||
6981 | rc = ips_send_wait(ha, scb, ips_cmd_timeout, intr); | ||
6982 | return (rc); | ||
6983 | } | ||
6984 | |||
6985 | /****************************************************************************/ | 6853 | /****************************************************************************/ |
6986 | /* */ | 6854 | /* */ |
6987 | /* Routine Name: ips_abort_init */ | 6855 | /* Routine Name: ips_abort_init */ |