Symbol: acb
sys/dev/disk/advansys/adwcam.c
106
static __inline struct acb*
sys/dev/disk/advansys/adwcam.c
109
struct acb* acb;
sys/dev/disk/advansys/adwcam.c
1096
adw->max_acbs * sizeof(struct acb),
sys/dev/disk/advansys/adwcam.c
1115
adw->max_acbs * sizeof(struct acb),
sys/dev/disk/advansys/adwcam.c
1119
bzero(adw->acbs, adw->max_acbs * sizeof(struct acb));
sys/dev/disk/advansys/adwcam.c
112
if ((acb = SLIST_FIRST(&adw->free_acb_list)) != NULL) {
sys/dev/disk/advansys/adwcam.c
116
acb = SLIST_FIRST(&adw->free_acb_list);
sys/dev/disk/advansys/adwcam.c
117
if (acb == NULL)
sys/dev/disk/advansys/adwcam.c
125
return (acb);
sys/dev/disk/advansys/adwcam.c
1266
struct acb *acb;
sys/dev/disk/advansys/adwcam.c
1280
acb = acbbotov(adw, adw->responseq->areq_ba);
sys/dev/disk/advansys/adwcam.c
129
adwfreeacb(struct adw_softc *adw, struct acb *acb)
sys/dev/disk/advansys/adwcam.c
1294
ccb = acb->ccb;
sys/dev/disk/advansys/adwcam.c
1303
bus_dmamap_sync(adw->buffer_dmat, acb->dmamap, op);
sys/dev/disk/advansys/adwcam.c
1304
bus_dmamap_unload(adw->buffer_dmat, acb->dmamap);
sys/dev/disk/advansys/adwcam.c
1305
ccb->csio.resid = acb->queue.data_cnt;
sys/dev/disk/advansys/adwcam.c
1310
if (acb->queue.host_status == QHSTA_NO_ERROR
sys/dev/disk/advansys/adwcam.c
1311
&& (acb->queue.done_status == QD_NO_ERROR
sys/dev/disk/advansys/adwcam.c
1312
|| acb->queue.done_status == QD_WITH_ERROR)) {
sys/dev/disk/advansys/adwcam.c
1313
ccb->csio.scsi_status = acb->queue.scsi_status;
sys/dev/disk/advansys/adwcam.c
132
if ((acb->state & ACB_ACTIVE) != 0)
sys/dev/disk/advansys/adwcam.c
1321
bcopy(&acb->sense_data, &ccb->csio.sense_data,
sys/dev/disk/advansys/adwcam.c
1324
ccb->csio.sense_resid = acb->queue.sense_len;
sys/dev/disk/advansys/adwcam.c
133
LIST_REMOVE(&acb->ccb->ccb_h, sim_links.le);
sys/dev/disk/advansys/adwcam.c
1332
adwfreeacb(adw, acb);
sys/dev/disk/advansys/adwcam.c
1335
adwprocesserror(adw, acb);
sys/dev/disk/advansys/adwcam.c
134
if ((acb->state & ACB_RELEASE_SIMQ) != 0)
sys/dev/disk/advansys/adwcam.c
1341
adwprocesserror(struct adw_softc *adw, struct acb *acb)
sys/dev/disk/advansys/adwcam.c
1345
ccb = acb->ccb;
sys/dev/disk/advansys/adwcam.c
1346
if (acb->queue.done_status == QD_ABORTED_BY_HOST) {
sys/dev/disk/advansys/adwcam.c
135
acb->ccb->ccb_h.status |= CAM_RELEASE_SIMQ;
sys/dev/disk/advansys/adwcam.c
1350
switch (acb->queue.host_status) {
sys/dev/disk/advansys/adwcam.c
137
&& (acb->ccb->ccb_h.status & CAM_RELEASE_SIMQ) == 0) {
sys/dev/disk/advansys/adwcam.c
138
acb->ccb->ccb_h.status |= CAM_RELEASE_SIMQ;
sys/dev/disk/advansys/adwcam.c
1409
ccb->csio.scsi_status = acb->queue.scsi_status;
sys/dev/disk/advansys/adwcam.c
141
acb->state = ACB_FREE;
sys/dev/disk/advansys/adwcam.c
1414
adw_name(adw), acb->queue.host_status);
sys/dev/disk/advansys/adwcam.c
1418
if ((acb->state & ACB_RECOVERY_ACB) != 0) {
sys/dev/disk/advansys/adwcam.c
142
SLIST_INSERT_HEAD(&adw->free_acb_list, acb, links);
sys/dev/disk/advansys/adwcam.c
1427
adwfreeacb(adw, acb);
sys/dev/disk/advansys/adwcam.c
1434
struct acb *acb;
sys/dev/disk/advansys/adwcam.c
1440
acb = (struct acb *)arg;
sys/dev/disk/advansys/adwcam.c
1441
ccb = acb->ccb;
sys/dev/disk/advansys/adwcam.c
1444
kprintf("ACB %p - timed out\n", (void *)acb);
sys/dev/disk/advansys/adwcam.c
1448
if ((acb->state & ACB_ACTIVE) == 0) {
sys/dev/disk/advansys/adwcam.c
1451
(void *)acb);
sys/dev/disk/advansys/adwcam.c
1456
acb->state |= ACB_RECOVERY_ACB;
sys/dev/disk/advansys/adwcam.c
185
struct acb *next_acb;
sys/dev/disk/advansys/adwcam.c
212
acbvtob(adw, next_acb) + offsetof(struct acb, sense_data);
sys/dev/disk/advansys/adwcam.c
228
struct acb *acb;
sys/dev/disk/advansys/adwcam.c
232
acb = (struct acb *)arg;
sys/dev/disk/advansys/adwcam.c
233
ccb = acb->ccb;
sys/dev/disk/advansys/adwcam.c
244
adwfreeacb(adw, acb);
sys/dev/disk/advansys/adwcam.c
252
acb->queue.data_addr = dm_segs[0].ds_addr;
sys/dev/disk/advansys/adwcam.c
253
acb->queue.data_cnt = ccb->csio.dxfer_len;
sys/dev/disk/advansys/adwcam.c
263
sg_busaddr = acb->sg_busaddr;
sys/dev/disk/advansys/adwcam.c
266
for (sg_block = acb->sg_blocks;; sg_block++) {
sys/dev/disk/advansys/adwcam.c
290
acb->queue.sg_real_addr = acb->sg_busaddr;
sys/dev/disk/advansys/adwcam.c
292
acb->queue.sg_real_addr = 0;
sys/dev/disk/advansys/adwcam.c
300
bus_dmamap_sync(adw->buffer_dmat, acb->dmamap, op);
sys/dev/disk/advansys/adwcam.c
303
acb->queue.data_addr = 0;
sys/dev/disk/advansys/adwcam.c
304
acb->queue.data_cnt = 0;
sys/dev/disk/advansys/adwcam.c
305
acb->queue.sg_real_addr = 0;
sys/dev/disk/advansys/adwcam.c
316
bus_dmamap_unload(adw->buffer_dmat, acb->dmamap);
sys/dev/disk/advansys/adwcam.c
317
adwfreeacb(adw, acb);
sys/dev/disk/advansys/adwcam.c
323
acb->state |= ACB_ACTIVE;
sys/dev/disk/advansys/adwcam.c
328
adwtimeout, acb);
sys/dev/disk/advansys/adwcam.c
330
adw_send_acb(adw, acb, acbvtob(adw, acb));
sys/dev/disk/advansys/adwcam.c
350
struct acb *acb;
sys/dev/disk/advansys/adwcam.c
362
if ((acb = adwgetacb(adw)) == NULL) {
sys/dev/disk/advansys/adwcam.c
373
acb->ccb = ccb;
sys/dev/disk/advansys/adwcam.c
374
ccb->ccb_h.ccb_acb_ptr = acb;
sys/dev/disk/advansys/adwcam.c
377
acb->queue.cntl = 0;
sys/dev/disk/advansys/adwcam.c
378
acb->queue.target_cmd = 0;
sys/dev/disk/advansys/adwcam.c
379
acb->queue.target_id = ccb->ccb_h.target_id;
sys/dev/disk/advansys/adwcam.c
380
acb->queue.target_lun = ccb->ccb_h.target_lun;
sys/dev/disk/advansys/adwcam.c
382
acb->queue.mflag = 0;
sys/dev/disk/advansys/adwcam.c
383
acb->queue.sense_len =
sys/dev/disk/advansys/adwcam.c
384
MIN(csio->sense_len, sizeof(acb->sense_data));
sys/dev/disk/advansys/adwcam.c
385
acb->queue.cdb_len = csio->cdb_len;
sys/dev/disk/advansys/adwcam.c
389
acb->queue.scsi_cntl = ADW_QSC_SIMPLE_Q_TAG;
sys/dev/disk/advansys/adwcam.c
392
acb->queue.scsi_cntl = ADW_QSC_HEAD_OF_Q_TAG;
sys/dev/disk/advansys/adwcam.c
395
acb->queue.scsi_cntl = ADW_QSC_ORDERED_Q_TAG;
sys/dev/disk/advansys/adwcam.c
398
acb->queue.scsi_cntl = ADW_QSC_NO_TAGMSG;
sys/dev/disk/advansys/adwcam.c
402
acb->queue.scsi_cntl = ADW_QSC_NO_TAGMSG;
sys/dev/disk/advansys/adwcam.c
405
acb->queue.scsi_cntl |= ADW_QSC_NO_DISC;
sys/dev/disk/advansys/adwcam.c
407
acb->queue.done_status = 0;
sys/dev/disk/advansys/adwcam.c
408
acb->queue.scsi_status = 0;
sys/dev/disk/advansys/adwcam.c
409
acb->queue.host_status = 0;
sys/dev/disk/advansys/adwcam.c
410
acb->queue.sg_wk_ix = 0;
sys/dev/disk/advansys/adwcam.c
414
acb->queue.cdb, csio->cdb_len);
sys/dev/disk/advansys/adwcam.c
418
adwfreeacb(adw, acb);
sys/dev/disk/advansys/adwcam.c
424
acb->queue.cdb, csio->cdb_len);
sys/dev/disk/advansys/adwcam.c
443
acb->dmamap,
sys/dev/disk/advansys/adwcam.c
447
acb, /*flags*/0);
sys/dev/disk/advansys/adwcam.c
456
acb->state |= CAM_RELEASE_SIMQ;
sys/dev/disk/advansys/adwcam.c
466
adwexecuteacb(acb, &seg, 1, 0);
sys/dev/disk/advansys/adwcam.c
483
adwexecuteacb(acb, segs, csio->sglist_cnt,
sys/dev/disk/advansys/adwcam.c
488
adwexecuteacb(acb, NULL, 0, 0);
sys/dev/disk/advansys/adwcam.c
77
static __inline struct acb* adwgetacb(struct adw_softc *adw);
sys/dev/disk/advansys/adwcam.c
79
struct acb *acb);
sys/dev/disk/advansys/adwcam.c
93
static void adwprocesserror(struct adw_softc *adw, struct acb *acb);
sys/dev/disk/advansys/adwlib.h
426
SLIST_ENTRY(acb) links;
sys/dev/disk/advansys/adwlib.h
608
struct acb *acbs;
sys/dev/disk/advansys/adwlib.h
614
SLIST_HEAD(, acb) free_acb_list;
sys/dev/disk/advansys/adwlib.h
690
struct acb *acb);
sys/dev/disk/advansys/adwlib.h
692
struct acb *acb);
sys/dev/disk/advansys/adwlib.h
693
static __inline struct acb * acbbotov(struct adw_softc *adw,
sys/dev/disk/advansys/adwlib.h
695
static __inline struct acb * acbbtov(struct adw_softc *adw,
sys/dev/disk/advansys/adwlib.h
762
acbvtobo(struct adw_softc *adw, struct acb *acb)
sys/dev/disk/advansys/adwlib.h
764
return ((u_int32_t)((caddr_t)acb - (caddr_t)adw->acbs));
sys/dev/disk/advansys/adwlib.h
768
acbvtob(struct adw_softc *adw, struct acb *acb)
sys/dev/disk/advansys/adwlib.h
770
return (adw->acb_busbase + acbvtobo(adw, acb));
sys/dev/disk/advansys/adwlib.h
773
static __inline struct acb *
sys/dev/disk/advansys/adwlib.h
776
return ((struct acb *)((caddr_t)adw->acbs + byteoffset));
sys/dev/disk/advansys/adwlib.h
779
static __inline struct acb *
sys/dev/disk/advansys/adwlib.h
833
static __inline void adw_send_acb(struct adw_softc *adw, struct acb *acb,
sys/dev/disk/advansys/adwlib.h
853
adw_send_acb(struct adw_softc *adw, struct acb *acb, u_int32_t acb_baddr)
sys/dev/disk/advansys/adwlib.h
861
acb->queue.carrier_baddr = adw->commandq->carr_ba;
sys/dev/disk/advansys/adwlib.h
862
acb->queue.carrier_bo = adw->commandq->carr_offset;
sys/dev/disk/advansys/adwlib.h
863
adw->commandq->areq_ba = acbvtob(adw, acb);
sys/dev/raid/arcmsr/arcmsr.c
1057
static void arcmsr_post_srb(struct AdapterControlBlock *acb, struct CommandControlBlock *srb)
sys/dev/raid/arcmsr/arcmsr.c
1062
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, (srb->srb_flags & SRB_FLAG_WRITE) ? BUS_DMASYNC_POSTWRITE:BUS_DMASYNC_POSTREAD);
sys/dev/raid/arcmsr/arcmsr.c
1063
atomic_add_int(&acb->srboutstandingcount, 1);
sys/dev/raid/arcmsr/arcmsr.c
1066
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
1076
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1098
cdb_phyaddr_hi32 = acb->srb_phyaddr.B.phyadd_high;
sys/dev/raid/arcmsr/arcmsr.c
1111
struct HBD_MessageUnit0 *phbdmu = (struct HBD_MessageUnit0 *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1116
ARCMSR_LOCK_ACQUIRE(&acb->postDone_lock);
sys/dev/raid/arcmsr/arcmsr.c
1135
ARCMSR_LOCK_RELEASE(&acb->postDone_lock);
sys/dev/raid/arcmsr/arcmsr.c
1153
static struct QBUFFER *arcmsr_get_iop_rqbuffer( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1157
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
1159
struct HBA_MessageUnit *phbamu = (struct HBA_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1165
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1171
struct HBC_MessageUnit *phbcmu = (struct HBC_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1177
struct HBD_MessageUnit0 *phbdmu = (struct HBD_MessageUnit0 *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1183
struct HBE_MessageUnit *phbcmu = (struct HBE_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1195
static struct QBUFFER *arcmsr_get_iop_wqbuffer( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1199
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
1201
struct HBA_MessageUnit *phbamu = (struct HBA_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1207
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1213
struct HBC_MessageUnit *phbcmu = (struct HBC_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1219
struct HBD_MessageUnit0 *phbdmu = (struct HBD_MessageUnit0 *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1225
struct HBE_MessageUnit *phbcmu = (struct HBE_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1237
static void arcmsr_iop_message_read(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1239
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
1246
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1263
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_DATA_READ_OK;
sys/dev/raid/arcmsr/arcmsr.c
1264
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
1273
static void arcmsr_iop_message_wrote(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1275
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
1285
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1314
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_DATA_WRITE_OK;
sys/dev/raid/arcmsr/arcmsr.c
1315
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
1324
static void arcmsr_stop_hba_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1326
acb->acb_flags &= ~ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
1329
if(!arcmsr_hba_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
1331
, acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
1338
static void arcmsr_stop_hbb_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1340
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1341
acb->acb_flags &= ~ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
1343
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
1345
, acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
1352
static void arcmsr_stop_hbc_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1354
acb->acb_flags &= ~ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
1357
if(!arcmsr_hbc_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
1358
kprintf("arcmsr%d: wait 'stop adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
136
static struct CommandControlBlock *arcmsr_get_freesrb(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1365
static void arcmsr_stop_hbd_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1367
acb->acb_flags &= ~ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
1369
if(!arcmsr_hbd_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
1370
kprintf("arcmsr%d: wait 'stop adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
1377
static void arcmsr_stop_hbe_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1379
acb->acb_flags &= ~ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
1381
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_MESSAGE_CMD_DONE;
sys/dev/raid/arcmsr/arcmsr.c
1382
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
1383
if(!arcmsr_hbe_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
1384
kprintf("arcmsr%d: wait 'stop adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
1391
static void arcmsr_stop_adapter_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1393
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
1395
arcmsr_stop_hba_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
1399
arcmsr_stop_hbb_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
1403
arcmsr_stop_hbc_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
1407
arcmsr_stop_hbd_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
141
static u_int32_t arcmsr_iop_ioctlcmd(struct AdapterControlBlock *acb, u_int32_t ioctl_cmd, caddr_t arg);
sys/dev/raid/arcmsr/arcmsr.c
1411
arcmsr_stop_hbe_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
142
static void arcmsr_iop_parking(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1422
struct AdapterControlBlock *acb;
sys/dev/raid/arcmsr/arcmsr.c
1425
acb = (struct AdapterControlBlock *)cam_sim_softc(psim);
sys/dev/raid/arcmsr/arcmsr.c
1426
mutex = lockstatus(&acb->isr_lock, curthread);
sys/dev/raid/arcmsr/arcmsr.c
1428
ARCMSR_LOCK_ACQUIRE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
1429
arcmsr_interrupt(acb);
sys/dev/raid/arcmsr/arcmsr.c
1431
ARCMSR_LOCK_RELEASE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
1437
static u_int32_t arcmsr_Read_iop_rqbuffer_data_D(struct AdapterControlBlock *acb,
sys/dev/raid/arcmsr/arcmsr.c
144
static void arcmsr_interrupt(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
145
static void arcmsr_polling_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb);
sys/dev/raid/arcmsr/arcmsr.c
146
static void arcmsr_free_resource(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1464
pQbuffer = &acb->rqbuffer[acb->rqbuf_lastindex];
sys/dev/raid/arcmsr/arcmsr.c
1466
acb->rqbuf_lastindex++;
sys/dev/raid/arcmsr/arcmsr.c
1468
acb->rqbuf_lastindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
147
static void arcmsr_bus_reset(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1475
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
148
static void arcmsr_stop_adapter_bgrb(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1482
static u_int32_t arcmsr_Read_iop_rqbuffer_data(struct AdapterControlBlock *acb,
sys/dev/raid/arcmsr/arcmsr.c
1489
if(acb->adapter_type >= ACB_ADAPTER_TYPE_B) {
sys/dev/raid/arcmsr/arcmsr.c
149
static void arcmsr_start_adapter_bgrb(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1490
return(arcmsr_Read_iop_rqbuffer_data_D(acb, prbuffer));
sys/dev/raid/arcmsr/arcmsr.c
1495
pQbuffer = &acb->rqbuffer[acb->rqbuf_lastindex];
sys/dev/raid/arcmsr/arcmsr.c
1497
acb->rqbuf_lastindex++;
sys/dev/raid/arcmsr/arcmsr.c
1499
acb->rqbuf_lastindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
150
static void arcmsr_iop_init(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1504
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
151
static void arcmsr_flush_adapter_cache(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1511
static void arcmsr_iop2drv_data_wrote_handle(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1517
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
1518
prbuffer = arcmsr_get_iop_rqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
1519
my_empty_len = (acb->rqbuf_lastindex - acb->rqbuf_firstindex - 1) &
sys/dev/raid/arcmsr/arcmsr.c
152
static u_int32_t arcmsr_Read_iop_rqbuffer_data(struct AdapterControlBlock *acb, struct QBUFFER *prbuffer);
sys/dev/raid/arcmsr/arcmsr.c
1522
if(arcmsr_Read_iop_rqbuffer_data(acb, prbuffer) == 0)
sys/dev/raid/arcmsr/arcmsr.c
1523
acb->acb_flags |= ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
1525
acb->acb_flags |= ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
1527
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
153
static void arcmsr_Write_data_2iop_wqbuffer(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1533
static void arcmsr_Write_data_2iop_wqbuffer_D(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
154
static void arcmsr_abort_allcmd(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1541
if(acb->acb_flags & ACB_F_MESSAGE_WQBUFFER_READ) {
sys/dev/raid/arcmsr/arcmsr.c
1547
acb->acb_flags &= (~ACB_F_MESSAGE_WQBUFFER_READ);
sys/dev/raid/arcmsr/arcmsr.c
1548
pwbuffer = arcmsr_get_iop_wqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
1550
while((acb->wqbuf_firstindex != acb->wqbuf_lastindex)
sys/dev/raid/arcmsr/arcmsr.c
1552
pQbuffer = &acb->wqbuffer[acb->wqbuf_firstindex];
sys/dev/raid/arcmsr/arcmsr.c
1554
acb->wqbuf_firstindex++;
sys/dev/raid/arcmsr/arcmsr.c
1555
acb->wqbuf_firstindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
156
static void arcmsr_iop_reset(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1570
arcmsr_iop_message_wrote(acb);
sys/dev/raid/arcmsr/arcmsr.c
1577
static void arcmsr_Write_data_2iop_wqbuffer(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1584
if(acb->adapter_type >= ACB_ADAPTER_TYPE_B) {
sys/dev/raid/arcmsr/arcmsr.c
1585
arcmsr_Write_data_2iop_wqbuffer_D(acb);
sys/dev/raid/arcmsr/arcmsr.c
1588
if(acb->acb_flags & ACB_F_MESSAGE_WQBUFFER_READ) {
sys/dev/raid/arcmsr/arcmsr.c
1589
acb->acb_flags &= (~ACB_F_MESSAGE_WQBUFFER_READ);
sys/dev/raid/arcmsr/arcmsr.c
159
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, union ccb *pccb);
sys/dev/raid/arcmsr/arcmsr.c
1590
pwbuffer = arcmsr_get_iop_wqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
1592
while((acb->wqbuf_firstindex != acb->wqbuf_lastindex)
sys/dev/raid/arcmsr/arcmsr.c
1594
pQbuffer = &acb->wqbuffer[acb->wqbuf_firstindex];
sys/dev/raid/arcmsr/arcmsr.c
1596
acb->wqbuf_firstindex++;
sys/dev/raid/arcmsr/arcmsr.c
1597
acb->wqbuf_firstindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
1602
arcmsr_iop_message_wrote(acb);
sys/dev/raid/arcmsr/arcmsr.c
1609
static void arcmsr_iop2drv_data_read_handle(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1611
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
1612
acb->acb_flags |= ACB_F_MESSAGE_WQBUFFER_READ;
sys/dev/raid/arcmsr/arcmsr.c
1619
if(acb->wqbuf_firstindex != acb->wqbuf_lastindex) {
sys/dev/raid/arcmsr/arcmsr.c
1620
arcmsr_Write_data_2iop_wqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
1622
if(acb->wqbuf_firstindex == acb->wqbuf_lastindex) {
sys/dev/raid/arcmsr/arcmsr.c
1623
acb->acb_flags |= ACB_F_MESSAGE_WQBUFFER_CLEARED;
sys/dev/raid/arcmsr/arcmsr.c
1625
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
1645
static void arcmsr_rescan_lun(struct AdapterControlBlock *acb, int target, int lun)
sys/dev/raid/arcmsr/arcmsr.c
165
static void arcmsr_hbd_postqueue_isr(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1652
if (xpt_create_path(&path, xpt_periph, cam_sim_path(acb->psim), target, lun) != CAM_REQ_CMP)
sys/dev/raid/arcmsr/arcmsr.c
166
static void arcmsr_hbe_postqueue_isr(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1665
static void arcmsr_abort_dr_ccbs(struct AdapterControlBlock *acb, int target, int lun)
sys/dev/raid/arcmsr/arcmsr.c
167
static void arcmsr_teardown_intr(device_t dev, struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1672
intmask_org = arcmsr_disable_allintr(acb);
sys/dev/raid/arcmsr/arcmsr.c
1675
srb = acb->psrb_pool[i];
sys/dev/raid/arcmsr/arcmsr.c
1683
kprintf("arcmsr%d: abort scsi id %d lun %d srb=%p \n", acb->pci_unit, target, lun, srb);
sys/dev/raid/arcmsr/arcmsr.c
1688
arcmsr_enable_allintr(acb, intmask_org);
sys/dev/raid/arcmsr/arcmsr.c
169
static void arcmsr_dump_data(struct AdapterControlBlock *acb);
sys/dev/raid/arcmsr/arcmsr.c
1694
static void arcmsr_dr_handle(struct AdapterControlBlock *acb) {
sys/dev/raid/arcmsr/arcmsr.c
1700
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
1705
deviceMapCurrent[target]=bus_space_read_4(acb->btag[0], acb->bhandle[0], devicemap);
sys/dev/raid/arcmsr/arcmsr.c
1714
deviceMapCurrent[target]=bus_space_read_4(acb->btag[1], acb->bhandle[1], devicemap);
sys/dev/raid/arcmsr/arcmsr.c
1723
deviceMapCurrent[target]=bus_space_read_4(acb->btag[0], acb->bhandle[0], devicemap);
sys/dev/raid/arcmsr/arcmsr.c
1731
deviceMapCurrent[target]=bus_space_read_4(acb->btag[0], acb->bhandle[0], devicemap);
sys/dev/raid/arcmsr/arcmsr.c
1739
deviceMapCurrent[target]=bus_space_read_4(acb->btag[0], acb->bhandle[0], devicemap);
sys/dev/raid/arcmsr/arcmsr.c
1745
if(acb->acb_flags & ACB_F_BUS_HANG_ON)
sys/dev/raid/arcmsr/arcmsr.c
1747
acb->acb_flags &= ~ACB_F_BUS_HANG_ON;
sys/dev/raid/arcmsr/arcmsr.c
1756
if (*pDevMap != acb->device_map[target])
sys/dev/raid/arcmsr/arcmsr.c
1760
difference = *pDevMap ^ acb->device_map[target];
sys/dev/raid/arcmsr/arcmsr.c
1766
if(acb->device_map[target] & bit_check)
sys/dev/raid/arcmsr/arcmsr.c
1769
arcmsr_abort_dr_ccbs(acb, target, lun);
sys/dev/raid/arcmsr/arcmsr.c
1770
arcmsr_rescan_lun(acb, target, lun);
sys/dev/raid/arcmsr/arcmsr.c
1771
acb->devstate[target][lun] = ARECA_RAID_GONE;
sys/dev/raid/arcmsr/arcmsr.c
1776
arcmsr_rescan_lun(acb, target, lun);
sys/dev/raid/arcmsr/arcmsr.c
1777
acb->devstate[target][lun] = ARECA_RAID_GOOD;
sys/dev/raid/arcmsr/arcmsr.c
1782
acb->device_map[target] = *pDevMap;
sys/dev/raid/arcmsr/arcmsr.c
1791
static void arcmsr_hba_message_isr(struct AdapterControlBlock *acb) {
sys/dev/raid/arcmsr/arcmsr.c
1797
arcmsr_dr_handle( acb );
sys/dev/raid/arcmsr/arcmsr.c
1803
static void arcmsr_hbb_message_isr(struct AdapterControlBlock *acb) {
sys/dev/raid/arcmsr/arcmsr.c
1805
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
1811
arcmsr_dr_handle( acb );
sys/dev/raid/arcmsr/arcmsr.c
1817
static void arcmsr_hbc_message_isr(struct AdapterControlBlock *acb) {
sys/dev/raid/arcmsr/arcmsr.c
1823
arcmsr_dr_handle( acb );
sys/dev/raid/arcmsr/arcmsr.c
1829
static void arcmsr_hbd_message_isr(struct AdapterControlBlock *acb) {
sys/dev/raid/arcmsr/arcmsr.c
1835
arcmsr_dr_handle( acb );
sys/dev/raid/arcmsr/arcmsr.c
1841
static void arcmsr_hbe_message_isr(struct AdapterControlBlock *acb) {
sys/dev/raid/arcmsr/arcmsr.c
1847
arcmsr_dr_handle( acb );
sys/dev/raid/arcmsr/arcmsr.c
1853
static void arcmsr_hba_doorbell_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1867
arcmsr_iop2drv_data_wrote_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1870
arcmsr_iop2drv_data_read_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1877
static void arcmsr_hbc_doorbell_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1891
arcmsr_iop2drv_data_wrote_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1894
arcmsr_iop2drv_data_read_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1897
arcmsr_hbc_message_isr(acb); /* messenger of "driver to iop commands" */
sys/dev/raid/arcmsr/arcmsr.c
1904
static void arcmsr_hbd_doorbell_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1920
arcmsr_iop2drv_data_wrote_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1923
arcmsr_iop2drv_data_read_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1926
arcmsr_hbd_message_isr(acb); /* messenger of "driver to iop commands" */
sys/dev/raid/arcmsr/arcmsr.c
1937
static void arcmsr_hbe_doorbell_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1950
doorbell_status = in_doorbell ^ acb->in_doorbell;
sys/dev/raid/arcmsr/arcmsr.c
1952
arcmsr_iop2drv_data_wrote_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1955
arcmsr_iop2drv_data_read_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
1958
arcmsr_hbe_message_isr(acb); /* messenger of "driver to iop commands" */
sys/dev/raid/arcmsr/arcmsr.c
1960
acb->in_doorbell = in_doorbell;
sys/dev/raid/arcmsr/arcmsr.c
1966
static void arcmsr_hba_postqueue_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1976
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap,
sys/dev/raid/arcmsr/arcmsr.c
1982
arcmsr_drain_donequeue(acb, flag_srb, error);
sys/dev/raid/arcmsr/arcmsr.c
1989
static void arcmsr_hbb_postqueue_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
1991
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
2001
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap,
sys/dev/raid/arcmsr/arcmsr.c
2011
arcmsr_drain_donequeue(acb, flag_srb, error);
sys/dev/raid/arcmsr/arcmsr.c
2018
static void arcmsr_hbc_postqueue_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2028
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
sys/dev/raid/arcmsr/arcmsr.c
2035
arcmsr_drain_donequeue(acb, flag_srb, error);
sys/dev/raid/arcmsr/arcmsr.c
2072
static void arcmsr_hbd_postqueue_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2074
struct HBD_MessageUnit0 *phbdmu = (struct HBD_MessageUnit0 *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
2087
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap,
sys/dev/raid/arcmsr/arcmsr.c
2095
arcmsr_drain_donequeue(acb, addressLow, error); /*Check if command done with no error */
sys/dev/raid/arcmsr/arcmsr.c
2106
static void arcmsr_hbe_postqueue_isr(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2117
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
sys/dev/raid/arcmsr/arcmsr.c
2118
doneq_index = acb->doneq_index;
sys/dev/raid/arcmsr/arcmsr.c
2120
cmdSMID = acb->pCompletionQ[doneq_index].cmdSMID;
sys/dev/raid/arcmsr/arcmsr.c
2121
error = (acb->pCompletionQ[doneq_index].cmdFlag & ARCMSR_SRBREPLY_FLAG_ERROR_MODE1) ? TRUE : FALSE;
sys/dev/raid/arcmsr/arcmsr.c
2122
arcmsr_drain_donequeue(acb, (u_int32_t)cmdSMID, error);
sys/dev/raid/arcmsr/arcmsr.c
2124
if (doneq_index >= acb->completionQ_entry)
sys/dev/raid/arcmsr/arcmsr.c
2127
acb->doneq_index = doneq_index;
sys/dev/raid/arcmsr/arcmsr.c
2134
static void arcmsr_handle_hba_isr( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2142
outbound_intStatus = CHIP_REG_READ32(HBA_MessageUnit, 0, outbound_intstatus) & acb->outbound_int_enable;
sys/dev/raid/arcmsr/arcmsr.c
2150
arcmsr_hba_doorbell_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2154
arcmsr_hba_postqueue_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2157
arcmsr_hba_message_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2164
static void arcmsr_handle_hbb_isr( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2167
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
2173
outbound_doorbell = READ_CHIP_REG32(0, phbbmu->iop2drv_doorbell) & acb->outbound_int_enable;
sys/dev/raid/arcmsr/arcmsr.c
2183
arcmsr_iop2drv_data_wrote_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
2186
arcmsr_iop2drv_data_read_handle(acb);
sys/dev/raid/arcmsr/arcmsr.c
2190
arcmsr_hbb_postqueue_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2193
arcmsr_hbb_message_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2200
static void arcmsr_handle_hbc_isr( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2218
arcmsr_hbc_doorbell_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2222
arcmsr_hbc_postqueue_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2231
static void arcmsr_handle_hbd_isr( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2240
host_interrupt_status = CHIP_REG_READ32(HBD_MessageUnit, 0, host_int_status) & acb->outbound_int_enable;
sys/dev/raid/arcmsr/arcmsr.c
2250
arcmsr_hbd_doorbell_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2254
arcmsr_hbd_postqueue_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2264
static void arcmsr_handle_hbe_isr( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2282
arcmsr_hbe_doorbell_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2286
arcmsr_hbe_postqueue_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2295
static void arcmsr_interrupt(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2297
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
2299
arcmsr_handle_hba_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2302
arcmsr_handle_hbb_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2305
arcmsr_handle_hbc_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2308
arcmsr_handle_hbd_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2311
arcmsr_handle_hbe_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2315
" unknown adapter type =%d\n", acb->pci_unit, acb->adapter_type);
sys/dev/raid/arcmsr/arcmsr.c
232
struct AdapterControlBlock *acb = dev->si_drv1;
sys/dev/raid/arcmsr/arcmsr.c
2325
struct AdapterControlBlock *acb = (struct AdapterControlBlock *)arg;
sys/dev/raid/arcmsr/arcmsr.c
2327
arcmsr_interrupt(acb);
sys/dev/raid/arcmsr/arcmsr.c
2335
struct AdapterControlBlock *acb = (struct AdapterControlBlock *)arg;
sys/dev/raid/arcmsr/arcmsr.c
2336
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
234
if(acb == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
2342
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
2358
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_MESSAGE_CMD_DONE;
sys/dev/raid/arcmsr/arcmsr.c
2359
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
2363
if((acb->acb_flags & ACB_F_SCSISTOPADAPTER) == 0)
sys/dev/raid/arcmsr/arcmsr.c
2365
callout_reset(&acb->devmap_callout, 5 * hz, arcmsr_polling_devmap, acb); /* polling per 5 seconds */
sys/dev/raid/arcmsr/arcmsr.c
2374
static void arcmsr_iop_parking(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2378
if(acb != NULL) {
sys/dev/raid/arcmsr/arcmsr.c
2380
if(acb->acb_flags & ACB_F_MSG_START_BGRB) {
sys/dev/raid/arcmsr/arcmsr.c
2381
intmask_org = arcmsr_disable_allintr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2382
arcmsr_stop_adapter_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
2383
arcmsr_flush_adapter_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
2384
arcmsr_enable_allintr(acb, intmask_org);
sys/dev/raid/arcmsr/arcmsr.c
2393
static u_int32_t arcmsr_iop_ioctlcmd(struct AdapterControlBlock *acb, u_int32_t ioctl_cmd, caddr_t arg)
sys/dev/raid/arcmsr/arcmsr.c
2402
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2409
while((acb->rqbuf_firstindex != acb->rqbuf_lastindex)
sys/dev/raid/arcmsr/arcmsr.c
2412
pQbuffer = &acb->rqbuffer[acb->rqbuf_firstindex];
sys/dev/raid/arcmsr/arcmsr.c
2414
acb->rqbuf_firstindex++;
sys/dev/raid/arcmsr/arcmsr.c
2415
acb->rqbuf_firstindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
2420
if(acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2423
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2424
prbuffer = arcmsr_get_iop_rqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
2425
if(arcmsr_Read_iop_rqbuffer_data(acb, prbuffer) == 0)
sys/dev/raid/arcmsr/arcmsr.c
2426
acb->acb_flags |= ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2440
wqbuf_lastindex = acb->wqbuf_lastindex;
sys/dev/raid/arcmsr/arcmsr.c
2441
wqbuf_firstindex = acb->wqbuf_firstindex;
sys/dev/raid/arcmsr/arcmsr.c
2443
arcmsr_Write_data_2iop_wqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
2451
pQbuffer = &acb->wqbuffer[acb->wqbuf_lastindex];
sys/dev/raid/arcmsr/arcmsr.c
2453
acb->wqbuf_lastindex++;
sys/dev/raid/arcmsr/arcmsr.c
2454
acb->wqbuf_lastindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
2460
if(acb->acb_flags & ACB_F_MESSAGE_WQBUFFER_CLEARED) {
sys/dev/raid/arcmsr/arcmsr.c
2461
acb->acb_flags &= ~ACB_F_MESSAGE_WQBUFFER_CLEARED;
sys/dev/raid/arcmsr/arcmsr.c
2462
arcmsr_Write_data_2iop_wqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
247
struct AdapterControlBlock *acb = dev->si_drv1;
sys/dev/raid/arcmsr/arcmsr.c
2473
u_int8_t *pQbuffer = acb->rqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2475
if(acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2476
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2477
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
2480
acb->acb_flags |= ACB_F_MESSAGE_RQBUFFER_CLEARED;
sys/dev/raid/arcmsr/arcmsr.c
2481
acb->rqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2482
acb->rqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
249
if(acb == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
2490
u_int8_t *pQbuffer = acb->wqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2492
if(acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2493
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2494
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
2497
acb->acb_flags |= (ACB_F_MESSAGE_WQBUFFER_CLEARED|ACB_F_MESSAGE_WQBUFFER_READ);
sys/dev/raid/arcmsr/arcmsr.c
2498
acb->wqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2499
acb->wqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2508
if(acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2509
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2510
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
2513
acb->acb_flags |= (ACB_F_MESSAGE_WQBUFFER_CLEARED
sys/dev/raid/arcmsr/arcmsr.c
2516
acb->rqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2517
acb->rqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2518
acb->wqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2519
acb->wqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2520
pQbuffer = acb->rqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2522
pQbuffer = acb->wqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2539
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2547
arcmsr_iop_parking(acb);
sys/dev/raid/arcmsr/arcmsr.c
2552
arcmsr_flush_adapter_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
2557
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2566
struct AdapterControlBlock *acb;
sys/dev/raid/arcmsr/arcmsr.c
2568
acb = srb->acb;
sys/dev/raid/arcmsr/arcmsr.c
2569
ARCMSR_LOCK_ACQUIRE(&acb->srb_lock);
sys/dev/raid/arcmsr/arcmsr.c
2572
acb->srbworkingQ[acb->workingsrb_doneindex] = srb;
sys/dev/raid/arcmsr/arcmsr.c
2573
acb->workingsrb_doneindex++;
sys/dev/raid/arcmsr/arcmsr.c
2574
acb->workingsrb_doneindex %= ARCMSR_MAX_FREESRB_NUM;
sys/dev/raid/arcmsr/arcmsr.c
2575
ARCMSR_LOCK_RELEASE(&acb->srb_lock);
sys/dev/raid/arcmsr/arcmsr.c
2581
static struct CommandControlBlock *arcmsr_get_freesrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2586
ARCMSR_LOCK_ACQUIRE(&acb->srb_lock);
sys/dev/raid/arcmsr/arcmsr.c
2587
workingsrb_doneindex = acb->workingsrb_doneindex;
sys/dev/raid/arcmsr/arcmsr.c
2588
workingsrb_startindex = acb->workingsrb_startindex;
sys/dev/raid/arcmsr/arcmsr.c
2589
srb = acb->srbworkingQ[workingsrb_startindex];
sys/dev/raid/arcmsr/arcmsr.c
2593
acb->workingsrb_startindex = workingsrb_startindex;
sys/dev/raid/arcmsr/arcmsr.c
2597
ARCMSR_LOCK_RELEASE(&acb->srb_lock);
sys/dev/raid/arcmsr/arcmsr.c
2604
static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, union ccb *pccb)
sys/dev/raid/arcmsr/arcmsr.c
2632
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2633
while ((acb->rqbuf_firstindex != acb->rqbuf_lastindex)
sys/dev/raid/arcmsr/arcmsr.c
2635
pQbuffer = &acb->rqbuffer[acb->rqbuf_firstindex];
sys/dev/raid/arcmsr/arcmsr.c
2637
acb->rqbuf_firstindex++;
sys/dev/raid/arcmsr/arcmsr.c
2638
acb->rqbuf_firstindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
264
struct AdapterControlBlock *acb = dev->si_drv1;
sys/dev/raid/arcmsr/arcmsr.c
2642
if (acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2645
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2646
prbuffer = arcmsr_get_iop_rqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
2647
if(arcmsr_Read_iop_rqbuffer_data(acb, prbuffer) == 0)
sys/dev/raid/arcmsr/arcmsr.c
2648
acb->acb_flags |= ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2653
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
266
if(acb == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
2662
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2663
wqbuf_lastindex = acb->wqbuf_lastindex;
sys/dev/raid/arcmsr/arcmsr.c
2664
wqbuf_firstindex = acb->wqbuf_firstindex;
sys/dev/raid/arcmsr/arcmsr.c
2666
arcmsr_Write_data_2iop_wqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
2684
pQbuffer = &acb->wqbuffer[acb->wqbuf_lastindex];
sys/dev/raid/arcmsr/arcmsr.c
2686
acb->wqbuf_lastindex++;
sys/dev/raid/arcmsr/arcmsr.c
2687
acb->wqbuf_lastindex %= ARCMSR_MAX_QBUFFER;
sys/dev/raid/arcmsr/arcmsr.c
269
return (arcmsr_iop_ioctlcmd(acb, ioctl_cmd, arg));
sys/dev/raid/arcmsr/arcmsr.c
2691
if (acb->acb_flags & ACB_F_MESSAGE_WQBUFFER_CLEARED) {
sys/dev/raid/arcmsr/arcmsr.c
2692
acb->acb_flags &=
sys/dev/raid/arcmsr/arcmsr.c
2694
arcmsr_Write_data_2iop_wqbuffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
2711
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2715
u_int8_t *pQbuffer = acb->rqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2717
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2718
if (acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2719
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2720
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
2722
acb->acb_flags |= ACB_F_MESSAGE_RQBUFFER_CLEARED;
sys/dev/raid/arcmsr/arcmsr.c
2723
acb->rqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2724
acb->rqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2728
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2732
u_int8_t *pQbuffer = acb->wqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2734
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2735
if (acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2736
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2737
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
2739
acb->acb_flags |=
sys/dev/raid/arcmsr/arcmsr.c
2742
acb->wqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2743
acb->wqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2747
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
275
static u_int32_t arcmsr_disable_allintr( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2753
ARCMSR_LOCK_ACQUIRE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2754
if (acb->acb_flags & ACB_F_IOPDATA_OVERFLOW) {
sys/dev/raid/arcmsr/arcmsr.c
2755
acb->acb_flags &= ~ACB_F_IOPDATA_OVERFLOW;
sys/dev/raid/arcmsr/arcmsr.c
2756
arcmsr_iop_message_read(acb);
sys/dev/raid/arcmsr/arcmsr.c
2758
acb->acb_flags |=
sys/dev/raid/arcmsr/arcmsr.c
2762
acb->rqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2763
acb->rqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2764
acb->wqbuf_firstindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2765
acb->wqbuf_lastindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
2766
pQbuffer = acb->rqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2768
pQbuffer = acb->wqbuffer;
sys/dev/raid/arcmsr/arcmsr.c
2771
ARCMSR_LOCK_RELEASE(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
2787
arcmsr_iop_parking(acb);
sys/dev/raid/arcmsr/arcmsr.c
279
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
2790
arcmsr_flush_adapter_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
2805
struct AdapterControlBlock *acb = (struct AdapterControlBlock *)srb->acb;
sys/dev/raid/arcmsr/arcmsr.c
2812
acb->pktRequestCount++;
sys/dev/raid/arcmsr/arcmsr.c
2817
, acb->pci_unit, error);
sys/dev/raid/arcmsr/arcmsr.c
2830
if(acb->acb_flags & ACB_F_BUS_RESET) {
sys/dev/raid/arcmsr/arcmsr.c
2831
kprintf("arcmsr%d: bus reset and return busy \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
2836
if(acb->devstate[target][lun] == ARECA_RAID_GONE) {
sys/dev/raid/arcmsr/arcmsr.c
2844
, acb->pci_unit, cmd, target, lun);
sys/dev/raid/arcmsr/arcmsr.c
2852
ARCMSR_LOCK_ACQUIRE(&acb->io_lock);
sys/dev/raid/arcmsr/arcmsr.c
2853
bus_dmamap_unload(acb->dm_segs_dmat, srb->dm_segs_dmamap);
sys/dev/raid/arcmsr/arcmsr.c
2854
ARCMSR_LOCK_RELEASE(&acb->io_lock);
sys/dev/raid/arcmsr/arcmsr.c
2859
if(acb->srboutstandingcount >= acb->maxOutstanding) {
sys/dev/raid/arcmsr/arcmsr.c
2860
if((acb->acb_flags & ACB_F_CAM_DEV_QFRZN) == 0)
sys/dev/raid/arcmsr/arcmsr.c
2862
xpt_freeze_simq(acb->psim, 1);
sys/dev/raid/arcmsr/arcmsr.c
2863
acb->acb_flags |= ACB_F_CAM_DEV_QFRZN;
sys/dev/raid/arcmsr/arcmsr.c
287
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
2872
arcmsr_post_srb(acb, srb);
sys/dev/raid/arcmsr/arcmsr.c
2875
callout_init_lk(&srb->ccb_callout, &srb->acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
2887
struct AdapterControlBlock *acb = (struct AdapterControlBlock *) abortccb->ccb_h.arcmsr_ccbacb_ptr;
sys/dev/raid/arcmsr/arcmsr.c
2891
acb->num_aborts++;
sys/dev/raid/arcmsr/arcmsr.c
2901
if(acb->srboutstandingcount != 0) {
sys/dev/raid/arcmsr/arcmsr.c
2903
intmask_org = arcmsr_disable_allintr(acb);
sys/dev/raid/arcmsr/arcmsr.c
2905
srb = acb->psrb_pool[i];
sys/dev/raid/arcmsr/arcmsr.c
2911
, acb->pci_unit, abortccb->ccb_h.target_id
sys/dev/raid/arcmsr/arcmsr.c
2913
arcmsr_polling_srbdone(acb, srb);
sys/dev/raid/arcmsr/arcmsr.c
2915
arcmsr_enable_allintr(acb, intmask_org);
sys/dev/raid/arcmsr/arcmsr.c
2921
arcmsr_enable_allintr(acb, intmask_org);
sys/dev/raid/arcmsr/arcmsr.c
2929
static void arcmsr_bus_reset(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
2933
acb->num_resets++;
sys/dev/raid/arcmsr/arcmsr.c
2934
acb->acb_flags |= ACB_F_BUS_RESET;
sys/dev/raid/arcmsr/arcmsr.c
2935
while(acb->srboutstandingcount != 0 && retry < 400) {
sys/dev/raid/arcmsr/arcmsr.c
2936
arcmsr_interrupt(acb);
sys/dev/raid/arcmsr/arcmsr.c
2940
arcmsr_iop_reset(acb);
sys/dev/raid/arcmsr/arcmsr.c
2941
acb->acb_flags &= ~ACB_F_BUS_RESET;
sys/dev/raid/arcmsr/arcmsr.c
2947
static void arcmsr_handle_virtual_command(struct AdapterControlBlock *acb,
sys/dev/raid/arcmsr/arcmsr.c
2978
if (arcmsr_iop_message_xfer(acb, pccb)) {
sys/dev/raid/arcmsr/arcmsr.c
2995
struct AdapterControlBlock *acb;
sys/dev/raid/arcmsr/arcmsr.c
2997
acb = (struct AdapterControlBlock *) cam_sim_softc(psim);
sys/dev/raid/arcmsr/arcmsr.c
2998
if(acb == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
3010
arcmsr_handle_virtual_command(acb, pccb);
sys/dev/raid/arcmsr/arcmsr.c
3013
if((srb = arcmsr_get_freesrb(acb)) == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
3019
pccb->ccb_h.arcmsr_ccbacb_ptr = acb;
sys/dev/raid/arcmsr/arcmsr.c
3029
ARCMSR_LOCK_ACQUIRE(&acb->io_lock);
sys/dev/raid/arcmsr/arcmsr.c
3030
error = bus_dmamap_load(acb->dm_segs_dmat
sys/dev/raid/arcmsr/arcmsr.c
3035
ARCMSR_LOCK_RELEASE(&acb->io_lock);
sys/dev/raid/arcmsr/arcmsr.c
3037
xpt_freeze_simq(acb->psim, 1);
sys/dev/raid/arcmsr/arcmsr.c
3090
if(acb->adapter_bus_speed == ACB_BUS_SPEED_12G)
sys/dev/raid/arcmsr/arcmsr.c
3092
else if(acb->adapter_bus_speed == ACB_BUS_SPEED_6G)
sys/dev/raid/arcmsr/arcmsr.c
3096
if((acb->vendor_device_id == PCIDevVenIDARC1880) ||
sys/dev/raid/arcmsr/arcmsr.c
3097
(acb->vendor_device_id == PCIDevVenIDARC1884) ||
sys/dev/raid/arcmsr/arcmsr.c
3098
(acb->vendor_device_id == PCIDevVenIDARC1680) ||
sys/dev/raid/arcmsr/arcmsr.c
3099
(acb->vendor_device_id == PCIDevVenIDARC1214))
sys/dev/raid/arcmsr/arcmsr.c
3148
arcmsr_bus_reset(acb);
sys/dev/raid/arcmsr/arcmsr.c
3180
if((acb->vendor_device_id == PCIDevVenIDARC1880) ||
sys/dev/raid/arcmsr/arcmsr.c
3181
(acb->vendor_device_id == PCIDevVenIDARC1884) ||
sys/dev/raid/arcmsr/arcmsr.c
3182
(acb->vendor_device_id == PCIDevVenIDARC1680) ||
sys/dev/raid/arcmsr/arcmsr.c
3183
(acb->vendor_device_id == PCIDevVenIDARC1214))
sys/dev/raid/arcmsr/arcmsr.c
319
static void arcmsr_enable_allintr( struct AdapterControlBlock *acb, u_int32_t intmask_org)
sys/dev/raid/arcmsr/arcmsr.c
3190
if (acb->adapter_bus_speed == ACB_BUS_SPEED_12G)
sys/dev/raid/arcmsr/arcmsr.c
3192
else if(acb->adapter_bus_speed == ACB_BUS_SPEED_6G)
sys/dev/raid/arcmsr/arcmsr.c
3194
else if(acb->adapter_bus_speed == ACB_BUS_SPEED_3G)
sys/dev/raid/arcmsr/arcmsr.c
3204
if (acb->adapter_bus_speed == ACB_BUS_SPEED_6G)
sys/dev/raid/arcmsr/arcmsr.c
323
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
3244
static void arcmsr_start_hba_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3246
acb->acb_flags |= ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
3248
if(!arcmsr_hba_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3249
kprintf("arcmsr%d: wait 'start adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3256
static void arcmsr_start_hbb_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3258
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
3259
acb->acb_flags |= ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
3261
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3262
kprintf( "arcmsr%d: wait 'start adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3269
static void arcmsr_start_hbc_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3271
acb->acb_flags |= ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
3274
if(!arcmsr_hbc_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3275
kprintf("arcmsr%d: wait 'start adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
328
acb->outbound_int_enable = ~(intmask_org & mask) & 0x000000ff;
sys/dev/raid/arcmsr/arcmsr.c
3282
static void arcmsr_start_hbd_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3284
acb->acb_flags |= ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
3286
if(!arcmsr_hbd_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3287
kprintf("arcmsr%d: wait 'start adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3294
static void arcmsr_start_hbe_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3296
acb->acb_flags |= ACB_F_MSG_START_BGRB;
sys/dev/raid/arcmsr/arcmsr.c
3298
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_MESSAGE_CMD_DONE;
sys/dev/raid/arcmsr/arcmsr.c
3299
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
3300
if(!arcmsr_hbe_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3301
kprintf("arcmsr%d: wait 'start adapter background rebulid' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3308
static void arcmsr_start_adapter_bgrb(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3310
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
3312
arcmsr_start_hba_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
3315
arcmsr_start_hbb_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
3318
arcmsr_start_hbc_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
332
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
3321
arcmsr_start_hbd_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
3324
arcmsr_start_hbe_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
3333
static void arcmsr_polling_hba_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
sys/dev/raid/arcmsr/arcmsr.c
3341
outbound_intstatus=CHIP_REG_READ32(HBA_MessageUnit, 0, outbound_intstatus) & acb->outbound_int_enable;
sys/dev/raid/arcmsr/arcmsr.c
3343
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
sys/dev/raid/arcmsr/arcmsr.c
3359
(acb->vir2phy_offset+(flag_srb << 5));/*frame must be 32 bytes aligned*/
sys/dev/raid/arcmsr/arcmsr.c
336
acb->outbound_int_enable = (intmask_org | mask) & 0x0000000f;
sys/dev/raid/arcmsr/arcmsr.c
3362
if((srb->acb != acb) || (srb->srb_state != ARCMSR_SRB_START)) {
sys/dev/raid/arcmsr/arcmsr.c
3366
, acb->pci_unit
sys/dev/raid/arcmsr/arcmsr.c
3375
, acb->pci_unit
sys/dev/raid/arcmsr/arcmsr.c
3376
, srb, acb->srboutstandingcount);
sys/dev/raid/arcmsr/arcmsr.c
3379
arcmsr_report_srb_state(acb, srb, error);
sys/dev/raid/arcmsr/arcmsr.c
3387
static void arcmsr_polling_hbb_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
sys/dev/raid/arcmsr/arcmsr.c
3389
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
3398
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
sys/dev/raid/arcmsr/arcmsr.c
3418
(acb->vir2phy_offset+(flag_srb << 5));/*frame must be 32 bytes aligned*/
sys/dev/raid/arcmsr/arcmsr.c
3421
if((srb->acb != acb) || (srb->srb_state != ARCMSR_SRB_START)) {
sys/dev/raid/arcmsr/arcmsr.c
3425
, acb->pci_unit
sys/dev/raid/arcmsr/arcmsr.c
343
acb->outbound_int_enable = ~(intmask_org & mask) & 0x0000000f;
sys/dev/raid/arcmsr/arcmsr.c
3434
, acb->pci_unit
sys/dev/raid/arcmsr/arcmsr.c
3435
, srb, acb->srboutstandingcount);
sys/dev/raid/arcmsr/arcmsr.c
3438
arcmsr_report_srb_state(acb, srb, error);
sys/dev/raid/arcmsr/arcmsr.c
3446
static void arcmsr_polling_hbc_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
sys/dev/raid/arcmsr/arcmsr.c
3454
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
sys/dev/raid/arcmsr/arcmsr.c
3464
if (acb->srboutstandingcount == 0) {
sys/dev/raid/arcmsr/arcmsr.c
3472
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb & 0xFFFFFFE0));/*frame must be 32 bytes aligned*/
sys/dev/raid/arcmsr/arcmsr.c
3476
if((srb->acb != acb) || (srb->srb_state != ARCMSR_SRB_START)) {
sys/dev/raid/arcmsr/arcmsr.c
3479
, acb->pci_unit, srb->pccb->ccb_h.target_id, (uintmax_t)srb->pccb->ccb_h.target_lun, srb);
sys/dev/raid/arcmsr/arcmsr.c
3485
, acb->pci_unit, srb, acb->srboutstandingcount);
sys/dev/raid/arcmsr/arcmsr.c
3488
arcmsr_report_srb_state(acb, srb, error);
sys/dev/raid/arcmsr/arcmsr.c
3496
static void arcmsr_polling_hbd_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
sys/dev/raid/arcmsr/arcmsr.c
3498
struct HBD_MessageUnit0 *phbdmu = (struct HBD_MessageUnit0 *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
3506
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
sys/dev/raid/arcmsr/arcmsr.c
351
acb->outbound_int_enable = mask;
sys/dev/raid/arcmsr/arcmsr.c
3518
if (acb->srboutstandingcount == 0) {
sys/dev/raid/arcmsr/arcmsr.c
3527
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb & 0xFFFFFFE0));/*frame must be 32 bytes aligned*/
sys/dev/raid/arcmsr/arcmsr.c
3532
if((srb->acb != acb) || (srb->srb_state != ARCMSR_SRB_START)) {
sys/dev/raid/arcmsr/arcmsr.c
3535
, acb->pci_unit, srb->pccb->ccb_h.target_id, (uintmax_t)srb->pccb->ccb_h.target_lun, srb);
sys/dev/raid/arcmsr/arcmsr.c
3541
, acb->pci_unit, srb, acb->srboutstandingcount);
sys/dev/raid/arcmsr/arcmsr.c
3544
arcmsr_report_srb_state(acb, srb, error);
sys/dev/raid/arcmsr/arcmsr.c
3552
static void arcmsr_polling_hbe_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
sys/dev/raid/arcmsr/arcmsr.c
3560
bus_dmamap_sync(acb->srb_dmat, acb->srb_dmamap, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
sys/dev/raid/arcmsr/arcmsr.c
3562
doneq_index = acb->doneq_index;
sys/dev/raid/arcmsr/arcmsr.c
3571
if (acb->srboutstandingcount == 0) {
sys/dev/raid/arcmsr/arcmsr.c
3577
cmdSMID = acb->pCompletionQ[doneq_index].cmdSMID;
sys/dev/raid/arcmsr/arcmsr.c
3579
if (doneq_index >= acb->completionQ_entry)
sys/dev/raid/arcmsr/arcmsr.c
358
acb->outbound_int_enable = ~(intmask_org & mask) & 0x0000000f;
sys/dev/raid/arcmsr/arcmsr.c
3581
acb->doneq_index = doneq_index;
sys/dev/raid/arcmsr/arcmsr.c
3582
srb = acb->psrb_pool[cmdSMID];
sys/dev/raid/arcmsr/arcmsr.c
3583
error = (acb->pCompletionQ[doneq_index].cmdFlag & ARCMSR_SRBREPLY_FLAG_ERROR_MODE1) ? TRUE : FALSE;
sys/dev/raid/arcmsr/arcmsr.c
3586
if((srb->acb != acb) || (srb->srb_state != ARCMSR_SRB_START)) {
sys/dev/raid/arcmsr/arcmsr.c
3589
, acb->pci_unit, srb->pccb->ccb_h.target_id, (uintmax_t)srb->pccb->ccb_h.target_lun, srb);
sys/dev/raid/arcmsr/arcmsr.c
3595
, acb->pci_unit, srb, acb->srboutstandingcount);
sys/dev/raid/arcmsr/arcmsr.c
3598
arcmsr_report_srb_state(acb, srb, error);
sys/dev/raid/arcmsr/arcmsr.c
3606
static void arcmsr_polling_srbdone(struct AdapterControlBlock *acb, struct CommandControlBlock *poll_srb)
sys/dev/raid/arcmsr/arcmsr.c
3608
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
3610
arcmsr_polling_hba_srbdone(acb, poll_srb);
sys/dev/raid/arcmsr/arcmsr.c
3614
arcmsr_polling_hbb_srbdone(acb, poll_srb);
sys/dev/raid/arcmsr/arcmsr.c
3618
arcmsr_polling_hbc_srbdone(acb, poll_srb);
sys/dev/raid/arcmsr/arcmsr.c
3622
arcmsr_polling_hbd_srbdone(acb, poll_srb);
sys/dev/raid/arcmsr/arcmsr.c
3626
arcmsr_polling_hbe_srbdone(acb, poll_srb);
sys/dev/raid/arcmsr/arcmsr.c
3635
static void arcmsr_get_hba_config(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3637
char *acb_firm_model = acb->firm_model;
sys/dev/raid/arcmsr/arcmsr.c
3638
char *acb_firm_version = acb->firm_version;
sys/dev/raid/arcmsr/arcmsr.c
3639
char *acb_device_map = acb->device_map;
sys/dev/raid/arcmsr/arcmsr.c
3646
if(!arcmsr_hba_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3647
kprintf("arcmsr%d: wait 'get adapter firmware miscellaneous data' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3651
*acb_firm_model = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_model+i);
sys/dev/raid/arcmsr/arcmsr.c
3658
*acb_firm_version = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_version+i);
sys/dev/raid/arcmsr/arcmsr.c
3665
*acb_device_map = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_device_map+i);
sys/dev/raid/arcmsr/arcmsr.c
3669
kprintf("Areca RAID adapter%d: %s F/W version %s \n", acb->pci_unit, acb->firm_model, acb->firm_version);
sys/dev/raid/arcmsr/arcmsr.c
367
static u_int8_t arcmsr_hba_wait_msgint_ready(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3670
acb->firm_request_len = CHIP_REG_READ32(HBA_MessageUnit, 0, msgcode_rwbuffer[1]); /*firm_request_len, 1, 04-07*/
sys/dev/raid/arcmsr/arcmsr.c
3671
acb->firm_numbers_queue = CHIP_REG_READ32(HBA_MessageUnit, 0, msgcode_rwbuffer[2]); /*firm_numbers_queue, 2, 08-11*/
sys/dev/raid/arcmsr/arcmsr.c
3672
acb->firm_sdram_size = CHIP_REG_READ32(HBA_MessageUnit, 0, msgcode_rwbuffer[3]); /*firm_sdram_size, 3, 12-15*/
sys/dev/raid/arcmsr/arcmsr.c
3673
acb->firm_ide_channels = CHIP_REG_READ32(HBA_MessageUnit, 0, msgcode_rwbuffer[4]); /*firm_ide_channels, 4, 16-19*/
sys/dev/raid/arcmsr/arcmsr.c
3674
acb->firm_cfg_version = CHIP_REG_READ32(HBA_MessageUnit, 0, msgcode_rwbuffer[ARCMSR_FW_CFGVER_OFFSET]); /*firm_cfg_version, 25, */
sys/dev/raid/arcmsr/arcmsr.c
3675
if(acb->firm_numbers_queue > ARCMSR_MAX_OUTSTANDING_CMD)
sys/dev/raid/arcmsr/arcmsr.c
3676
acb->maxOutstanding = ARCMSR_MAX_OUTSTANDING_CMD - 1;
sys/dev/raid/arcmsr/arcmsr.c
3678
acb->maxOutstanding = acb->firm_numbers_queue - 1;
sys/dev/raid/arcmsr/arcmsr.c
3684
static void arcmsr_get_hbb_config(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3686
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
3687
char *acb_firm_model = acb->firm_model;
sys/dev/raid/arcmsr/arcmsr.c
3688
char *acb_firm_version = acb->firm_version;
sys/dev/raid/arcmsr/arcmsr.c
3689
char *acb_device_map = acb->device_map;
sys/dev/raid/arcmsr/arcmsr.c
3696
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3697
kprintf( "arcmsr%d: wait" "'get adapter firmware miscellaneous data' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3701
*acb_firm_model = bus_space_read_1(acb->btag[1], acb->bhandle[1], iop_firm_model+i);
sys/dev/raid/arcmsr/arcmsr.c
3708
*acb_firm_version = bus_space_read_1(acb->btag[1], acb->bhandle[1], iop_firm_version+i);
sys/dev/raid/arcmsr/arcmsr.c
3715
*acb_device_map = bus_space_read_1(acb->btag[1], acb->bhandle[1], iop_device_map+i);
sys/dev/raid/arcmsr/arcmsr.c
3719
kprintf("Areca RAID adapter%d: %s F/W version %s \n", acb->pci_unit, acb->firm_model, acb->firm_version);
sys/dev/raid/arcmsr/arcmsr.c
3720
acb->firm_request_len = CHIP_REG_READ32(HBB_RWBUFFER, 1, msgcode_rwbuffer[1]); /*firm_request_len, 1, 04-07*/
sys/dev/raid/arcmsr/arcmsr.c
3721
acb->firm_numbers_queue = CHIP_REG_READ32(HBB_RWBUFFER, 1, msgcode_rwbuffer[2]); /*firm_numbers_queue, 2, 08-11*/
sys/dev/raid/arcmsr/arcmsr.c
3722
acb->firm_sdram_size = CHIP_REG_READ32(HBB_RWBUFFER, 1, msgcode_rwbuffer[3]); /*firm_sdram_size, 3, 12-15*/
sys/dev/raid/arcmsr/arcmsr.c
3723
acb->firm_ide_channels = CHIP_REG_READ32(HBB_RWBUFFER, 1, msgcode_rwbuffer[4]); /*firm_ide_channels, 4, 16-19*/
sys/dev/raid/arcmsr/arcmsr.c
3724
acb->firm_cfg_version = CHIP_REG_READ32(HBB_RWBUFFER, 1, msgcode_rwbuffer[ARCMSR_FW_CFGVER_OFFSET]); /*firm_cfg_version, 25, */
sys/dev/raid/arcmsr/arcmsr.c
3725
if(acb->firm_numbers_queue > ARCMSR_MAX_HBB_POSTQUEUE)
sys/dev/raid/arcmsr/arcmsr.c
3726
acb->maxOutstanding = ARCMSR_MAX_HBB_POSTQUEUE - 1;
sys/dev/raid/arcmsr/arcmsr.c
3728
acb->maxOutstanding = acb->firm_numbers_queue - 1;
sys/dev/raid/arcmsr/arcmsr.c
3734
static void arcmsr_get_hbc_config(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3736
char *acb_firm_model = acb->firm_model;
sys/dev/raid/arcmsr/arcmsr.c
3737
char *acb_firm_version = acb->firm_version;
sys/dev/raid/arcmsr/arcmsr.c
3738
char *acb_device_map = acb->device_map;
sys/dev/raid/arcmsr/arcmsr.c
3746
if(!arcmsr_hbc_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3747
kprintf("arcmsr%d: wait 'get adapter firmware miscellaneous data' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3751
*acb_firm_model = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_model+i);
sys/dev/raid/arcmsr/arcmsr.c
3758
*acb_firm_version = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_version+i);
sys/dev/raid/arcmsr/arcmsr.c
3765
*acb_device_map = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_device_map+i);
sys/dev/raid/arcmsr/arcmsr.c
3769
kprintf("Areca RAID adapter%d: %s F/W version %s \n", acb->pci_unit, acb->firm_model, acb->firm_version);
sys/dev/raid/arcmsr/arcmsr.c
3770
acb->firm_request_len = CHIP_REG_READ32(HBC_MessageUnit, 0, msgcode_rwbuffer[1]); /*firm_request_len, 1, 04-07*/
sys/dev/raid/arcmsr/arcmsr.c
3771
acb->firm_numbers_queue = CHIP_REG_READ32(HBC_MessageUnit, 0, msgcode_rwbuffer[2]); /*firm_numbers_queue, 2, 08-11*/
sys/dev/raid/arcmsr/arcmsr.c
3772
acb->firm_sdram_size = CHIP_REG_READ32(HBC_MessageUnit, 0, msgcode_rwbuffer[3]); /*firm_sdram_size, 3, 12-15*/
sys/dev/raid/arcmsr/arcmsr.c
3773
acb->firm_ide_channels = CHIP_REG_READ32(HBC_MessageUnit, 0, msgcode_rwbuffer[4]); /*firm_ide_channels, 4, 16-19*/
sys/dev/raid/arcmsr/arcmsr.c
3774
acb->firm_cfg_version = CHIP_REG_READ32(HBC_MessageUnit, 0, msgcode_rwbuffer[ARCMSR_FW_CFGVER_OFFSET]); /*firm_cfg_version, 25, */
sys/dev/raid/arcmsr/arcmsr.c
3775
if(acb->firm_numbers_queue > ARCMSR_MAX_OUTSTANDING_CMD)
sys/dev/raid/arcmsr/arcmsr.c
3776
acb->maxOutstanding = ARCMSR_MAX_OUTSTANDING_CMD - 1;
sys/dev/raid/arcmsr/arcmsr.c
3778
acb->maxOutstanding = acb->firm_numbers_queue - 1;
sys/dev/raid/arcmsr/arcmsr.c
3784
static void arcmsr_get_hbd_config(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3786
char *acb_firm_model = acb->firm_model;
sys/dev/raid/arcmsr/arcmsr.c
3787
char *acb_firm_version = acb->firm_version;
sys/dev/raid/arcmsr/arcmsr.c
3788
char *acb_device_map = acb->device_map;
sys/dev/raid/arcmsr/arcmsr.c
3797
if(!arcmsr_hbd_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3798
kprintf("arcmsr%d: wait 'get adapter firmware miscellaneous data' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3802
*acb_firm_model = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_model+i);
sys/dev/raid/arcmsr/arcmsr.c
3809
*acb_firm_version = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_version+i);
sys/dev/raid/arcmsr/arcmsr.c
3816
*acb_device_map = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_device_map+i);
sys/dev/raid/arcmsr/arcmsr.c
3820
kprintf("Areca RAID adapter%d: %s F/W version %s \n", acb->pci_unit, acb->firm_model, acb->firm_version);
sys/dev/raid/arcmsr/arcmsr.c
3821
acb->firm_request_len = CHIP_REG_READ32(HBD_MessageUnit, 0, msgcode_rwbuffer[1]); /*firm_request_len, 1, 04-07*/
sys/dev/raid/arcmsr/arcmsr.c
3822
acb->firm_numbers_queue = CHIP_REG_READ32(HBD_MessageUnit, 0, msgcode_rwbuffer[2]); /*firm_numbers_queue, 2, 08-11*/
sys/dev/raid/arcmsr/arcmsr.c
3823
acb->firm_sdram_size = CHIP_REG_READ32(HBD_MessageUnit, 0, msgcode_rwbuffer[3]); /*firm_sdram_size, 3, 12-15*/
sys/dev/raid/arcmsr/arcmsr.c
3824
acb->firm_ide_channels = CHIP_REG_READ32(HBD_MessageUnit, 0, msgcode_rwbuffer[4]); /*firm_ide_channels, 4, 16-19*/
sys/dev/raid/arcmsr/arcmsr.c
3825
acb->firm_cfg_version = CHIP_REG_READ32(HBD_MessageUnit, 0, msgcode_rwbuffer[ARCMSR_FW_CFGVER_OFFSET]); /*firm_cfg_version, 25, */
sys/dev/raid/arcmsr/arcmsr.c
3826
if(acb->firm_numbers_queue > ARCMSR_MAX_HBD_POSTQUEUE)
sys/dev/raid/arcmsr/arcmsr.c
3827
acb->maxOutstanding = ARCMSR_MAX_HBD_POSTQUEUE - 1;
sys/dev/raid/arcmsr/arcmsr.c
3829
acb->maxOutstanding = acb->firm_numbers_queue - 1;
sys/dev/raid/arcmsr/arcmsr.c
3835
static void arcmsr_get_hbe_config(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3837
char *acb_firm_model = acb->firm_model;
sys/dev/raid/arcmsr/arcmsr.c
3838
char *acb_firm_version = acb->firm_version;
sys/dev/raid/arcmsr/arcmsr.c
3839
char *acb_device_map = acb->device_map;
sys/dev/raid/arcmsr/arcmsr.c
3846
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_MESSAGE_CMD_DONE;
sys/dev/raid/arcmsr/arcmsr.c
3847
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
3848
if(!arcmsr_hbe_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
3849
kprintf("arcmsr%d: wait 'get adapter firmware miscellaneous data' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3854
*acb_firm_model = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_model+i);
sys/dev/raid/arcmsr/arcmsr.c
3861
*acb_firm_version = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_firm_version+i);
sys/dev/raid/arcmsr/arcmsr.c
3868
*acb_device_map = bus_space_read_1(acb->btag[0], acb->bhandle[0], iop_device_map+i);
sys/dev/raid/arcmsr/arcmsr.c
387
static u_int8_t arcmsr_hbb_wait_msgint_ready(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3872
kprintf("Areca RAID adapter%d: %s F/W version %s \n", acb->pci_unit, acb->firm_model, acb->firm_version);
sys/dev/raid/arcmsr/arcmsr.c
3873
acb->firm_request_len = CHIP_REG_READ32(HBE_MessageUnit, 0, msgcode_rwbuffer[1]); /*firm_request_len, 1, 04-07*/
sys/dev/raid/arcmsr/arcmsr.c
3874
acb->firm_numbers_queue = CHIP_REG_READ32(HBE_MessageUnit, 0, msgcode_rwbuffer[2]); /*firm_numbers_queue, 2, 08-11*/
sys/dev/raid/arcmsr/arcmsr.c
3875
acb->firm_sdram_size = CHIP_REG_READ32(HBE_MessageUnit, 0, msgcode_rwbuffer[3]); /*firm_sdram_size, 3, 12-15*/
sys/dev/raid/arcmsr/arcmsr.c
3876
acb->firm_ide_channels = CHIP_REG_READ32(HBE_MessageUnit, 0, msgcode_rwbuffer[4]); /*firm_ide_channels, 4, 16-19*/
sys/dev/raid/arcmsr/arcmsr.c
3877
acb->firm_cfg_version = CHIP_REG_READ32(HBE_MessageUnit, 0, msgcode_rwbuffer[ARCMSR_FW_CFGVER_OFFSET]); /*firm_cfg_version, 25, */
sys/dev/raid/arcmsr/arcmsr.c
3878
if(acb->firm_numbers_queue > ARCMSR_MAX_OUTSTANDING_CMD)
sys/dev/raid/arcmsr/arcmsr.c
3879
acb->maxOutstanding = ARCMSR_MAX_OUTSTANDING_CMD - 1;
sys/dev/raid/arcmsr/arcmsr.c
3881
acb->maxOutstanding = acb->firm_numbers_queue - 1;
sys/dev/raid/arcmsr/arcmsr.c
3887
static void arcmsr_get_firmware_spec(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3889
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
3891
arcmsr_get_hba_config(acb);
sys/dev/raid/arcmsr/arcmsr.c
3895
arcmsr_get_hbb_config(acb);
sys/dev/raid/arcmsr/arcmsr.c
3899
arcmsr_get_hbc_config(acb);
sys/dev/raid/arcmsr/arcmsr.c
3903
arcmsr_get_hbd_config(acb);
sys/dev/raid/arcmsr/arcmsr.c
3907
arcmsr_get_hbe_config(acb);
sys/dev/raid/arcmsr/arcmsr.c
391
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
3916
static void arcmsr_wait_firmware_ready( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3920
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
3926
kprintf( "arcmsr%d:timed out waiting for firmware \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3934
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
3939
kprintf( "arcmsr%d: timed out waiting for firmware \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3952
kprintf( "arcmsr%d:timed out waiting for firmware ready\n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3964
kprintf( "arcmsr%d:timed out waiting for firmware ready\n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3976
kprintf( "arcmsr%d:timed out waiting for firmware ready\n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
3989
static void arcmsr_clear_doorbell_queue_buffer( struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
3993
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
4002
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
4026
acb->in_doorbell = CHIP_REG_READ32(HBE_MessageUnit, 0, iobound_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
4028
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_DATA_READ_OK;
sys/dev/raid/arcmsr/arcmsr.c
4029
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
4038
static u_int32_t arcmsr_iop_confirm(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4050
srb_phyaddr = (unsigned long) acb->srb_phyaddr.phyaddr;
sys/dev/raid/arcmsr/arcmsr.c
4051
srb_phyaddr_hi32 = acb->srb_phyaddr.B.phyadd_high;
sys/dev/raid/arcmsr/arcmsr.c
4052
srb_phyaddr_lo32 = acb->srb_phyaddr.B.phyadd_low;
sys/dev/raid/arcmsr/arcmsr.c
4053
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
4059
if(!arcmsr_hba_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4060
kprintf( "arcmsr%d: 'set srb high part physical address' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4075
phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
4079
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4080
kprintf( "arcmsr%d: 'set window of post command Q' timeout\n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
409
static u_int8_t arcmsr_hbc_wait_msgint_ready(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4091
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4092
kprintf( "arcmsr%d: 'set command Q window' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4096
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4097
kprintf( "arcmsr%d: 'start diver mode' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4108
if(!arcmsr_hbc_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4109
kprintf( "arcmsr%d: 'set srb high part physical address' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4119
phbdmu = (struct HBD_MessageUnit0 *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
4132
if(!arcmsr_hbd_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4133
kprintf( "arcmsr%d: 'set srb high part physical address' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4151
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_MESSAGE_CMD_DONE;
sys/dev/raid/arcmsr/arcmsr.c
4152
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
4153
if(!arcmsr_hbe_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4154
kprintf( "arcmsr%d: 'set srb high part physical address' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4166
static void arcmsr_enable_eoi_mode(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4168
if (acb->adapter_type == ACB_ADAPTER_TYPE_B)
sys/dev/raid/arcmsr/arcmsr.c
4170
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
4172
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4173
kprintf( "arcmsr%d: 'iop enable eoi mode' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4182
static void arcmsr_iop_init(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4187
intmask_org = arcmsr_disable_allintr(acb);
sys/dev/raid/arcmsr/arcmsr.c
4188
arcmsr_wait_firmware_ready(acb);
sys/dev/raid/arcmsr/arcmsr.c
4189
arcmsr_iop_confirm(acb);
sys/dev/raid/arcmsr/arcmsr.c
4190
arcmsr_get_firmware_spec(acb);
sys/dev/raid/arcmsr/arcmsr.c
4192
arcmsr_start_adapter_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
4194
arcmsr_clear_doorbell_queue_buffer(acb);
sys/dev/raid/arcmsr/arcmsr.c
4195
arcmsr_enable_eoi_mode(acb);
sys/dev/raid/arcmsr/arcmsr.c
4197
arcmsr_enable_allintr(acb, intmask_org);
sys/dev/raid/arcmsr/arcmsr.c
4198
acb->acb_flags |= ACB_F_IOP_INITED;
sys/dev/raid/arcmsr/arcmsr.c
4206
struct AdapterControlBlock *acb = arg;
sys/dev/raid/arcmsr/arcmsr.c
4211
acb->srb_phyaddr.phyaddr = srb_phyaddr;
sys/dev/raid/arcmsr/arcmsr.c
4212
srb_tmp = (struct CommandControlBlock *)acb->uncacheptr;
sys/dev/raid/arcmsr/arcmsr.c
4214
if(bus_dmamap_create(acb->dm_segs_dmat,
sys/dev/raid/arcmsr/arcmsr.c
4216
acb->acb_flags |= ACB_F_MAPFREESRB_FAILD;
sys/dev/raid/arcmsr/arcmsr.c
4218
" srb dmamap bus_dmamap_create error\n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
4221
if((acb->adapter_type == ACB_ADAPTER_TYPE_C) || (acb->adapter_type == ACB_ADAPTER_TYPE_D)
sys/dev/raid/arcmsr/arcmsr.c
4222
|| (acb->adapter_type == ACB_ADAPTER_TYPE_E))
sys/dev/raid/arcmsr/arcmsr.c
4229
srb_tmp->acb = acb;
sys/dev/raid/arcmsr/arcmsr.c
4231
acb->srbworkingQ[i] = acb->psrb_pool[i] = srb_tmp;
sys/dev/raid/arcmsr/arcmsr.c
4235
acb->pCompletionQ = (pCompletion_Q)srb_tmp;
sys/dev/raid/arcmsr/arcmsr.c
4236
acb->vir2phy_offset = (unsigned long)srb_tmp - (unsigned long)srb_phyaddr;
sys/dev/raid/arcmsr/arcmsr.c
4242
static void arcmsr_free_resource(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4245
if(acb->ioctl_dev != NULL) {
sys/dev/raid/arcmsr/arcmsr.c
4246
destroy_dev(acb->ioctl_dev);
sys/dev/raid/arcmsr/arcmsr.c
4248
bus_dmamap_unload(acb->srb_dmat, acb->srb_dmamap);
sys/dev/raid/arcmsr/arcmsr.c
4249
bus_dmamap_destroy(acb->srb_dmat, acb->srb_dmamap);
sys/dev/raid/arcmsr/arcmsr.c
4250
bus_dma_tag_destroy(acb->srb_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4251
bus_dma_tag_destroy(acb->dm_segs_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4252
bus_dma_tag_destroy(acb->parent_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4258
static void arcmsr_mutex_init(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4260
ARCMSR_LOCK_INIT(&acb->isr_lock, "arcmsr isr lock");
sys/dev/raid/arcmsr/arcmsr.c
4261
ARCMSR_LOCK_INIT(&acb->srb_lock, "arcmsr srb lock");
sys/dev/raid/arcmsr/arcmsr.c
4262
ARCMSR_LOCK_INIT(&acb->postDone_lock, "arcmsr postQ lock");
sys/dev/raid/arcmsr/arcmsr.c
4263
ARCMSR_LOCK_INIT(&acb->qbuffer_lock, "arcmsr RW buffer lock");
sys/dev/raid/arcmsr/arcmsr.c
4264
ARCMSR_LOCK_INIT(&acb->io_lock, "arcmsr io lock");
sys/dev/raid/arcmsr/arcmsr.c
4265
ARCMSR_LOCK_INIT(&acb->sim_lock, "arcmsr sim lock");
sys/dev/raid/arcmsr/arcmsr.c
4271
static void arcmsr_mutex_destroy(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4273
ARCMSR_LOCK_DESTROY(&acb->sim_lock);
sys/dev/raid/arcmsr/arcmsr.c
4274
ARCMSR_LOCK_DESTROY(&acb->io_lock);
sys/dev/raid/arcmsr/arcmsr.c
4275
ARCMSR_LOCK_DESTROY(&acb->qbuffer_lock);
sys/dev/raid/arcmsr/arcmsr.c
4276
ARCMSR_LOCK_DESTROY(&acb->postDone_lock);
sys/dev/raid/arcmsr/arcmsr.c
4277
ARCMSR_LOCK_DESTROY(&acb->srb_lock);
sys/dev/raid/arcmsr/arcmsr.c
4278
ARCMSR_LOCK_DESTROY(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4286
struct AdapterControlBlock *acb = device_get_softc(dev);
sys/dev/raid/arcmsr/arcmsr.c
429
static u_int8_t arcmsr_hbd_wait_msgint_ready(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4292
acb->vendor_device_id = vendor_dev_id;
sys/dev/raid/arcmsr/arcmsr.c
4293
acb->sub_device_id = pci_read_config(dev, PCIR_SUBDEV_0, 2);
sys/dev/raid/arcmsr/arcmsr.c
4299
acb->adapter_type = ACB_ADAPTER_TYPE_C;
sys/dev/raid/arcmsr/arcmsr.c
4300
if ((acb->sub_device_id == ARECA_SUB_DEV_ID_1883) ||
sys/dev/raid/arcmsr/arcmsr.c
4301
(acb->sub_device_id == ARECA_SUB_DEV_ID_1216) ||
sys/dev/raid/arcmsr/arcmsr.c
4302
(acb->sub_device_id == ARECA_SUB_DEV_ID_1226))
sys/dev/raid/arcmsr/arcmsr.c
4303
acb->adapter_bus_speed = ACB_BUS_SPEED_12G;
sys/dev/raid/arcmsr/arcmsr.c
4305
acb->adapter_bus_speed = ACB_BUS_SPEED_6G;
sys/dev/raid/arcmsr/arcmsr.c
4310
acb->adapter_type = ACB_ADAPTER_TYPE_E;
sys/dev/raid/arcmsr/arcmsr.c
4311
acb->adapter_bus_speed = ACB_BUS_SPEED_12G;
sys/dev/raid/arcmsr/arcmsr.c
4313
acb->completionQ_entry = COMPLETION_Q_POOL_SIZE / sizeof(struct deliver_completeQ);
sys/dev/raid/arcmsr/arcmsr.c
4316
acb->adapter_type = ACB_ADAPTER_TYPE_D;
sys/dev/raid/arcmsr/arcmsr.c
4317
acb->adapter_bus_speed = ACB_BUS_SPEED_6G;
sys/dev/raid/arcmsr/arcmsr.c
4323
acb->adapter_type = ACB_ADAPTER_TYPE_B;
sys/dev/raid/arcmsr/arcmsr.c
4324
acb->adapter_bus_speed = ACB_BUS_SPEED_3G;
sys/dev/raid/arcmsr/arcmsr.c
4329
acb->adapter_type = ACB_ADAPTER_TYPE_B;
sys/dev/raid/arcmsr/arcmsr.c
4330
acb->adapter_bus_speed = ACB_BUS_SPEED_6G;
sys/dev/raid/arcmsr/arcmsr.c
4353
acb->adapter_type = ACB_ADAPTER_TYPE_A;
sys/dev/raid/arcmsr/arcmsr.c
4354
acb->adapter_bus_speed = ACB_BUS_SPEED_3G;
sys/dev/raid/arcmsr/arcmsr.c
4373
&acb->parent_dmat) != 0)
sys/dev/raid/arcmsr/arcmsr.c
4379
if(bus_dma_tag_create( /*parent_dmat*/ acb->parent_dmat,
sys/dev/raid/arcmsr/arcmsr.c
4388
&acb->dm_segs_dmat) != 0)
sys/dev/raid/arcmsr/arcmsr.c
4390
bus_dma_tag_destroy(acb->parent_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4396
if(bus_dma_tag_create( /*parent_dmat*/ acb->parent_dmat,
sys/dev/raid/arcmsr/arcmsr.c
4405
&acb->srb_dmat) != 0)
sys/dev/raid/arcmsr/arcmsr.c
4407
bus_dma_tag_destroy(acb->dm_segs_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4408
bus_dma_tag_destroy(acb->parent_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4413
if(bus_dmamem_alloc(acb->srb_dmat, (void **)&acb->uncacheptr, BUS_DMA_WAITOK | BUS_DMA_COHERENT | BUS_DMA_ZERO, &acb->srb_dmamap) != 0) {
sys/dev/raid/arcmsr/arcmsr.c
4414
bus_dma_tag_destroy(acb->srb_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4415
bus_dma_tag_destroy(acb->dm_segs_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4416
bus_dma_tag_destroy(acb->parent_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4421
if(bus_dmamap_load(acb->srb_dmat, acb->srb_dmamap, acb->uncacheptr, max_coherent_size, arcmsr_map_free_srb, acb, /*flags*/0)) {
sys/dev/raid/arcmsr/arcmsr.c
4422
bus_dma_tag_destroy(acb->srb_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4423
bus_dma_tag_destroy(acb->dm_segs_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4424
bus_dma_tag_destroy(acb->parent_dmat);
sys/dev/raid/arcmsr/arcmsr.c
4434
switch(acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
4439
acb->sys_res_arcmsr[0] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid0, RF_ACTIVE);
sys/dev/raid/arcmsr/arcmsr.c
4440
if(acb->sys_res_arcmsr[0] == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
4441
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4445
if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
sys/dev/raid/arcmsr/arcmsr.c
4446
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4450
mem_base0 = (vm_offset_t) rman_get_virtual(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4452
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4456
acb->btag[0] = rman_get_bustag(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4457
acb->bhandle[0] = rman_get_bushandle(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4458
acb->pmu = (struct MessageUnit_UNION *)mem_base0;
sys/dev/raid/arcmsr/arcmsr.c
4459
acb->rid[0] = rid0;
sys/dev/raid/arcmsr/arcmsr.c
4473
acb->sys_res_arcmsr[i] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid[i], RF_ACTIVE);
sys/dev/raid/arcmsr/arcmsr.c
4474
if(acb->sys_res_arcmsr[i] == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
4475
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4479
if(rman_get_start(acb->sys_res_arcmsr[i]) <= 0) {
sys/dev/raid/arcmsr/arcmsr.c
4480
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4484
mem_base[i] = (vm_offset_t) rman_get_virtual(acb->sys_res_arcmsr[i]);
sys/dev/raid/arcmsr/arcmsr.c
4486
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
449
static u_int8_t arcmsr_hbe_wait_msgint_ready(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4490
acb->btag[i] = rman_get_bustag(acb->sys_res_arcmsr[i]);
sys/dev/raid/arcmsr/arcmsr.c
4491
acb->bhandle[i] = rman_get_bushandle(acb->sys_res_arcmsr[i]);
sys/dev/raid/arcmsr/arcmsr.c
4493
freesrb = (struct CommandControlBlock *)acb->uncacheptr;
sys/dev/raid/arcmsr/arcmsr.c
4494
acb->pmu = (struct MessageUnit_UNION *)((unsigned long)freesrb+ARCMSR_SRBS_POOL_SIZE);
sys/dev/raid/arcmsr/arcmsr.c
4495
phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
4509
acb->rid[0] = rid[0];
sys/dev/raid/arcmsr/arcmsr.c
4510
acb->rid[1] = rid[1];
sys/dev/raid/arcmsr/arcmsr.c
4517
acb->sys_res_arcmsr[0] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid0, RF_ACTIVE);
sys/dev/raid/arcmsr/arcmsr.c
4518
if(acb->sys_res_arcmsr[0] == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
4519
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4523
if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
sys/dev/raid/arcmsr/arcmsr.c
4524
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4528
mem_base0 = (vm_offset_t) rman_get_virtual(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4530
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4534
acb->btag[0] = rman_get_bustag(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4535
acb->bhandle[0] = rman_get_bushandle(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4536
acb->pmu = (struct MessageUnit_UNION *)mem_base0;
sys/dev/raid/arcmsr/arcmsr.c
4537
acb->rid[0] = rid0;
sys/dev/raid/arcmsr/arcmsr.c
4545
acb->sys_res_arcmsr[0] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid0, RF_ACTIVE);
sys/dev/raid/arcmsr/arcmsr.c
4546
if(acb->sys_res_arcmsr[0] == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
4547
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4551
if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
sys/dev/raid/arcmsr/arcmsr.c
4552
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4556
mem_base0 = (vm_offset_t) rman_get_virtual(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4558
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4562
acb->btag[0] = rman_get_bustag(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4563
acb->bhandle[0] = rman_get_bushandle(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4564
acb->pmu = (struct MessageUnit_UNION *)((unsigned long)acb->uncacheptr+ARCMSR_SRBS_POOL_SIZE);
sys/dev/raid/arcmsr/arcmsr.c
4565
phbdmu = (struct HBD_MessageUnit0 *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
4567
acb->rid[0] = rid0;
sys/dev/raid/arcmsr/arcmsr.c
457
if((read_doorbell ^ acb->in_doorbell) & ARCMSR_HBEMU_IOP2DRV_MESSAGE_CMD_DONE) {
sys/dev/raid/arcmsr/arcmsr.c
4574
acb->sys_res_arcmsr[0] = bus_alloc_resource(dev,SYS_RES_MEMORY, &rid0, 0ul, ~0ul, sizeof(struct HBE_MessageUnit), RF_ACTIVE);
sys/dev/raid/arcmsr/arcmsr.c
4575
if(acb->sys_res_arcmsr[0] == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
4576
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4580
if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
sys/dev/raid/arcmsr/arcmsr.c
4581
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4585
mem_base0 = (vm_offset_t) rman_get_virtual(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4587
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
459
acb->in_doorbell = read_doorbell;
sys/dev/raid/arcmsr/arcmsr.c
4591
acb->btag[0] = rman_get_bustag(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4592
acb->bhandle[0] = rman_get_bushandle(acb->sys_res_arcmsr[0]);
sys/dev/raid/arcmsr/arcmsr.c
4593
acb->pmu = (struct MessageUnit_UNION *)mem_base0;
sys/dev/raid/arcmsr/arcmsr.c
4594
acb->doneq_index = 0;
sys/dev/raid/arcmsr/arcmsr.c
4595
acb->in_doorbell = 0;
sys/dev/raid/arcmsr/arcmsr.c
4596
acb->out_doorbell = 0;
sys/dev/raid/arcmsr/arcmsr.c
4597
acb->rid[0] = rid0;
sys/dev/raid/arcmsr/arcmsr.c
4603
if(acb->acb_flags & ACB_F_MAPFREESRB_FAILD) {
sys/dev/raid/arcmsr/arcmsr.c
4604
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4608
acb->acb_flags |= (ACB_F_MESSAGE_WQBUFFER_CLEARED|ACB_F_MESSAGE_RQBUFFER_CLEARED|ACB_F_MESSAGE_WQBUFFER_READ);
sys/dev/raid/arcmsr/arcmsr.c
4609
acb->acb_flags &= ~ACB_F_SCSISTOPADAPTER;
sys/dev/raid/arcmsr/arcmsr.c
4617
acb->devstate[i][j] = ARECA_RAID_GONE;
sys/dev/raid/arcmsr/arcmsr.c
4620
arcmsr_iop_init(acb);
sys/dev/raid/arcmsr/arcmsr.c
4628
static void arcmsr_teardown_intr(device_t dev, struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4632
if (acb->acb_flags & ACB_F_MSIX_ENABLED) {
sys/dev/raid/arcmsr/arcmsr.c
4633
for (i = 0; i < acb->msix_vectors; i++) {
sys/dev/raid/arcmsr/arcmsr.c
4634
if (acb->ih[i])
sys/dev/raid/arcmsr/arcmsr.c
4635
bus_teardown_intr(dev, acb->irqres[i], acb->ih[i]);
sys/dev/raid/arcmsr/arcmsr.c
4640
acb->ih[i] = NULL;
sys/dev/raid/arcmsr/arcmsr.c
4644
if ((acb->ih[0] != NULL) && (acb->irqres[0] != NULL))
sys/dev/raid/arcmsr/arcmsr.c
4645
bus_teardown_intr(dev, acb->irqres[0], acb->ih[0]);
sys/dev/raid/arcmsr/arcmsr.c
4646
if (acb->irqres[0] != NULL)
sys/dev/raid/arcmsr/arcmsr.c
4648
acb->irq_id[0], acb->irqres[0]);
sys/dev/raid/arcmsr/arcmsr.c
4649
if (acb->irq_type == PCI_INTR_TYPE_MSI)
sys/dev/raid/arcmsr/arcmsr.c
4651
acb->ih[0] = NULL;
sys/dev/raid/arcmsr/arcmsr.c
4652
acb->irqres[0] = NULL;
sys/dev/raid/arcmsr/arcmsr.c
4653
acb->irq_type = 0;
sys/dev/raid/arcmsr/arcmsr.c
4663
struct AdapterControlBlock *acb=(struct AdapterControlBlock *)device_get_softc(dev);
sys/dev/raid/arcmsr/arcmsr.c
4670
if(acb == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
4674
arcmsr_mutex_init(acb);
sys/dev/raid/arcmsr/arcmsr.c
4675
acb->pci_dev = dev;
sys/dev/raid/arcmsr/arcmsr.c
4676
acb->pci_unit = unit;
sys/dev/raid/arcmsr/arcmsr.c
4682
acb->irq_id[0] = 0;
sys/dev/raid/arcmsr/arcmsr.c
4683
acb->irq_type = pci_alloc_1intr(dev, arcmsr_msi_enable, &acb->irq_id[0], &irq_flags);
sys/dev/raid/arcmsr/arcmsr.c
4684
irqres = bus_alloc_resource_any(dev, SYS_RES_IRQ, &acb->irq_id[0], irq_flags);
sys/dev/raid/arcmsr/arcmsr.c
4689
if(bus_setup_intr(dev, irqres, INTR_MPSAFE, arcmsr_intr_handler, acb, &acb->ih[0], NULL)) {
sys/dev/raid/arcmsr/arcmsr.c
4693
acb->irqres[0] = irqres;
sys/dev/raid/arcmsr/arcmsr.c
4700
devq = cam_simq_alloc(acb->maxOutstanding);
sys/dev/raid/arcmsr/arcmsr.c
4705
acb->psim = cam_sim_alloc(arcmsr_action, arcmsr_poll, "arcmsr", acb, unit, &acb->isr_lock, 1, ARCMSR_MAX_OUTSTANDING_CMD, devq);
sys/dev/raid/arcmsr/arcmsr.c
4707
if(acb->psim == NULL) {
sys/dev/raid/arcmsr/arcmsr.c
471
static void arcmsr_flush_hba_cache(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4711
ARCMSR_LOCK_ACQUIRE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4712
if(xpt_bus_register(acb->psim, 0) != CAM_SUCCESS) {
sys/dev/raid/arcmsr/arcmsr.c
4720
if(xpt_create_path(&ccb->ccb_h.path, xpt_periph, cam_sim_path(acb->psim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
sys/dev/raid/arcmsr/arcmsr.c
4732
ARCMSR_LOCK_RELEASE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4735
acb->ioctl_dev = make_dev(&arcmsr_ops, unit, UID_ROOT, GID_WHEEL /* GID_OPERATOR */, S_IRUSR | S_IWUSR, "arcmsr%d", unit);
sys/dev/raid/arcmsr/arcmsr.c
4736
acb->ioctl_dev->si_drv1 = acb;
sys/dev/raid/arcmsr/arcmsr.c
4737
(void)make_dev_alias(acb->ioctl_dev, "arc%d", unit);
sys/dev/raid/arcmsr/arcmsr.c
4738
arcmsr_callout_init(&acb->devmap_callout);
sys/dev/raid/arcmsr/arcmsr.c
4739
callout_reset(&acb->devmap_callout, 60 * hz, arcmsr_polling_devmap, acb);
sys/dev/raid/arcmsr/arcmsr.c
4745
xpt_bus_deregister(cam_sim_path(acb->psim));
sys/dev/raid/arcmsr/arcmsr.c
4747
ARCMSR_LOCK_RELEASE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4748
cam_sim_free(acb->psim);
sys/dev/raid/arcmsr/arcmsr.c
4752
arcmsr_teardown_intr(dev, acb);
sys/dev/raid/arcmsr/arcmsr.c
4754
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4755
bus_release_resource(dev, SYS_RES_IRQ, acb->irq_id[0], irqres);
sys/dev/raid/arcmsr/arcmsr.c
4757
if (acb->irq_type == PCI_INTR_TYPE_MSI)
sys/dev/raid/arcmsr/arcmsr.c
4760
arcmsr_mutex_destroy(acb);
sys/dev/raid/arcmsr/arcmsr.c
477
if(arcmsr_hba_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
4850
struct AdapterControlBlock *acb=(struct AdapterControlBlock *)device_get_softc(dev);
sys/dev/raid/arcmsr/arcmsr.c
4853
ARCMSR_LOCK_ACQUIRE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4855
arcmsr_disable_allintr(acb);
sys/dev/raid/arcmsr/arcmsr.c
4856
arcmsr_stop_adapter_bgrb(acb);
sys/dev/raid/arcmsr/arcmsr.c
4857
arcmsr_flush_adapter_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
4859
acb->acb_flags |= ACB_F_SCSISTOPADAPTER;
sys/dev/raid/arcmsr/arcmsr.c
4860
acb->acb_flags &= ~ACB_F_IOP_INITED;
sys/dev/raid/arcmsr/arcmsr.c
4861
if(acb->srboutstandingcount != 0) {
sys/dev/raid/arcmsr/arcmsr.c
4863
arcmsr_done4abort_postqueue(acb);
sys/dev/raid/arcmsr/arcmsr.c
4865
arcmsr_abort_allcmd(acb);
sys/dev/raid/arcmsr/arcmsr.c
4867
srb = acb->psrb_pool[i];
sys/dev/raid/arcmsr/arcmsr.c
4875
acb->srboutstandingcount = 0;
sys/dev/raid/arcmsr/arcmsr.c
4876
acb->workingsrb_doneindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
4877
acb->workingsrb_startindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
4878
acb->pktRequestCount = 0;
sys/dev/raid/arcmsr/arcmsr.c
4879
acb->pktReturnCount = 0;
sys/dev/raid/arcmsr/arcmsr.c
488
static void arcmsr_flush_hbb_cache(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
4880
ARCMSR_LOCK_RELEASE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4889
struct AdapterControlBlock *acb=(struct AdapterControlBlock *)device_get_softc(dev);
sys/dev/raid/arcmsr/arcmsr.c
4892
callout_stop(&acb->devmap_callout);
sys/dev/raid/arcmsr/arcmsr.c
4893
arcmsr_teardown_intr(dev, acb);
sys/dev/raid/arcmsr/arcmsr.c
4895
arcmsr_free_resource(acb);
sys/dev/raid/arcmsr/arcmsr.c
4896
for(i=0; (i < 2) && (acb->sys_res_arcmsr[i]!=NULL); i++) {
sys/dev/raid/arcmsr/arcmsr.c
4897
bus_release_resource(dev, SYS_RES_MEMORY, acb->rid[i], acb->sys_res_arcmsr[i]);
sys/dev/raid/arcmsr/arcmsr.c
4899
ARCMSR_LOCK_ACQUIRE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4900
xpt_bus_deregister(cam_sim_path(acb->psim));
sys/dev/raid/arcmsr/arcmsr.c
4901
cam_sim_free(acb->psim);
sys/dev/raid/arcmsr/arcmsr.c
4902
ARCMSR_LOCK_RELEASE(&acb->isr_lock);
sys/dev/raid/arcmsr/arcmsr.c
4903
arcmsr_mutex_destroy(acb);
sys/dev/raid/arcmsr/arcmsr.c
4908
static void arcmsr_dump_data(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
491
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
4910
if((acb->pktRequestCount - acb->pktReturnCount) == 0)
sys/dev/raid/arcmsr/arcmsr.c
4912
kprintf("Command Request Count =0x%x\n",acb->pktRequestCount);
sys/dev/raid/arcmsr/arcmsr.c
4913
kprintf("Command Return Count =0x%x\n",acb->pktReturnCount);
sys/dev/raid/arcmsr/arcmsr.c
4914
kprintf("Command (Req-Rtn) Count =0x%x\n",(acb->pktRequestCount - acb->pktReturnCount));
sys/dev/raid/arcmsr/arcmsr.c
4915
kprintf("Queued Command Count =0x%x\n",acb->srboutstandingcount);
sys/dev/raid/arcmsr/arcmsr.c
495
if(arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
506
static void arcmsr_flush_hbc_cache(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
513
if(arcmsr_hbc_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
524
static void arcmsr_flush_hbd_cache(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
530
if(arcmsr_hbd_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
541
static void arcmsr_flush_hbe_cache(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
546
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_MESSAGE_CMD_DONE;
sys/dev/raid/arcmsr/arcmsr.c
547
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
549
if(arcmsr_hbe_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
560
static void arcmsr_flush_adapter_cache(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
562
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
564
arcmsr_flush_hba_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
568
arcmsr_flush_hbb_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
572
arcmsr_flush_hbc_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
576
arcmsr_flush_hbd_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
580
arcmsr_flush_hbe_cache(acb);
sys/dev/raid/arcmsr/arcmsr.c
591
struct AdapterControlBlock *acb = device_get_softc(dev);
sys/dev/raid/arcmsr/arcmsr.c
594
arcmsr_iop_parking(acb);
sys/dev/raid/arcmsr/arcmsr.c
596
arcmsr_disable_allintr(acb);
sys/dev/raid/arcmsr/arcmsr.c
605
struct AdapterControlBlock *acb = device_get_softc(dev);
sys/dev/raid/arcmsr/arcmsr.c
607
arcmsr_iop_init(acb);
sys/dev/raid/arcmsr/arcmsr.c
632
static void arcmsr_abort_hba_allcmd(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
635
if(!arcmsr_hba_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
636
kprintf("arcmsr%d: wait 'abort all outstanding command' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
643
static void arcmsr_abort_hbb_allcmd(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
645
struct HBB_MessageUnit *phbbmu = (struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
647
if(!arcmsr_hbb_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
648
kprintf("arcmsr%d: wait 'abort all outstanding command' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
655
static void arcmsr_abort_hbc_allcmd(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
659
if(!arcmsr_hbc_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
660
kprintf("arcmsr%d: wait 'abort all outstanding command' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
667
static void arcmsr_abort_hbd_allcmd(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
670
if(!arcmsr_hbd_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
671
kprintf("arcmsr%d: wait 'abort all outstanding command' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
678
static void arcmsr_abort_hbe_allcmd(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
681
acb->out_doorbell ^= ARCMSR_HBEMU_DRV2IOP_MESSAGE_CMD_DONE;
sys/dev/raid/arcmsr/arcmsr.c
682
CHIP_REG_WRITE32(HBE_MessageUnit, 0, iobound_doorbell, acb->out_doorbell);
sys/dev/raid/arcmsr/arcmsr.c
683
if(!arcmsr_hbe_wait_msgint_ready(acb)) {
sys/dev/raid/arcmsr/arcmsr.c
684
kprintf("arcmsr%d: wait 'abort all outstanding command' timeout \n", acb->pci_unit);
sys/dev/raid/arcmsr/arcmsr.c
691
static void arcmsr_abort_allcmd(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
693
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
695
arcmsr_abort_hba_allcmd(acb);
sys/dev/raid/arcmsr/arcmsr.c
699
arcmsr_abort_hbb_allcmd(acb);
sys/dev/raid/arcmsr/arcmsr.c
703
arcmsr_abort_hbc_allcmd(acb);
sys/dev/raid/arcmsr/arcmsr.c
707
arcmsr_abort_hbd_allcmd(acb);
sys/dev/raid/arcmsr/arcmsr.c
711
arcmsr_abort_hbe_allcmd(acb);
sys/dev/raid/arcmsr/arcmsr.c
722
struct AdapterControlBlock *acb = srb->acb;
sys/dev/raid/arcmsr/arcmsr.c
735
bus_dmamap_sync(acb->dm_segs_dmat, srb->dm_segs_dmamap, op);
sys/dev/raid/arcmsr/arcmsr.c
736
ARCMSR_LOCK_ACQUIRE(&acb->io_lock);
sys/dev/raid/arcmsr/arcmsr.c
737
bus_dmamap_unload(acb->dm_segs_dmat, srb->dm_segs_dmamap);
sys/dev/raid/arcmsr/arcmsr.c
738
ARCMSR_LOCK_RELEASE(&acb->io_lock);
sys/dev/raid/arcmsr/arcmsr.c
741
atomic_subtract_int(&acb->srboutstandingcount, 1);
sys/dev/raid/arcmsr/arcmsr.c
742
if((acb->acb_flags & ACB_F_CAM_DEV_QFRZN) && (
sys/dev/raid/arcmsr/arcmsr.c
743
acb->srboutstandingcount < (acb->maxOutstanding -10))) {
sys/dev/raid/arcmsr/arcmsr.c
744
acb->acb_flags &= ~ACB_F_CAM_DEV_QFRZN;
sys/dev/raid/arcmsr/arcmsr.c
750
acb->pktReturnCount++;
sys/dev/raid/arcmsr/arcmsr.c
751
ARCMSR_LOCK_ACQUIRE(&acb->sim_lock);
sys/dev/raid/arcmsr/arcmsr.c
753
ARCMSR_LOCK_RELEASE(&acb->sim_lock);
sys/dev/raid/arcmsr/arcmsr.c
759
static void arcmsr_report_srb_state(struct AdapterControlBlock *acb, struct CommandControlBlock *srb, u_int16_t error)
sys/dev/raid/arcmsr/arcmsr.c
766
if(acb->devstate[target][lun] == ARECA_RAID_GONE) {
sys/dev/raid/arcmsr/arcmsr.c
767
acb->devstate[target][lun] = ARECA_RAID_GOOD;
sys/dev/raid/arcmsr/arcmsr.c
774
if(acb->devstate[target][lun] == ARECA_RAID_GOOD) {
sys/dev/raid/arcmsr/arcmsr.c
775
kprintf( "arcmsr%d: Target=%x, Lun=%x, selection timeout, raid volume was lost\n", acb->pci_unit, target, lun);
sys/dev/raid/arcmsr/arcmsr.c
777
acb->devstate[target][lun] = ARECA_RAID_GONE;
sys/dev/raid/arcmsr/arcmsr.c
784
acb->devstate[target][lun] = ARECA_RAID_GONE;
sys/dev/raid/arcmsr/arcmsr.c
790
acb->devstate[target][lun] = ARECA_RAID_GOOD;
sys/dev/raid/arcmsr/arcmsr.c
797
, acb->pci_unit, target, lun ,srb->arcmsr_cdb.DeviceStatus);
sys/dev/raid/arcmsr/arcmsr.c
798
acb->devstate[target][lun] = ARECA_RAID_GONE;
sys/dev/raid/arcmsr/arcmsr.c
810
static void arcmsr_drain_donequeue(struct AdapterControlBlock *acb, u_int32_t flag_srb, u_int16_t error)
sys/dev/raid/arcmsr/arcmsr.c
815
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
818
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb & 0xFFFFFFE0)); /*frame must be 32 bytes aligned*/
sys/dev/raid/arcmsr/arcmsr.c
821
srb = acb->psrb_pool[flag_srb];
sys/dev/raid/arcmsr/arcmsr.c
826
srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb << 5));/*frame must be 32 bytes aligned*/
sys/dev/raid/arcmsr/arcmsr.c
829
if((srb->acb != acb) || (srb->srb_state != ARCMSR_SRB_START)) {
sys/dev/raid/arcmsr/arcmsr.c
832
kprintf("arcmsr%d: srb='%p' return srb has been timeouted\n", acb->pci_unit, srb);
sys/dev/raid/arcmsr/arcmsr.c
837
acb->pci_unit, srb, srb->srb_state, acb->srboutstandingcount);
sys/dev/raid/arcmsr/arcmsr.c
840
arcmsr_report_srb_state(acb, srb, error);
sys/dev/raid/arcmsr/arcmsr.c
849
struct AdapterControlBlock *acb;
sys/dev/raid/arcmsr/arcmsr.c
855
acb = srb->acb;
sys/dev/raid/arcmsr/arcmsr.c
863
acb->pci_unit, target, lun, cmd, srb);
sys/dev/raid/arcmsr/arcmsr.c
866
arcmsr_dump_data(acb);
sys/dev/raid/arcmsr/arcmsr.c
874
static void arcmsr_done4abort_postqueue(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
880
switch (acb->adapter_type) {
sys/dev/raid/arcmsr/arcmsr.c
885
outbound_intstatus = CHIP_REG_READ32(HBA_MessageUnit, 0, outbound_intstatus) & acb->outbound_int_enable;
sys/dev/raid/arcmsr/arcmsr.c
889
arcmsr_drain_donequeue(acb, flag_srb, error);
sys/dev/raid/arcmsr/arcmsr.c
894
struct HBB_MessageUnit *phbbmu=(struct HBB_MessageUnit *)acb->pmu;
sys/dev/raid/arcmsr/arcmsr.c
902
arcmsr_drain_donequeue(acb, flag_srb, error);
sys/dev/raid/arcmsr/arcmsr.c
915
arcmsr_drain_donequeue(acb, flag_srb, error);
sys/dev/raid/arcmsr/arcmsr.c
920
arcmsr_hbd_postqueue_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
924
arcmsr_hbe_postqueue_isr(acb);
sys/dev/raid/arcmsr/arcmsr.c
933
static void arcmsr_iop_reset(struct AdapterControlBlock *acb)
sys/dev/raid/arcmsr/arcmsr.c
939
if(acb->srboutstandingcount>0) {
sys/dev/raid/arcmsr/arcmsr.c
941
intmask_org = arcmsr_disable_allintr(acb);
sys/dev/raid/arcmsr/arcmsr.c
943
arcmsr_done4abort_postqueue(acb);
sys/dev/raid/arcmsr/arcmsr.c
945
arcmsr_abort_allcmd(acb);
sys/dev/raid/arcmsr/arcmsr.c
947
srb = acb->psrb_pool[i];
sys/dev/raid/arcmsr/arcmsr.c
953
, acb->pci_unit, srb->pccb->ccb_h.target_id
sys/dev/raid/arcmsr/arcmsr.c
958
arcmsr_enable_allintr(acb, intmask_org);
sys/dev/raid/arcmsr/arcmsr.c
960
acb->srboutstandingcount = 0;
sys/dev/raid/arcmsr/arcmsr.c
961
acb->workingsrb_doneindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
962
acb->workingsrb_startindex = 0;
sys/dev/raid/arcmsr/arcmsr.c
963
acb->pktRequestCount = 0;
sys/dev/raid/arcmsr/arcmsr.c
964
acb->pktReturnCount = 0;
sys/dev/raid/arcmsr/arcmsr.c
988
struct AdapterControlBlock *acb = srb->acb;
sys/dev/raid/arcmsr/arcmsr.c
999
bus_dmamap_sync(acb->dm_segs_dmat, srb->dm_segs_dmamap, op);
sys/dev/raid/arcmsr/arcmsr.h
1191
struct AdapterControlBlock *acb; /* 520-523 524-527 */
sys/dev/raid/arcmsr/arcmsr.h
189
#define CHIP_REG_READ32(s, b, r) bus_space_read_4(acb->btag[b], acb->bhandle[b], offsetof(struct s, r))
sys/dev/raid/arcmsr/arcmsr.h
190
#define CHIP_REG_WRITE32(s, b, r, d) bus_space_write_4(acb->btag[b], acb->bhandle[b], offsetof(struct s, r), d)
sys/dev/raid/arcmsr/arcmsr.h
191
#define READ_CHIP_REG32(b, r) bus_space_read_4(acb->btag[b], acb->bhandle[b], r)
sys/dev/raid/arcmsr/arcmsr.h
192
#define WRITE_CHIP_REG32(b, r, d) bus_space_write_4(acb->btag[b], acb->bhandle[b], r, d)
sys/dev/video/bktr/msp34xx.c
122
int acb;
sys/dev/video/bktr/msp34xx.c
316
msp->acb &= ~scarts[out][SCART_MASK];
sys/dev/video/bktr/msp34xx.c
317
msp->acb |= scarts[out][in];
sys/dev/video/bktr/msp34xx.c
318
msp3400c_write(client,I2C_MSP3400C_DFP, 0x0013, msp->acb);