Lines Matching +full:num +full:- +full:irq +full:- +full:priority +full:- +full:bits

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
9 * Copyright (c) 2000-2010 Adaptec, Inc.
10 * 2010-2015 PMC-Sierra, Inc. (aacraid@pmc-sierra.com)
11 * 2016-2017 Microsemi Corp. (aacraid@microsemi.com)
34 /*------------------------------------------------------------------------------
36 *----------------------------------------------------------------------------*/
61 /* Bit definitions in IOA->Host Interrupt Register */
90 # define AAC_DRIVER_BRANCH "-custom"
95 #define AAC_NUM_IO_FIB (1024 - AAC_NUM_MGT_FIB)
105 /* Thor: 5 phys. buses: #0: empty, 1-4: 256 targets each */
132 u32 addr_lo; /* Lower 32-bits of SGL element address */
133 u32 addr_hi; /* Upper 32-bits of SGL element address */
190 * [1:0] DIR - 0=No data, 0x1 = IN, 0x2 = OUT
191 * [2] TYPE - 0=PCI, 1=DDR
192 * [3] CRYPTO_ENABLE - 0=Crypto disabled, 1=Crypto enabled
199 /* Lower 32-bits of tweak value for crypto enabled IOs */
207 /* [2:0] Task Attribute, [6:3] Command Priority */
215 /* Lower 32-bits of reserved error data target location on the host */
218 /* Upper 32-bits of reserved error data target location on the host */
224 /* Upper 32-bits of tweak value for crypto enabled IOs */
231 * AAC_MAX_NATIVE_SIZE-FW_ERROR_BUFFER_SIZE
257 /* Lower 32-bits of reserved error data target location on the host */
259 /* Upper 32-bits of reserved error data target location on the host */
267 /* 0 - reset specified device, 1 - reset all devices */
274 /* Lower 32-bits of reserved error data target location on the host */
276 /* Upper 32-bits of reserved error data target location on the host */
289 u8 datapres; /* [1:0] - data present, [7:2] - reserved */
300 u8 cmd_bytes[AAC_MAX_NATIVE_SIZE-FW_ERROR_BUFFER_SIZE];
315 u8 list_length[4]; /* LUN list length (N-7, big endian) */
320 u8 bus; /* Bus, flag (bits 6,7) */
341 u8 scsi_inquiry_bits; /* inquiry byte 7 bits */
423 #define aac_logical_to_phys(x) ((x)?(x)-1:0)
429 #define AAC_CHARDEV_UNREGISTERED (-1)
430 #define AAC_CHARDEV_NEEDS_REINIT (-2)
449 #define FT_DRIVE 9 /* physical disk - addressable in scsi by bus/id/lun */
458 __le32 addr; /* 32-bit address. */
463 u32 addr; /* 32-bit address. */
468 __le32 addr[2]; /* 64-bit addr. 2 pieces for data alignment */
473 u32 addr[2]; /* 64-bit addr. 2 pieces for data alignment */
504 * 32-bit addressing.
541 * unsigned Month :4; // 1 - 12
542 * unsigned Day :6; // 1 - 32
543 * unsigned Hour :6; // 0 - 23
544 * unsigned Minute :6; // 0 - 60
545 * unsigned Second :6; // 0 - 60
613 #define HostNormCmdQue 1 /* Change in host normal priority command queue */
614 #define HostHighCmdQue 2 /* Change in host high priority command queue */
615 #define HostNormRespQue 3 /* Change in host normal priority response queue */
616 #define HostHighRespQue 4 /* Change in host high priority response queue */
650 HostNormCmdQueue = 0, /* Adapter to host normal priority command traffic */
651 HostHighCmdQueue, /* Adapter to host high priority command traffic */
652 AdapNormCmdQueue, /* Host to adapter normal priority command traffic */
653 AdapHighCmdQueue, /* Host to adapter high priority command traffic */
654 HostNormRespQueue, /* Adapter to host normal priority response traffic */
655 HostHighRespQueue, /* Adapter to host high priority response traffic */
656 AdapNormRespQueue, /* Host to adapter normal priority response traffic */
657 AdapHighRespQueue /* Host to adapter high priority response traffic */
669 * Define the priority levels the FSA communication routines support.
711 u8 data[512-sizeof(struct aac_fibhdr)]; // Command specific data
1016 __le32 reserved[10]; /* 00h-27h | Reserved */
1018 u8 reserved1[3]; /* 29h-2bh | Reserved */
1020 __le32 reserved2[26]; /* 30h-97h | Reserved */
1021 __le16 PRICLEARIRQ; /* 98h | Primary Clear Irq */
1022 __le16 SECCLEARIRQ; /* 9ah | Secondary Clear Irq */
1023 __le16 PRISETIRQ; /* 9ch | Primary Set Irq */
1024 __le16 SECSETIRQ; /* 9eh | Secondary Set Irq */
1025 __le16 PRICLEARIRQMASK;/* a0h | Primary Clear Irq Mask */
1026 __le16 SECCLEARIRQMASK;/* a2h | Secondary Clear Irq Mask */
1027 __le16 PRISETIRQMASK; /* a4h | Primary Set Irq Mask */
1028 __le16 SECSETIRQMASK; /* a6h | Secondary Set Irq Mask */
1039 __le32 reserved3[12]; /* d0h-ffh | reserved */
1040 __le32 LUT[64]; /* 100h-1ffh | Lookup Table Entries */
1070 struct sa_drawbridge_CSR SaDbCSR; /* 98h - c4h */
1077 #define sa_readw(AEP, CSR) readl(&((AEP)->regs.sa->CSR))
1078 #define sa_readl(AEP, CSR) readl(&((AEP)->regs.sa->CSR))
1079 #define sa_writew(AEP, CSR, value) writew(value, &((AEP)->regs.sa->CSR))
1080 #define sa_writel(AEP, CSR, value) writel(value, &((AEP)->regs.sa->CSR))
1134 struct rx_mu_registers MUnit; /* 1300h - 1347h */
1135 __le32 reserved1[2]; /* 1348h - 134ch */
1139 #define rx_readb(AEP, CSR) readb(&((AEP)->regs.rx->CSR))
1140 #define rx_readl(AEP, CSR) readl(&((AEP)->regs.rx->CSR))
1141 #define rx_writeb(AEP, CSR, value) writeb(value, &((AEP)->regs.rx->CSR))
1142 #define rx_writel(AEP, CSR, value) writel(value, &((AEP)->regs.rx->CSR))
1152 struct rkt_mu_registers MUnit; /* 1300h - 1347h */
1153 __le32 reserved1[1006]; /* 1348h - 22fch */
1154 struct rkt_inbound IndexRegs; /* 2300h - */
1157 #define rkt_readb(AEP, CSR) readb(&((AEP)->regs.rkt->CSR))
1158 #define rkt_readl(AEP, CSR) readl(&((AEP)->regs.rkt->CSR))
1159 #define rkt_writeb(AEP, CSR, value) writeb(value, &((AEP)->regs.rkt->CSR))
1160 #define rkt_writel(AEP, CSR, value) writel(value, &((AEP)->regs.rkt->CSR))
1171 __le32 IOAR[2]; /* 18h | IOA->host interrupt register */
1192 struct src_mu_registers MUnit; /* 00h - cbh */
1195 __le32 reserved1[130786]; /* d8h - 7fc5fh */
1199 __le32 reserved1[970]; /* d8h - fffh */
1205 #define src_readb(AEP, CSR) readb(&((AEP)->regs.src.bar0->CSR))
1206 #define src_readl(AEP, CSR) readl(&((AEP)->regs.src.bar0->CSR))
1208 &((AEP)->regs.src.bar0->CSR))
1210 &((AEP)->regs.src.bar0->CSR))
1213 &((AEP)->regs.src.bar0->CSR))
1226 ulong jiffies; // used for cleanup - dmb changed to ulong
1238 * SCSI-2 Standard.
1244 u8 EOM:1; /* End Of Medium - reserved for random access devices */
1245 u8 filemark:1; /* Filemark - reserved for random access devices */
1247 u8 information[4]; /* for direct-access devices, contains the unsigned
1255 u8 FRUC; /* Field Replaceable Unit Code - not used */
1259 u8 BPV:1; /* bit pointer valid (BPV): 1- indicates that
1263 u8 CD:1; /* command data bit: 1- illegal parameter in CDB.
1264 * 0- illegal parameter in data.
1333 s8 reset_state; /* 0 - no reset, 1..x - */
1404 u8 host_bus_width; /* actual width in bits or links */
1406 u8 max_rrc_drives; /* max. number of ITP-RRC drives/pool */
1407 u8 max_disk_xtasks; /* max. possible num of DiskX Tasks */
1604 *This lock will protect the two 32-bit
1662 u32 max_msix; /* max. MSI-X vectors */
1663 u32 vector_cap; /* MSI-X vector capab.*/
1664 int msi_enabled; /* MSI/MSI-X enabled */
1678 (dev)->a_ops.adapter_interrupt(dev)
1681 (dev)->a_ops.adapter_notify(dev, event)
1684 (dev)->a_ops.adapter_disable_int(dev)
1687 (dev)->a_ops.adapter_enable_int(dev)
1690 (dev)->a_ops.adapter_sync_cmd(dev, command, p1, p2, p3, p4, p5, p6, status, r1, r2, r3, r4)
1693 ((dev)->a_ops.adapter_restart(dev, bled, reset_type))
1696 ((dev)->a_ops.adapter_start(dev))
1699 (dev)->a_ops.adapter_ioremap(dev, size)
1702 ((fib)->dev)->a_ops.adapter_deliver(fib)
1705 dev->a_ops.adapter_bounds(dev,cmd,lba)
1708 ((fib)->dev)->a_ops.adapter_read(fib,cmd,lba,count)
1711 ((fib)->dev)->a_ops.adapter_write(fib,cmd,lba,count,fua)
1714 ((fib)->dev)->a_ops.adapter_scsi(fib,cmd)
1717 (dev)->a_ops.adapter_comm(dev, comm)
1922 u8 sgeCnt; /* only 8 bits required */
1939 __le32 count; /* sizeof(((struct aac_synchronize_reply *)NULL)->data) */
1976 __le32 count; /* sizeof(((struct aac_pause_reply *)NULL)->data) */
2042 * SRB Functions - set in aac_srb->function
2063 * SRB SCSI Status - set in aac_srb->scsi_status
2098 * Object-Server / Volume-Manager Dispatch Classes
2126 #define MAX_VMCOMMAND_NUM 23 /* used for sizing stats array - leave last */
2171 __le32 count; /* sizeof(((struct aac_get_config_status_resp *)NULL)->data) */
2194 * Accept the configuration as-is
2247 #define FSCS_HIDDEN 0x0004 /* should be ignored - set during a clear */
2272 __le32 count; /* sizeof(((struct aac_get_name_resp *)NULL)->data) */
2345 * Ugly - non Linux like ioctl coding for back compat.
2506 * Phase Staus mailbox is 32bits:
2512 * phase status bits to provide more detailed information about the
2514 * status bits that are set when changing the phase are also valid
2521 * Phases are bit oriented. It is NOT valid to have multiple bits set
2539 #define DoorBellSyncCmdAvailable (1<<0) /* Host -> Adapter */
2540 #define DoorBellPrintfDone (1<<5) /* Host -> Adapter */
2541 #define DoorBellAdapterNormCmdReady (1<<1) /* Adapter -> Host */
2542 #define DoorBellAdapterNormRespReady (1<<2) /* Adapter -> Host */
2543 #define DoorBellAdapterNormCmdNotFull (1<<3) /* Adapter -> Host */
2544 #define DoorBellAdapterNormRespNotFull (1<<4) /* Adapter -> Host */
2545 #define DoorBellPrintfReady (1<<5) /* Adapter -> Host */
2546 #define DoorBellAifPending (1<<6) /* Adapter -> Host */
2548 /* PMC specific outbound doorbell bits */
2549 #define PmDoorBellResponseSent (1<<1) /* Adapter -> Host */
2570 #define AifHighPriority 3 /* Highest Priority Event */
2630 return pci_channel_offline(dev->pdev) || dev->handle_pci_error; in aac_pci_offline()
2636 return -1; in aac_adapter_check_health()
2638 return (dev)->a_ops.adapter_check_health(dev); in aac_adapter_check_health()
2646 schedule_delayed_work(&dev->safw_rescan_work, AAC_RESCAN_DELAY); in aac_schedule_safw_scan_worker()
2651 schedule_delayed_work(&dev->src_reinit_aif_worker, AAC_RESCAN_DELAY); in aac_schedule_src_reinit_aif_worker()
2659 wait_event(dev->scsi_host_ptr->host_wait, in aac_safw_rescan_worker()
2660 !scsi_host_in_recovery(dev->scsi_host_ptr)); in aac_safw_rescan_worker()
2667 cancel_delayed_work_sync(&dev->safw_rescan_work); in aac_cancel_rescan_worker()
2668 cancel_delayed_work_sync(&dev->src_reinit_aif_worker); in aac_cancel_rescan_worker()
2704 int aac_fib_send(u16 command, struct fib * context, unsigned long size, int priority, int wait, int…
2711 #define fib_data(fibctx) ((void *)(fibctx)->hw_fib_va->data)
2720 #define shost_to_class(shost) &shost->shost_dev
2752 u16 device = dev->pdev->device; in aac_is_src()
2763 return (dev->adapter_info.options & AAC_OPT_NEW_COMM_64); in aac_supports_2T()