[SCSI] aacraid: driver version update
authorMark Haverkamp <markh@osdl.org>
Wed, 3 Aug 2005 22:38:55 +0000 (15:38 -0700)
committerJames Bottomley <jejb@mulgrave.(none)>
Fri, 5 Aug 2005 21:50:26 +0000 (16:50 -0500)
Received from Mark Salyzyn from Adaptec.

Fixes a bug in check_revision.  It should return the driver version not
the firmware version.
Update driver version number.
Update driver version string.

Signed-off-by: Mark Haverkamp <markh@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/aacraid/aacraid.h
drivers/scsi/aacraid/commctrl.c
drivers/scsi/aacraid/linit.c

index 3a11a53..ddbbb85 100644 (file)
@@ -1512,11 +1512,12 @@ struct fib_ioctl
 
 struct revision
 {
-       u32 compat;
-       u32 version;
-       u32 build;
+       __le32 compat;
+       __le32 version;
+       __le32 build;
 };
        
+
 /*
  *     Ugly - non Linux like ioctl coding for back compat.
  */
@@ -1737,3 +1738,4 @@ int aac_get_adapter_info(struct aac_dev* dev);
 int aac_send_shutdown(struct aac_dev *dev);
 extern int numacb;
 extern int acbsize;
+extern char aac_driver_version[];
index 8538709..8fceff9 100644 (file)
@@ -405,10 +405,20 @@ static int close_getadapter_fib(struct aac_dev * dev, void __user *arg)
 static int check_revision(struct aac_dev *dev, void __user *arg)
 {
        struct revision response;
-
-       response.compat = 1;
-       response.version = le32_to_cpu(dev->adapter_info.kernelrev);
-       response.build = le32_to_cpu(dev->adapter_info.kernelbuild);
+       char *driver_version = aac_driver_version;
+       u32 version;
+
+       response.compat = cpu_to_le32(1);
+       version = (simple_strtol(driver_version, 
+                               &driver_version, 10) << 24) | 0x00000400;
+       version += simple_strtol(driver_version + 1, &driver_version, 10) << 16;
+       version += simple_strtol(driver_version + 1, NULL, 10);
+       response.version = cpu_to_le32(version);
+#      if (defined(AAC_DRIVER_BUILD))
+               response.build = cpu_to_le32(AAC_DRIVER_BUILD);
+#      else
+               response.build = cpu_to_le32(9999);
+#      endif
 
        if (copy_to_user(arg, &response, sizeof(response)))
                return -EFAULT;
index c1a4f97..b6dda99 100644 (file)
  * Abstract: Linux Driver entry module for Adaptec RAID Array Controller
  */
 
-#define AAC_DRIVER_VERSION             "1.1.2-lk2"
-#define AAC_DRIVER_BUILD_DATE          __DATE__
+#define AAC_DRIVER_VERSION             "1.1-4"
+#ifndef AAC_DRIVER_BRANCH
+#define AAC_DRIVER_BRANCH              ""
+#endif
+#define AAC_DRIVER_BUILD_DATE          __DATE__ " " __TIME__
 #define AAC_DRIVERNAME                 "aacraid"
 
 #include <linux/compat.h>
 
 #include "aacraid.h"
 
+#ifdef AAC_DRIVER_BUILD
+#define _str(x) #x
+#define str(x) _str(x)
+#define AAC_DRIVER_FULL_VERSION        AAC_DRIVER_VERSION "[" str(AAC_DRIVER_BUILD) "]" AAC_DRIVER_BRANCH
+#else
+#define AAC_DRIVER_FULL_VERSION        AAC_DRIVER_VERSION AAC_DRIVER_BRANCH " " AAC_DRIVER_BUILD_DATE
+#endif
 
 MODULE_AUTHOR("Red Hat Inc and Adaptec");
 MODULE_DESCRIPTION("Dell PERC2, 2/Si, 3/Si, 3/Di, "
                   "Adaptec Advanced Raid Products, "
                   "and HP NetRAID-4M SCSI driver");
 MODULE_LICENSE("GPL");
-MODULE_VERSION(AAC_DRIVER_VERSION);
+MODULE_VERSION(AAC_DRIVER_FULL_VERSION);
 
 static LIST_HEAD(aac_devices);
 static int aac_cfg_major = -1;
+char aac_driver_version[] = AAC_DRIVER_FULL_VERSION;
 
 /*
  * Because of the way Linux names scsi devices, the order in this table has
@@ -896,8 +907,8 @@ static int __init aac_init(void)
 {
        int error;
        
-       printk(KERN_INFO "Red Hat/Adaptec aacraid driver (%s %s)\n",
-                       AAC_DRIVER_VERSION, AAC_DRIVER_BUILD_DATE);
+       printk(KERN_INFO "Adaptec %s driver (%s)\n",
+         AAC_DRIVERNAME, aac_driver_version);
 
        error = pci_module_init(&aac_pci_driver);
        if (error)