Loading drivers/scsi/hpsa.c +45 −45 Original line number Diff line number Diff line Loading @@ -126,8 +126,8 @@ static void cmd_free(struct ctlr_info *h, struct CommandList *c); static void cmd_special_free(struct ctlr_info *h, struct CommandList *c); static struct CommandList *cmd_alloc(struct ctlr_info *h); static struct CommandList *cmd_special_alloc(struct ctlr_info *h); static void fill_cmd(struct CommandList *c, __u8 cmd, struct ctlr_info *h, void *buff, size_t size, __u8 page_code, unsigned char *scsi3addr, static void fill_cmd(struct CommandList *c, u8 cmd, struct ctlr_info *h, void *buff, size_t size, u8 page_code, unsigned char *scsi3addr, int cmd_type); static int hpsa_scsi_queue_command(struct scsi_cmnd *cmd, Loading Loading @@ -912,7 +912,7 @@ static void hpsa_scsi_setup(struct ctlr_info *h) } static void complete_scsi_command(struct CommandList *cp, int timeout, __u32 tag) int timeout, u32 tag) { struct scsi_cmnd *cmd; struct ctlr_info *h; Loading Loading @@ -1160,7 +1160,7 @@ static void hpsa_map_one(struct pci_dev *pdev, size_t buflen, int data_direction) { __u64 addr64; u64 addr64; if (buflen == 0 || data_direction == PCI_DMA_NONE) { cp->Header.SGList = 0; Loading @@ -1168,14 +1168,14 @@ static void hpsa_map_one(struct pci_dev *pdev, return; } addr64 = (__u64) pci_map_single(pdev, buf, buflen, data_direction); addr64 = (u64) pci_map_single(pdev, buf, buflen, data_direction); cp->SG[0].Addr.lower = (__u32) (addr64 & (__u64) 0x00000000FFFFFFFF); (u32) (addr64 & (u64) 0x00000000FFFFFFFF); cp->SG[0].Addr.upper = (__u32) ((addr64 >> 32) & (__u64) 0x00000000FFFFFFFF); (u32) ((addr64 >> 32) & (u64) 0x00000000FFFFFFFF); cp->SG[0].Len = buflen; cp->Header.SGList = (__u8) 1; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (__u16) 1; /* total sgs in this cmd list */ cp->Header.SGList = (u8) 1; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (u16) 1; /* total sgs in this cmd list */ } static inline void hpsa_scsi_do_simple_cmd_core(struct ctlr_info *h, Loading Loading @@ -1485,11 +1485,11 @@ static int is_msa2xxx(struct ctlr_info *h, struct hpsa_scsi_dev_t *device) * in hpsa_find_target_lun, called by hpsa_scsi_add_entry.) */ static void figure_bus_target_lun(struct ctlr_info *h, __u8 *lunaddrbytes, int *bus, int *target, int *lun, u8 *lunaddrbytes, int *bus, int *target, int *lun, struct hpsa_scsi_dev_t *device) { __u32 lunid; u32 lunid; if (is_logical_dev_addr_mode(lunaddrbytes)) { /* logical device */ Loading Loading @@ -1529,7 +1529,7 @@ static void figure_bus_target_lun(struct ctlr_info *h, */ static int add_msa2xxx_enclosure_device(struct ctlr_info *h, struct hpsa_scsi_dev_t *tmpdevice, struct hpsa_scsi_dev_t *this_device, __u8 *lunaddrbytes, struct hpsa_scsi_dev_t *this_device, u8 *lunaddrbytes, int bus, int target, int lun, unsigned long lunzerobits[], int *nmsa2xxx_enclosures) { Loading Loading @@ -1576,8 +1576,8 @@ static int add_msa2xxx_enclosure_device(struct ctlr_info *h, */ static int hpsa_gather_lun_info(struct ctlr_info *h, int reportlunsize, struct ReportLUNdata *physdev, __u32 *nphysicals, struct ReportLUNdata *logdev, __u32 *nlogicals) struct ReportLUNdata *physdev, u32 *nphysicals, struct ReportLUNdata *logdev, u32 *nlogicals) { if (hpsa_scsi_do_report_phys_luns(h, physdev, reportlunsize, 0)) { dev_err(&h->pdev->dev, "report physical LUNs failed.\n"); Loading Loading @@ -1636,9 +1636,9 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h, int hostno) struct ReportLUNdata *physdev_list = NULL; struct ReportLUNdata *logdev_list = NULL; unsigned char *inq_buff = NULL; __u32 nphysicals = 0; __u32 nlogicals = 0; __u32 ndev_allocated = 0; u32 nphysicals = 0; u32 nlogicals = 0; u32 ndev_allocated = 0; struct hpsa_scsi_dev_t **currentsd, *this_device, *tmpdevice; int ncurrent = 0; int reportlunsize = sizeof(*physdev_list) + HPSA_MAX_PHYS_LUN * 8; Loading Loading @@ -1684,7 +1684,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h, int hostno) /* adjust our table of devices */ nmsa2xxx_enclosures = 0; for (i = 0; i < nphysicals + nlogicals + 1; i++) { __u8 *lunaddrbytes; u8 *lunaddrbytes; /* Figure out where the LUN ID info is coming from */ if (i < nphysicals) Loading Loading @@ -1790,7 +1790,7 @@ static int hpsa_scatter_gather(struct pci_dev *pdev, { unsigned int len; struct scatterlist *sg; __u64 addr64; u64 addr64; int use_sg, i; BUG_ON(scsi_sg_count(cmd) > MAXSGENTRIES); Loading @@ -1803,20 +1803,20 @@ static int hpsa_scatter_gather(struct pci_dev *pdev, goto sglist_finished; scsi_for_each_sg(cmd, sg, use_sg, i) { addr64 = (__u64) sg_dma_address(sg); addr64 = (u64) sg_dma_address(sg); len = sg_dma_len(sg); cp->SG[i].Addr.lower = (__u32) (addr64 & (__u64) 0x00000000FFFFFFFF); (u32) (addr64 & (u64) 0x00000000FFFFFFFF); cp->SG[i].Addr.upper = (__u32) ((addr64 >> 32) & (__u64) 0x00000000FFFFFFFF); (u32) ((addr64 >> 32) & (u64) 0x00000000FFFFFFFF); cp->SG[i].Len = len; cp->SG[i].Ext = 0; /* we are not chaining */ } sglist_finished: cp->Header.SGList = (__u8) use_sg; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (__u16) use_sg; /* total sgs in this cmd list */ cp->Header.SGList = (u8) use_sg; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (u16) use_sg; /* total sgs in this cmd list */ return 0; } Loading Loading @@ -2053,8 +2053,8 @@ static struct CommandList *cmd_alloc(struct ctlr_info *h) c->cmdindex = i; INIT_HLIST_NODE(&c->list); c->busaddr = (__u32) cmd_dma_handle; temp64.val = (__u64) err_dma_handle; c->busaddr = (u32) cmd_dma_handle; temp64.val = (u64) err_dma_handle; c->ErrDesc.Addr.lower = temp64.val32.lower; c->ErrDesc.Addr.upper = temp64.val32.upper; c->ErrDesc.Len = sizeof(*c->err_info); Loading Loading @@ -2091,8 +2091,8 @@ static struct CommandList *cmd_special_alloc(struct ctlr_info *h) memset(c->err_info, 0, sizeof(*c->err_info)); INIT_HLIST_NODE(&c->list); c->busaddr = (__u32) cmd_dma_handle; temp64.val = (__u64) err_dma_handle; c->busaddr = (u32) cmd_dma_handle; temp64.val = (u64) err_dma_handle; c->ErrDesc.Addr.lower = temp64.val32.lower; c->ErrDesc.Addr.upper = temp64.val32.upper; c->ErrDesc.Len = sizeof(*c->err_info); Loading Loading @@ -2378,8 +2378,8 @@ static int hpsa_big_passthru_ioctl(struct ctlr_info *h, void __user *argp) BYTE sg_used = 0; int status = 0; int i; __u32 left; __u32 sz; u32 left; u32 sz; BYTE __user *data_ptr; if (!argp) Loading Loading @@ -2542,8 +2542,8 @@ static int hpsa_ioctl(struct scsi_device *dev, int cmd, void *arg) } } static void fill_cmd(struct CommandList *c, __u8 cmd, struct ctlr_info *h, void *buff, size_t size, __u8 page_code, unsigned char *scsi3addr, static void fill_cmd(struct CommandList *c, u8 cmd, struct ctlr_info *h, void *buff, size_t size, u8 page_code, unsigned char *scsi3addr, int cmd_type) { int pci_dir = XFER_NONE; Loading Loading @@ -2721,8 +2721,8 @@ static inline long interrupt_not_for_us(struct ctlr_info *h) (h->interrupts_enabled == 0)); } static inline int bad_tag(struct ctlr_info *h, __u32 tag_index, __u32 raw_tag) static inline int bad_tag(struct ctlr_info *h, u32 tag_index, u32 raw_tag) { if (unlikely(tag_index >= h->nr_cmds)) { dev_warn(&h->pdev->dev, "bad tag 0x%08x ignored.\n", raw_tag); Loading @@ -2731,7 +2731,7 @@ static inline int bad_tag(struct ctlr_info *h, __u32 tag_index, return 0; } static inline void finish_cmd(struct CommandList *c, __u32 raw_tag) static inline void finish_cmd(struct CommandList *c, u32 raw_tag) { removeQ(c); if (likely(c->cmd_type == CMD_SCSI)) Loading @@ -2745,7 +2745,7 @@ static irqreturn_t do_hpsa_intr(int irq, void *dev_id) struct ctlr_info *h = dev_id; struct CommandList *c; unsigned long flags; __u32 raw_tag, tag, tag_index; u32 raw_tag, tag, tag_index; struct hlist_node *tmp; if (interrupt_not_for_us(h)) Loading Loading @@ -3063,7 +3063,7 @@ static int find_PCI_BAR_index(struct pci_dev *pdev, unsigned long pci_bar_addr) */ static void __devinit hpsa_interrupt_mode(struct ctlr_info *h, struct pci_dev *pdev, __u32 board_id) struct pci_dev *pdev, u32 board_id) { #ifdef CONFIG_PCI_MSI int err; Loading Loading @@ -3114,15 +3114,15 @@ static void __devinit hpsa_interrupt_mode(struct ctlr_info *h, static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) { ushort subsystem_vendor_id, subsystem_device_id, command; __u32 board_id, scratchpad = 0; __u64 cfg_offset; __u32 cfg_base_addr; __u64 cfg_base_addr_index; u32 board_id, scratchpad = 0; u64 cfg_offset; u32 cfg_base_addr; u64 cfg_base_addr_index; int i, prod_index, err; subsystem_vendor_id = pdev->subsystem_vendor; subsystem_device_id = pdev->subsystem_device; board_id = (((__u32) (subsystem_device_id << 16) & 0xffff0000) | board_id = (((u32) (subsystem_device_id << 16) & 0xffff0000) | subsystem_vendor_id); for (i = 0; i < ARRAY_SIZE(products); i++) Loading Loading @@ -3199,7 +3199,7 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) /* get the address index number */ cfg_base_addr = readl(h->vaddr + SA5_CTCFG_OFFSET); cfg_base_addr &= (__u32) 0x0000ffff; cfg_base_addr &= (u32) 0x0000ffff; cfg_base_addr_index = find_PCI_BAR_index(pdev, cfg_base_addr); if (cfg_base_addr_index == -1) { dev_warn(&pdev->dev, "cannot find cfg_base_addr_index\n"); Loading Loading @@ -3232,7 +3232,7 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) #ifdef CONFIG_X86 { /* Need to enable prefetch in the SCSI core for 6400 in x86 */ __u32 prefetch; u32 prefetch; prefetch = readl(&(h->cfgtable->SCSI_Prefetch)); prefetch |= 0x100; writel(prefetch, &(h->cfgtable->SCSI_Prefetch)); Loading @@ -3244,7 +3244,7 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) * physical memory. */ if (board_id == 0x3225103C) { __u32 dma_prefetch; u32 dma_prefetch; dma_prefetch = readl(h->vaddr + I2O_DMA1_CFG); dma_prefetch |= 0x8000; writel(dma_prefetch, h->vaddr + I2O_DMA1_CFG); Loading drivers/scsi/hpsa.h +2 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ struct ctlr_info { char *product_name; char firm_ver[4]; /* Firmware version */ struct pci_dev *pdev; __u32 board_id; u32 board_id; void __iomem *vaddr; unsigned long paddr; int nr_cmds; /* Number of commands allowed on this controller */ Loading Loading @@ -261,7 +261,7 @@ static struct access_method SA5_access = { }; struct board_type { __u32 board_id; u32 board_id; char *product_name; struct access_method *access; }; Loading drivers/scsi/hpsa_cmd.h +73 −73 Original line number Diff line number Diff line Loading @@ -107,13 +107,13 @@ #define CFGTBL_BusType_Fibre1G 0x00000100l #define CFGTBL_BusType_Fibre2G 0x00000200l struct vals32 { __u32 lower; __u32 upper; u32 lower; u32 upper; }; union u64bit { struct vals32 val32; __u64 val; u64 val; }; /* FIXME this is a per controller value (barf!) */ Loading @@ -126,34 +126,34 @@ union u64bit { #define HPSA_INQUIRY 0x12 struct InquiryData { __u8 data_byte[36]; u8 data_byte[36]; }; #define HPSA_REPORT_LOG 0xc2 /* Report Logical LUNs */ #define HPSA_REPORT_PHYS 0xc3 /* Report Physical LUNs */ struct ReportLUNdata { __u8 LUNListLength[4]; __u32 reserved; __u8 LUN[HPSA_MAX_LUN][8]; u8 LUNListLength[4]; u32 reserved; u8 LUN[HPSA_MAX_LUN][8]; }; struct ReportExtendedLUNdata { __u8 LUNListLength[4]; __u8 extended_response_flag; __u8 reserved[3]; __u8 LUN[HPSA_MAX_LUN][24]; u8 LUNListLength[4]; u8 extended_response_flag; u8 reserved[3]; u8 LUN[HPSA_MAX_LUN][24]; }; struct SenseSubsystem_info { __u8 reserved[36]; __u8 portname[8]; __u8 reserved1[1108]; u8 reserved[36]; u8 portname[8]; u8 reserved1[1108]; }; #define HPSA_READ_CAPACITY 0x25 /* Read Capacity */ struct ReadCapdata { __u8 total_size[4]; /* Total size in blocks */ __u8 block_size[4]; /* Size of blocks in bytes */ u8 total_size[4]; /* Total size in blocks */ u8 block_size[4]; /* Size of blocks in bytes */ }; #if 0 Loading @@ -174,94 +174,94 @@ struct ReadCapdata { /* Command List Structure */ union SCSI3Addr { struct { __u8 Dev; __u8 Bus:6; __u8 Mode:2; /* b00 */ u8 Dev; u8 Bus:6; u8 Mode:2; /* b00 */ } PeripDev; struct { __u8 DevLSB; __u8 DevMSB:6; __u8 Mode:2; /* b01 */ u8 DevLSB; u8 DevMSB:6; u8 Mode:2; /* b01 */ } LogDev; struct { __u8 Dev:5; __u8 Bus:3; __u8 Targ:6; __u8 Mode:2; /* b10 */ u8 Dev:5; u8 Bus:3; u8 Targ:6; u8 Mode:2; /* b10 */ } LogUnit; }; struct PhysDevAddr { __u32 TargetId:24; __u32 Bus:6; __u32 Mode:2; u32 TargetId:24; u32 Bus:6; u32 Mode:2; /* 2 level target device addr */ union SCSI3Addr Target[2]; }; struct LogDevAddr { __u32 VolId:30; __u32 Mode:2; __u8 reserved[4]; u32 VolId:30; u32 Mode:2; u8 reserved[4]; }; union LUNAddr { __u8 LunAddrBytes[8]; u8 LunAddrBytes[8]; union SCSI3Addr SCSI3Lun[4]; struct PhysDevAddr PhysDev; struct LogDevAddr LogDev; }; struct CommandListHeader { __u8 ReplyQueue; __u8 SGList; __u16 SGTotal; u8 ReplyQueue; u8 SGList; u16 SGTotal; struct vals32 Tag; union LUNAddr LUN; }; struct RequestBlock { __u8 CDBLen; u8 CDBLen; struct { __u8 Type:3; __u8 Attribute:3; __u8 Direction:2; u8 Type:3; u8 Attribute:3; u8 Direction:2; } Type; __u16 Timeout; __u8 CDB[16]; u16 Timeout; u8 CDB[16]; }; struct ErrDescriptor { struct vals32 Addr; __u32 Len; u32 Len; }; struct SGDescriptor { struct vals32 Addr; __u32 Len; __u32 Ext; u32 Len; u32 Ext; }; union MoreErrInfo { struct { __u8 Reserved[3]; __u8 Type; __u32 ErrorInfo; u8 Reserved[3]; u8 Type; u32 ErrorInfo; } Common_Info; struct { __u8 Reserved[2]; __u8 offense_size; /* size of offending entry */ __u8 offense_num; /* byte # of offense 0-base */ __u32 offense_value; u8 Reserved[2]; u8 offense_size; /* size of offending entry */ u8 offense_num; /* byte # of offense 0-base */ u32 offense_value; } Invalid_Cmd; }; struct ErrorInfo { __u8 ScsiStatus; __u8 SenseLen; __u16 CommandStatus; __u32 ResidualCnt; u8 ScsiStatus; u8 SenseLen; u16 CommandStatus; u32 ResidualCnt; union MoreErrInfo MoreErrInfo; __u8 SenseInfo[SENSEINFOBYTES]; u8 SenseInfo[SENSEINFOBYTES]; }; /* Command types */ #define CMD_IOCTL_PEND 0x01 Loading @@ -279,7 +279,7 @@ struct CommandList { struct ErrDescriptor ErrDesc; struct SGDescriptor SG[MAXSGENTRIES]; /* information associated with the command */ __u32 busaddr; /* physical addr of this record */ u32 busaddr; /* physical addr of this record */ struct ErrorInfo *err_info; /* pointer to the allocated mem */ struct ctlr_info *h; int cmd_type; Loading @@ -295,31 +295,31 @@ struct CommandList { /* Configuration Table Structure */ struct HostWrite { __u32 TransportRequest; __u32 Reserved; __u32 CoalIntDelay; __u32 CoalIntCount; u32 TransportRequest; u32 Reserved; u32 CoalIntDelay; u32 CoalIntCount; }; struct CfgTable { __u8 Signature[4]; __u32 SpecValence; __u32 TransportSupport; __u32 TransportActive; u8 Signature[4]; u32 SpecValence; u32 TransportSupport; u32 TransportActive; struct HostWrite HostWrite; __u32 CmdsOutMax; __u32 BusTypes; __u32 Reserved; __u8 ServerName[16]; __u32 HeartBeat; __u32 SCSI_Prefetch; u32 CmdsOutMax; u32 BusTypes; u32 Reserved; u8 ServerName[16]; u32 HeartBeat; u32 SCSI_Prefetch; }; struct hpsa_pci_info { unsigned char bus; unsigned char dev_fn; unsigned short domain; __u32 board_id; u32 board_id; }; #pragma pack() Loading Loading
drivers/scsi/hpsa.c +45 −45 Original line number Diff line number Diff line Loading @@ -126,8 +126,8 @@ static void cmd_free(struct ctlr_info *h, struct CommandList *c); static void cmd_special_free(struct ctlr_info *h, struct CommandList *c); static struct CommandList *cmd_alloc(struct ctlr_info *h); static struct CommandList *cmd_special_alloc(struct ctlr_info *h); static void fill_cmd(struct CommandList *c, __u8 cmd, struct ctlr_info *h, void *buff, size_t size, __u8 page_code, unsigned char *scsi3addr, static void fill_cmd(struct CommandList *c, u8 cmd, struct ctlr_info *h, void *buff, size_t size, u8 page_code, unsigned char *scsi3addr, int cmd_type); static int hpsa_scsi_queue_command(struct scsi_cmnd *cmd, Loading Loading @@ -912,7 +912,7 @@ static void hpsa_scsi_setup(struct ctlr_info *h) } static void complete_scsi_command(struct CommandList *cp, int timeout, __u32 tag) int timeout, u32 tag) { struct scsi_cmnd *cmd; struct ctlr_info *h; Loading Loading @@ -1160,7 +1160,7 @@ static void hpsa_map_one(struct pci_dev *pdev, size_t buflen, int data_direction) { __u64 addr64; u64 addr64; if (buflen == 0 || data_direction == PCI_DMA_NONE) { cp->Header.SGList = 0; Loading @@ -1168,14 +1168,14 @@ static void hpsa_map_one(struct pci_dev *pdev, return; } addr64 = (__u64) pci_map_single(pdev, buf, buflen, data_direction); addr64 = (u64) pci_map_single(pdev, buf, buflen, data_direction); cp->SG[0].Addr.lower = (__u32) (addr64 & (__u64) 0x00000000FFFFFFFF); (u32) (addr64 & (u64) 0x00000000FFFFFFFF); cp->SG[0].Addr.upper = (__u32) ((addr64 >> 32) & (__u64) 0x00000000FFFFFFFF); (u32) ((addr64 >> 32) & (u64) 0x00000000FFFFFFFF); cp->SG[0].Len = buflen; cp->Header.SGList = (__u8) 1; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (__u16) 1; /* total sgs in this cmd list */ cp->Header.SGList = (u8) 1; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (u16) 1; /* total sgs in this cmd list */ } static inline void hpsa_scsi_do_simple_cmd_core(struct ctlr_info *h, Loading Loading @@ -1485,11 +1485,11 @@ static int is_msa2xxx(struct ctlr_info *h, struct hpsa_scsi_dev_t *device) * in hpsa_find_target_lun, called by hpsa_scsi_add_entry.) */ static void figure_bus_target_lun(struct ctlr_info *h, __u8 *lunaddrbytes, int *bus, int *target, int *lun, u8 *lunaddrbytes, int *bus, int *target, int *lun, struct hpsa_scsi_dev_t *device) { __u32 lunid; u32 lunid; if (is_logical_dev_addr_mode(lunaddrbytes)) { /* logical device */ Loading Loading @@ -1529,7 +1529,7 @@ static void figure_bus_target_lun(struct ctlr_info *h, */ static int add_msa2xxx_enclosure_device(struct ctlr_info *h, struct hpsa_scsi_dev_t *tmpdevice, struct hpsa_scsi_dev_t *this_device, __u8 *lunaddrbytes, struct hpsa_scsi_dev_t *this_device, u8 *lunaddrbytes, int bus, int target, int lun, unsigned long lunzerobits[], int *nmsa2xxx_enclosures) { Loading Loading @@ -1576,8 +1576,8 @@ static int add_msa2xxx_enclosure_device(struct ctlr_info *h, */ static int hpsa_gather_lun_info(struct ctlr_info *h, int reportlunsize, struct ReportLUNdata *physdev, __u32 *nphysicals, struct ReportLUNdata *logdev, __u32 *nlogicals) struct ReportLUNdata *physdev, u32 *nphysicals, struct ReportLUNdata *logdev, u32 *nlogicals) { if (hpsa_scsi_do_report_phys_luns(h, physdev, reportlunsize, 0)) { dev_err(&h->pdev->dev, "report physical LUNs failed.\n"); Loading Loading @@ -1636,9 +1636,9 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h, int hostno) struct ReportLUNdata *physdev_list = NULL; struct ReportLUNdata *logdev_list = NULL; unsigned char *inq_buff = NULL; __u32 nphysicals = 0; __u32 nlogicals = 0; __u32 ndev_allocated = 0; u32 nphysicals = 0; u32 nlogicals = 0; u32 ndev_allocated = 0; struct hpsa_scsi_dev_t **currentsd, *this_device, *tmpdevice; int ncurrent = 0; int reportlunsize = sizeof(*physdev_list) + HPSA_MAX_PHYS_LUN * 8; Loading Loading @@ -1684,7 +1684,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h, int hostno) /* adjust our table of devices */ nmsa2xxx_enclosures = 0; for (i = 0; i < nphysicals + nlogicals + 1; i++) { __u8 *lunaddrbytes; u8 *lunaddrbytes; /* Figure out where the LUN ID info is coming from */ if (i < nphysicals) Loading Loading @@ -1790,7 +1790,7 @@ static int hpsa_scatter_gather(struct pci_dev *pdev, { unsigned int len; struct scatterlist *sg; __u64 addr64; u64 addr64; int use_sg, i; BUG_ON(scsi_sg_count(cmd) > MAXSGENTRIES); Loading @@ -1803,20 +1803,20 @@ static int hpsa_scatter_gather(struct pci_dev *pdev, goto sglist_finished; scsi_for_each_sg(cmd, sg, use_sg, i) { addr64 = (__u64) sg_dma_address(sg); addr64 = (u64) sg_dma_address(sg); len = sg_dma_len(sg); cp->SG[i].Addr.lower = (__u32) (addr64 & (__u64) 0x00000000FFFFFFFF); (u32) (addr64 & (u64) 0x00000000FFFFFFFF); cp->SG[i].Addr.upper = (__u32) ((addr64 >> 32) & (__u64) 0x00000000FFFFFFFF); (u32) ((addr64 >> 32) & (u64) 0x00000000FFFFFFFF); cp->SG[i].Len = len; cp->SG[i].Ext = 0; /* we are not chaining */ } sglist_finished: cp->Header.SGList = (__u8) use_sg; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (__u16) use_sg; /* total sgs in this cmd list */ cp->Header.SGList = (u8) use_sg; /* no. SGs contig in this cmd */ cp->Header.SGTotal = (u16) use_sg; /* total sgs in this cmd list */ return 0; } Loading Loading @@ -2053,8 +2053,8 @@ static struct CommandList *cmd_alloc(struct ctlr_info *h) c->cmdindex = i; INIT_HLIST_NODE(&c->list); c->busaddr = (__u32) cmd_dma_handle; temp64.val = (__u64) err_dma_handle; c->busaddr = (u32) cmd_dma_handle; temp64.val = (u64) err_dma_handle; c->ErrDesc.Addr.lower = temp64.val32.lower; c->ErrDesc.Addr.upper = temp64.val32.upper; c->ErrDesc.Len = sizeof(*c->err_info); Loading Loading @@ -2091,8 +2091,8 @@ static struct CommandList *cmd_special_alloc(struct ctlr_info *h) memset(c->err_info, 0, sizeof(*c->err_info)); INIT_HLIST_NODE(&c->list); c->busaddr = (__u32) cmd_dma_handle; temp64.val = (__u64) err_dma_handle; c->busaddr = (u32) cmd_dma_handle; temp64.val = (u64) err_dma_handle; c->ErrDesc.Addr.lower = temp64.val32.lower; c->ErrDesc.Addr.upper = temp64.val32.upper; c->ErrDesc.Len = sizeof(*c->err_info); Loading Loading @@ -2378,8 +2378,8 @@ static int hpsa_big_passthru_ioctl(struct ctlr_info *h, void __user *argp) BYTE sg_used = 0; int status = 0; int i; __u32 left; __u32 sz; u32 left; u32 sz; BYTE __user *data_ptr; if (!argp) Loading Loading @@ -2542,8 +2542,8 @@ static int hpsa_ioctl(struct scsi_device *dev, int cmd, void *arg) } } static void fill_cmd(struct CommandList *c, __u8 cmd, struct ctlr_info *h, void *buff, size_t size, __u8 page_code, unsigned char *scsi3addr, static void fill_cmd(struct CommandList *c, u8 cmd, struct ctlr_info *h, void *buff, size_t size, u8 page_code, unsigned char *scsi3addr, int cmd_type) { int pci_dir = XFER_NONE; Loading Loading @@ -2721,8 +2721,8 @@ static inline long interrupt_not_for_us(struct ctlr_info *h) (h->interrupts_enabled == 0)); } static inline int bad_tag(struct ctlr_info *h, __u32 tag_index, __u32 raw_tag) static inline int bad_tag(struct ctlr_info *h, u32 tag_index, u32 raw_tag) { if (unlikely(tag_index >= h->nr_cmds)) { dev_warn(&h->pdev->dev, "bad tag 0x%08x ignored.\n", raw_tag); Loading @@ -2731,7 +2731,7 @@ static inline int bad_tag(struct ctlr_info *h, __u32 tag_index, return 0; } static inline void finish_cmd(struct CommandList *c, __u32 raw_tag) static inline void finish_cmd(struct CommandList *c, u32 raw_tag) { removeQ(c); if (likely(c->cmd_type == CMD_SCSI)) Loading @@ -2745,7 +2745,7 @@ static irqreturn_t do_hpsa_intr(int irq, void *dev_id) struct ctlr_info *h = dev_id; struct CommandList *c; unsigned long flags; __u32 raw_tag, tag, tag_index; u32 raw_tag, tag, tag_index; struct hlist_node *tmp; if (interrupt_not_for_us(h)) Loading Loading @@ -3063,7 +3063,7 @@ static int find_PCI_BAR_index(struct pci_dev *pdev, unsigned long pci_bar_addr) */ static void __devinit hpsa_interrupt_mode(struct ctlr_info *h, struct pci_dev *pdev, __u32 board_id) struct pci_dev *pdev, u32 board_id) { #ifdef CONFIG_PCI_MSI int err; Loading Loading @@ -3114,15 +3114,15 @@ static void __devinit hpsa_interrupt_mode(struct ctlr_info *h, static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) { ushort subsystem_vendor_id, subsystem_device_id, command; __u32 board_id, scratchpad = 0; __u64 cfg_offset; __u32 cfg_base_addr; __u64 cfg_base_addr_index; u32 board_id, scratchpad = 0; u64 cfg_offset; u32 cfg_base_addr; u64 cfg_base_addr_index; int i, prod_index, err; subsystem_vendor_id = pdev->subsystem_vendor; subsystem_device_id = pdev->subsystem_device; board_id = (((__u32) (subsystem_device_id << 16) & 0xffff0000) | board_id = (((u32) (subsystem_device_id << 16) & 0xffff0000) | subsystem_vendor_id); for (i = 0; i < ARRAY_SIZE(products); i++) Loading Loading @@ -3199,7 +3199,7 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) /* get the address index number */ cfg_base_addr = readl(h->vaddr + SA5_CTCFG_OFFSET); cfg_base_addr &= (__u32) 0x0000ffff; cfg_base_addr &= (u32) 0x0000ffff; cfg_base_addr_index = find_PCI_BAR_index(pdev, cfg_base_addr); if (cfg_base_addr_index == -1) { dev_warn(&pdev->dev, "cannot find cfg_base_addr_index\n"); Loading Loading @@ -3232,7 +3232,7 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) #ifdef CONFIG_X86 { /* Need to enable prefetch in the SCSI core for 6400 in x86 */ __u32 prefetch; u32 prefetch; prefetch = readl(&(h->cfgtable->SCSI_Prefetch)); prefetch |= 0x100; writel(prefetch, &(h->cfgtable->SCSI_Prefetch)); Loading @@ -3244,7 +3244,7 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev) * physical memory. */ if (board_id == 0x3225103C) { __u32 dma_prefetch; u32 dma_prefetch; dma_prefetch = readl(h->vaddr + I2O_DMA1_CFG); dma_prefetch |= 0x8000; writel(dma_prefetch, h->vaddr + I2O_DMA1_CFG); Loading
drivers/scsi/hpsa.h +2 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ struct ctlr_info { char *product_name; char firm_ver[4]; /* Firmware version */ struct pci_dev *pdev; __u32 board_id; u32 board_id; void __iomem *vaddr; unsigned long paddr; int nr_cmds; /* Number of commands allowed on this controller */ Loading Loading @@ -261,7 +261,7 @@ static struct access_method SA5_access = { }; struct board_type { __u32 board_id; u32 board_id; char *product_name; struct access_method *access; }; Loading
drivers/scsi/hpsa_cmd.h +73 −73 Original line number Diff line number Diff line Loading @@ -107,13 +107,13 @@ #define CFGTBL_BusType_Fibre1G 0x00000100l #define CFGTBL_BusType_Fibre2G 0x00000200l struct vals32 { __u32 lower; __u32 upper; u32 lower; u32 upper; }; union u64bit { struct vals32 val32; __u64 val; u64 val; }; /* FIXME this is a per controller value (barf!) */ Loading @@ -126,34 +126,34 @@ union u64bit { #define HPSA_INQUIRY 0x12 struct InquiryData { __u8 data_byte[36]; u8 data_byte[36]; }; #define HPSA_REPORT_LOG 0xc2 /* Report Logical LUNs */ #define HPSA_REPORT_PHYS 0xc3 /* Report Physical LUNs */ struct ReportLUNdata { __u8 LUNListLength[4]; __u32 reserved; __u8 LUN[HPSA_MAX_LUN][8]; u8 LUNListLength[4]; u32 reserved; u8 LUN[HPSA_MAX_LUN][8]; }; struct ReportExtendedLUNdata { __u8 LUNListLength[4]; __u8 extended_response_flag; __u8 reserved[3]; __u8 LUN[HPSA_MAX_LUN][24]; u8 LUNListLength[4]; u8 extended_response_flag; u8 reserved[3]; u8 LUN[HPSA_MAX_LUN][24]; }; struct SenseSubsystem_info { __u8 reserved[36]; __u8 portname[8]; __u8 reserved1[1108]; u8 reserved[36]; u8 portname[8]; u8 reserved1[1108]; }; #define HPSA_READ_CAPACITY 0x25 /* Read Capacity */ struct ReadCapdata { __u8 total_size[4]; /* Total size in blocks */ __u8 block_size[4]; /* Size of blocks in bytes */ u8 total_size[4]; /* Total size in blocks */ u8 block_size[4]; /* Size of blocks in bytes */ }; #if 0 Loading @@ -174,94 +174,94 @@ struct ReadCapdata { /* Command List Structure */ union SCSI3Addr { struct { __u8 Dev; __u8 Bus:6; __u8 Mode:2; /* b00 */ u8 Dev; u8 Bus:6; u8 Mode:2; /* b00 */ } PeripDev; struct { __u8 DevLSB; __u8 DevMSB:6; __u8 Mode:2; /* b01 */ u8 DevLSB; u8 DevMSB:6; u8 Mode:2; /* b01 */ } LogDev; struct { __u8 Dev:5; __u8 Bus:3; __u8 Targ:6; __u8 Mode:2; /* b10 */ u8 Dev:5; u8 Bus:3; u8 Targ:6; u8 Mode:2; /* b10 */ } LogUnit; }; struct PhysDevAddr { __u32 TargetId:24; __u32 Bus:6; __u32 Mode:2; u32 TargetId:24; u32 Bus:6; u32 Mode:2; /* 2 level target device addr */ union SCSI3Addr Target[2]; }; struct LogDevAddr { __u32 VolId:30; __u32 Mode:2; __u8 reserved[4]; u32 VolId:30; u32 Mode:2; u8 reserved[4]; }; union LUNAddr { __u8 LunAddrBytes[8]; u8 LunAddrBytes[8]; union SCSI3Addr SCSI3Lun[4]; struct PhysDevAddr PhysDev; struct LogDevAddr LogDev; }; struct CommandListHeader { __u8 ReplyQueue; __u8 SGList; __u16 SGTotal; u8 ReplyQueue; u8 SGList; u16 SGTotal; struct vals32 Tag; union LUNAddr LUN; }; struct RequestBlock { __u8 CDBLen; u8 CDBLen; struct { __u8 Type:3; __u8 Attribute:3; __u8 Direction:2; u8 Type:3; u8 Attribute:3; u8 Direction:2; } Type; __u16 Timeout; __u8 CDB[16]; u16 Timeout; u8 CDB[16]; }; struct ErrDescriptor { struct vals32 Addr; __u32 Len; u32 Len; }; struct SGDescriptor { struct vals32 Addr; __u32 Len; __u32 Ext; u32 Len; u32 Ext; }; union MoreErrInfo { struct { __u8 Reserved[3]; __u8 Type; __u32 ErrorInfo; u8 Reserved[3]; u8 Type; u32 ErrorInfo; } Common_Info; struct { __u8 Reserved[2]; __u8 offense_size; /* size of offending entry */ __u8 offense_num; /* byte # of offense 0-base */ __u32 offense_value; u8 Reserved[2]; u8 offense_size; /* size of offending entry */ u8 offense_num; /* byte # of offense 0-base */ u32 offense_value; } Invalid_Cmd; }; struct ErrorInfo { __u8 ScsiStatus; __u8 SenseLen; __u16 CommandStatus; __u32 ResidualCnt; u8 ScsiStatus; u8 SenseLen; u16 CommandStatus; u32 ResidualCnt; union MoreErrInfo MoreErrInfo; __u8 SenseInfo[SENSEINFOBYTES]; u8 SenseInfo[SENSEINFOBYTES]; }; /* Command types */ #define CMD_IOCTL_PEND 0x01 Loading @@ -279,7 +279,7 @@ struct CommandList { struct ErrDescriptor ErrDesc; struct SGDescriptor SG[MAXSGENTRIES]; /* information associated with the command */ __u32 busaddr; /* physical addr of this record */ u32 busaddr; /* physical addr of this record */ struct ErrorInfo *err_info; /* pointer to the allocated mem */ struct ctlr_info *h; int cmd_type; Loading @@ -295,31 +295,31 @@ struct CommandList { /* Configuration Table Structure */ struct HostWrite { __u32 TransportRequest; __u32 Reserved; __u32 CoalIntDelay; __u32 CoalIntCount; u32 TransportRequest; u32 Reserved; u32 CoalIntDelay; u32 CoalIntCount; }; struct CfgTable { __u8 Signature[4]; __u32 SpecValence; __u32 TransportSupport; __u32 TransportActive; u8 Signature[4]; u32 SpecValence; u32 TransportSupport; u32 TransportActive; struct HostWrite HostWrite; __u32 CmdsOutMax; __u32 BusTypes; __u32 Reserved; __u8 ServerName[16]; __u32 HeartBeat; __u32 SCSI_Prefetch; u32 CmdsOutMax; u32 BusTypes; u32 Reserved; u8 ServerName[16]; u32 HeartBeat; u32 SCSI_Prefetch; }; struct hpsa_pci_info { unsigned char bus; unsigned char dev_fn; unsigned short domain; __u32 board_id; u32 board_id; }; #pragma pack() Loading