Browse Source

[SCSI] BusLogic: Port driver to 64-bit.

[jejb: fix up pointer to int cast warning]
Signed-off-by: Khalid Aziz <khalid.aziz@oracle.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Khalid Aziz 12 years ago
parent
commit
391e2f2560
4 changed files with 233 additions and 254 deletions
  1. 5 6
      drivers/scsi/BusLogic.c
  2. 23 20
      drivers/scsi/BusLogic.h
  3. 204 227
      drivers/scsi/FlashPoint.c
  4. 1 1
      drivers/scsi/Kconfig

+ 5 - 6
drivers/scsi/BusLogic.c

@@ -1208,7 +1208,7 @@ static bool blogic_hwreset(struct blogic_adapter *adapter, bool hard_reset)
 		fpinfo->report_underrun = true;
 		adapter->cardhandle =
 			FlashPoint_HardwareResetHostAdapter(fpinfo);
-		if (adapter->cardhandle == FPOINT_BADCARD_HANDLE)
+		if (adapter->cardhandle == (void *)FPOINT_BADCARD_HANDLE)
 			return false;
 		/*
 		   Indicate the Host Adapter Hard Reset completed successfully.
@@ -2372,8 +2372,7 @@ static int __init blogic_init(void)
 		return -ENOMEM;
 	}
 
-	adapter =
-	    kzalloc(sizeof(struct blogic_adapter), GFP_KERNEL);
+	adapter = kzalloc(sizeof(struct blogic_adapter), GFP_KERNEL);
 	if (adapter == NULL) {
 		kfree(blogic_probeinfo_list);
 		blogic_err("BusLogic: Unable to allocate Prototype Host Adapter\n", NULL);
@@ -3079,11 +3078,11 @@ static int blogic_qcmd_lck(struct scsi_cmnd *command,
 		ccb->opcode = BLOGIC_INITIATOR_CCB_SG;
 		ccb->datalen = count * sizeof(struct blogic_sg_seg);
 		if (blogic_multimaster_type(adapter))
-			ccb->data = (unsigned int) ccb->dma_handle +
+			ccb->data = (void *)((unsigned int) ccb->dma_handle +
 					((unsigned long) &ccb->sglist -
-					(unsigned long) ccb);
+					(unsigned long) ccb));
 		else
-			ccb->data = virt_to_32bit_virt(ccb->sglist);
+			ccb->data = ccb->sglist;
 
 		scsi_for_each_sg(command, sg, count, i) {
 			ccb->sglist[i].segbytes = sg_dma_len(sg);

+ 23 - 20
drivers/scsi/BusLogic.h

@@ -821,7 +821,7 @@ struct blogic_ccb {
 	unsigned char cdblen;				/* Byte 2 */
 	unsigned char sense_datalen;			/* Byte 3 */
 	u32 datalen;					/* Bytes 4-7 */
-	u32 data;					/* Bytes 8-11 */
+	void *data;					/* Bytes 8-11 */
 	unsigned char:8;				/* Byte 12 */
 	unsigned char:8;				/* Byte 13 */
 	enum blogic_adapter_status adapter_status;	/* Byte 14 */
@@ -833,7 +833,7 @@ struct blogic_ccb {
 	unsigned char cdb[BLOGIC_CDB_MAXLEN];		/* Bytes 18-29 */
 	unsigned char:8;				/* Byte 30 */
 	unsigned char:8;				/* Byte 31 */
-	unsigned int:32;				/* Bytes 32-35 */
+	u32 rsvd_int;					/* Bytes 32-35 */
 	u32 sensedata;					/* Bytes 36-39 */
 	/*
 	   FlashPoint SCCB Manager Defined Portion.
@@ -843,8 +843,11 @@ struct blogic_ccb {
 	enum blogic_cmplt_code comp_code;		/* Byte 48 */
 #ifdef CONFIG_SCSI_FLASHPOINT
 	unsigned char:8;				/* Byte 49 */
-	unsigned short os_flags;			/* Bytes 50-51 */
-	unsigned char private[48];			/* Bytes 52-99 */
+	u16 os_flags;					/* Bytes 50-51 */
+	unsigned char private[24];			/* Bytes 52-99 */
+	void *rsvd1;
+	void *rsvd2;
+	unsigned char private2[16];
 #endif
 	/*
 	   BusLogic Linux Driver Defined Portion.
@@ -867,7 +870,7 @@ struct blogic_ccb {
 
 struct blogic_outbox {
 	u32 ccb;			/* Bytes 0-3 */
-	unsigned int:24;		/* Bytes 4-6 */
+	u32:24;				/* Bytes 4-6 */
 	enum blogic_action action;	/* Byte 7 */
 };
 
@@ -876,11 +879,11 @@ struct blogic_outbox {
 */
 
 struct blogic_inbox {
-	u32 ccb;		/* Bytes 0-3 */
+	u32 ccb;					/* Bytes 0-3 */
 	enum blogic_adapter_status adapter_status;	/* Byte 4 */
-	enum blogic_tgt_status tgt_status;	/* Byte 5 */
-	unsigned char:8;	/* Byte 6 */
-	enum blogic_cmplt_code comp_code;	/* Byte 7 */
+	enum blogic_tgt_status tgt_status;		/* Byte 5 */
+	unsigned char:8;				/* Byte 6 */
+	enum blogic_cmplt_code comp_code;		/* Byte 7 */
 };
 
 
@@ -941,7 +944,7 @@ struct blogic_tgt_stats {
   Define the FlashPoint Card Handle data type.
 */
 
-#define FPOINT_BADCARD_HANDLE		0xFFFFFFFF
+#define FPOINT_BADCARD_HANDLE		0xFFFFFFFFL
 
 
 /*
@@ -955,12 +958,12 @@ struct fpoint_info {
 	unsigned char irq_ch;			/* Byte 5 */
 	unsigned char scsi_id;			/* Byte 6 */
 	unsigned char scsi_lun;			/* Byte 7 */
-	unsigned short fw_rev;			/* Bytes 8-9 */
-	unsigned short sync_ok;			/* Bytes 10-11 */
-	unsigned short fast_ok;			/* Bytes 12-13 */
-	unsigned short ultra_ok;		/* Bytes 14-15 */
-	unsigned short discon_ok;		/* Bytes 16-17 */
-	unsigned short wide_ok;			/* Bytes 18-19 */
+	u16 fw_rev;				/* Bytes 8-9 */
+	u16 sync_ok;				/* Bytes 10-11 */
+	u16 fast_ok;				/* Bytes 12-13 */
+	u16 ultra_ok;				/* Bytes 14-15 */
+	u16 discon_ok;				/* Bytes 16-17 */
+	u16 wide_ok;				/* Bytes 18-19 */
 	bool parity:1;				/* Byte 20 Bit 0 */
 	bool wide:1;				/* Byte 20 Bit 1 */
 	bool softreset:1;			/* Byte 20 Bit 2 */
@@ -976,10 +979,10 @@ struct fpoint_info {
 	unsigned char model[3];			/* Bytes 24-26 */
 	unsigned char relative_cardnum;		/* Byte 27 */
 	unsigned char rsvd[4];			/* Bytes 28-31 */
-	unsigned int os_rsvd;			/* Bytes 32-35 */
+	u32 os_rsvd;				/* Bytes 32-35 */
 	unsigned char translation_info[4];	/* Bytes 36-39 */
-	unsigned int rsvd2[5];			/* Bytes 40-59 */
-	unsigned int sec_range;			/* Bytes 60-63 */
+	u32 rsvd2[5];				/* Bytes 40-59 */
+	u32 sec_range;				/* Bytes 60-63 */
 };
 
 /*
@@ -1052,7 +1055,7 @@ struct blogic_adapter {
 	u32 bios_addr;
 	struct blogic_drvr_options *drvr_opts;
 	struct fpoint_info fpinfo;
-	unsigned int cardhandle;
+	void *cardhandle;
 	struct list_head host_list;
 	struct blogic_ccb *all_ccbs;
 	struct blogic_ccb *free_ccbs;

File diff suppressed because it is too large
+ 204 - 227
drivers/scsi/FlashPoint.c


+ 1 - 1
drivers/scsi/Kconfig

@@ -633,7 +633,7 @@ config SCSI_BUSLOGIC
 
 config SCSI_FLASHPOINT
 	bool "FlashPoint support"
-	depends on SCSI_BUSLOGIC && PCI && X86_32
+	depends on SCSI_BUSLOGIC && PCI
 	help
 	  This option allows you to add FlashPoint support to the
 	  BusLogic SCSI driver. The FlashPoint SCCB Manager code is

Some files were not shown because too many files changed in this diff