Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 391e2f25 authored by Khalid Aziz's avatar Khalid Aziz Committed by James Bottomley
Browse files

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



[jejb: fix up pointer to int cast warning]
Signed-off-by: default avatarKhalid Aziz <khalid.aziz@oracle.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 839cb99e
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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 */
};

@@ -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;
+282 −337

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -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