asd_ha 56 drivers/scsi/aic94xx/aic94xx.h int asd_read_ocm(struct asd_ha_struct *asd_ha); asd_ha 57 drivers/scsi/aic94xx/aic94xx.h int asd_read_flash(struct asd_ha_struct *asd_ha); asd_ha 21 drivers/scsi/aic94xx/aic94xx_dev.c static int asd_get_ddb(struct asd_ha_struct *asd_ha) asd_ha 25 drivers/scsi/aic94xx/aic94xx_dev.c ddb = FIND_FREE_DDB(asd_ha); asd_ha 26 drivers/scsi/aic94xx/aic94xx_dev.c if (ddb >= asd_ha->hw_prof.max_ddbs) { asd_ha 30 drivers/scsi/aic94xx/aic94xx_dev.c SET_DDB(ddb, asd_ha); asd_ha 33 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_dword(asd_ha, ddb, i, 0); asd_ha 57 drivers/scsi/aic94xx/aic94xx_dev.c static void asd_free_ddb(struct asd_ha_struct *asd_ha, int ddb) asd_ha 61 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, DDB_TYPE, DDB_TYPE_UNUSED); asd_ha 62 drivers/scsi/aic94xx/aic94xx_dev.c CLEAR_DDB(ddb, asd_ha); asd_ha 67 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 71 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha,ddb, DDB_TYPE, DDB_TYPE_PM_PORT); asd_ha 73 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha,ddb, DDB_TYPE, DDB_TYPE_TARGET); asd_ha 75 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha,ddb,DDB_TYPE,DDB_TYPE_INITIATOR); asd_ha 80 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 83 drivers/scsi/aic94xx/aic94xx_dev.c ddb = asd_get_ddb(asd_ha); asd_ha 88 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, i, 0xFFFF); asd_ha 90 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, (int) (unsigned long) dev->lldd_dev, asd_ha 97 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 105 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_dword(asd_ha, ddb, SATA_TAG_ALLOC_MASK, asd_ha 107 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, NUM_SATA_TAGS, qdepth); asd_ha 122 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 125 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, ATA_CMD_SCBPTR, 0xFFFF); asd_ha 130 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, SATA_STATUS, fis->status); asd_ha 132 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, NCQ_DATA_SCB_PTR, 0xFFFF); asd_ha 140 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 143 drivers/scsi/aic94xx/aic94xx_dev.c ddb = asd_get_ddb(asd_ha); asd_ha 149 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, 0, DDB_TP_CONN_TYPE); asd_ha 150 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, 1, 0); asd_ha 151 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, INIT_CONN_TAG, 0xFFFF); asd_ha 153 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, DEST_SAS_ADDR+i, asd_ha 155 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, SEND_QUEUE_HEAD, 0xFFFF); asd_ha 157 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, CONN_MASK, dev->port->phy_mask); asd_ha 174 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, MAX_CCONN, asd_ha 177 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, MAX_CCONN, asd_ha 179 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, NUM_CTX, 1); asd_ha 184 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, DDB_TARG_FLAGS, flags); asd_ha 189 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, DDB_TARG_FLAGS2, flags); asd_ha 191 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, EXEC_QUEUE_TAIL, 0xFFFF); asd_ha 192 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, SEND_QUEUE_TAIL, 0xFFFF); asd_ha 193 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, SISTER_DDB, 0xFFFF); asd_ha 198 drivers/scsi/aic94xx/aic94xx_dev.c asd_free_ddb(asd_ha, ddb); asd_ha 206 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, ITNL_TIMEOUT, asd_ha 210 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, ITNL_TIMEOUT, asd_ha 218 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 221 drivers/scsi/aic94xx/aic94xx_dev.c ddb = asd_get_ddb(asd_ha); asd_ha 226 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, i, 0xFFFF); asd_ha 228 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, (int) (unsigned long) dev->lldd_dev, asd_ha 248 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 251 drivers/scsi/aic94xx/aic94xx_dev.c ddb = asd_get_ddb(asd_ha); asd_ha 257 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_byte(asd_ha, ddb, PM_PORT_FLAGS, flags); asd_ha 258 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, SISTER_DDB, 0xFFFF); asd_ha 259 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, ATA_CMD_SCBPTR, 0xFFFF); asd_ha 263 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, ddb, PARENT_DDB, parent_ddb); asd_ha 264 drivers/scsi/aic94xx/aic94xx_dev.c pmtable_ddb = asd_ddbsite_read_word(asd_ha, parent_ddb, SISTER_DDB); asd_ha 265 drivers/scsi/aic94xx/aic94xx_dev.c asd_ddbsite_write_word(asd_ha, pmtable_ddb, dev->sata_dev.port_no,ddb); asd_ha 267 drivers/scsi/aic94xx/aic94xx_dev.c if (asd_ddbsite_read_byte(asd_ha, ddb, NUM_SATA_TAGS) > 0) { asd_ha 270 drivers/scsi/aic94xx/aic94xx_dev.c asd_free_ddb(asd_ha, ddb); asd_ha 308 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 310 drivers/scsi/aic94xx/aic94xx_dev.c spin_lock_irqsave(&asd_ha->hw_prof.ddb_lock, flags); asd_ha 324 drivers/scsi/aic94xx/aic94xx_dev.c spin_unlock_irqrestore(&asd_ha->hw_prof.ddb_lock, flags); asd_ha 333 drivers/scsi/aic94xx/aic94xx_dev.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 335 drivers/scsi/aic94xx/aic94xx_dev.c spin_lock_irqsave(&asd_ha->hw_prof.ddb_lock, flags); asd_ha 337 drivers/scsi/aic94xx/aic94xx_dev.c sister_ddb = asd_ddbsite_read_word(asd_ha, ddb, SISTER_DDB); asd_ha 340 drivers/scsi/aic94xx/aic94xx_dev.c asd_free_ddb(asd_ha, sister_ddb); asd_ha 341 drivers/scsi/aic94xx/aic94xx_dev.c asd_free_ddb(asd_ha, ddb); asd_ha 343 drivers/scsi/aic94xx/aic94xx_dev.c spin_unlock_irqrestore(&asd_ha->hw_prof.ddb_lock, flags); asd_ha 265 drivers/scsi/aic94xx/aic94xx_dump.c static void asd_dump_cseq_state(struct asd_ha_struct *asd_ha) asd_ha 273 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_32bit(asd_ha, ARP2CTL); asd_ha 274 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_32bit(asd_ha, ARP2INT); asd_ha 275 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_32bit(asd_ha, ARP2INTEN); asd_ha 276 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, MODEPTR); asd_ha 277 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, ALTMODE); asd_ha 278 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, FLAG); asd_ha 279 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, ARP2INTCTL); asd_ha 280 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, STACK); asd_ha 281 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, PRGMCNT); asd_ha 282 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, ACCUM); asd_ha 283 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, SINDEX); asd_ha 284 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, DINDEX); asd_ha 285 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, SINDIR); asd_ha 286 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, DINDIR); asd_ha 287 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, JUMLDIR); asd_ha 288 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, ARP2HALTCODE); asd_ha 289 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, CURRADDR); asd_ha 290 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, LASTADDR); asd_ha 291 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_16bit(asd_ha, NXTLADDR); asd_ha 295 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_32bit(asd_ha, BISTCTL1, CBISTCTL); asd_ha 296 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_32bit(asd_ha, MAPPEDSCR); asd_ha 301 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_16bit(asd_ha, mode, MnSCBPTR, CMnSCBPTR(mode)); asd_ha 302 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_16bit(asd_ha, 15, MnSCBPTR, CMnSCBPTR(15)); asd_ha 305 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_16bit(asd_ha, mode, MnDDBPTR, CMnDDBPTR(mode)); asd_ha 306 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_16bit(asd_ha, 15, MnDDBPTR, CMnDDBPTR(15)); asd_ha 309 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_32bit(asd_ha, mode, MnREQMBX, CMnREQMBX(mode)); asd_ha 311 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_32bit(asd_ha, mode, MnRSPMBX, CMnRSPMBX(mode)); asd_ha 313 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_32bit(asd_ha, mode, MnINT, CMnINT(mode)); asd_ha 315 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_32bit(asd_ha, mode, MnINTEN, CMnINTEN(mode)); asd_ha 317 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CREG_8bit(asd_ha, SCRATCHPAGE); asd_ha 319 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MREG_8bit(asd_ha, mode, MnSCRATCHPAGE, asd_ha 322 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_32bit(asd_ha, CLINKCON, CLINKCON); asd_ha 323 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_8bit(asd_ha, CCONMSK, CCONMSK); asd_ha 324 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_8bit(asd_ha, CCONEXIST, CCONEXIST); asd_ha 325 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_16bit(asd_ha, CCONMODE, CCONMODE); asd_ha 326 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_32bit(asd_ha, CTIMERCALC, CTIMERCALC); asd_ha 327 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_8bit(asd_ha, CINTDIS, CINTDIS); asd_ha 332 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_EXE_HEAD); asd_ha 333 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_EXE_TAIL); asd_ha 334 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_DONE_HEAD); asd_ha 335 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_DONE_TAIL); asd_ha 336 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_SEND_HEAD); asd_ha 337 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_SEND_TAIL); asd_ha 338 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_DMA2CHIM_HEAD); asd_ha 339 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_DMA2CHIM_TAIL); asd_ha 340 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_COPY_HEAD); asd_ha 341 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_COPY_TAIL); asd_ha 342 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, REG0); asd_ha 343 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, REG1); asd_ha 344 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_dword(asd_ha, REG2); asd_ha 345 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, LINK_CTL_Q_MAP); asd_ha 346 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, MAX_CSEQ_MODE); asd_ha 347 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, FREE_LIST_HACK_COUNT); asd_ha 350 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, EST_NEXUS_REQ_QUEUE); asd_ha 351 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, EST_NEXUS_REQ_COUNT); asd_ha 352 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_EST_NEXUS_HEAD); asd_ha 353 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_EST_NEXUS_TAIL); asd_ha 354 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, NEED_EST_NEXUS_SCB); asd_ha 355 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, EST_NEXUS_REQ_HEAD); asd_ha 356 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, EST_NEXUS_REQ_TAIL); asd_ha 357 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, EST_NEXUS_SCB_OFFSET); asd_ha 360 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, INT_ROUT_RET_ADDR0); asd_ha 361 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, INT_ROUT_RET_ADDR1); asd_ha 362 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, INT_ROUT_SCBPTR); asd_ha 363 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, INT_ROUT_MODE); asd_ha 364 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, ISR_SCRATCH_FLAGS); asd_ha 365 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, ISR_SAVE_SINDEX); asd_ha 366 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, ISR_SAVE_DINDEX); asd_ha 367 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_MONIRTT_HEAD); asd_ha 368 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_MONIRTT_TAIL); asd_ha 369 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, FREE_SCB_MASK); asd_ha 370 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, BUILTIN_FREE_SCB_HEAD); asd_ha 371 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, BUILTIN_FREE_SCB_TAIL); asd_ha 372 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, EXTENDED_FREE_SCB_HEAD); asd_ha 373 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, EXTENDED_FREE_SCB_TAIL); asd_ha 376 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, EMPTY_REQ_QUEUE); asd_ha 377 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, EMPTY_REQ_COUNT); asd_ha 378 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_EMPTY_HEAD); asd_ha 379 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, Q_EMPTY_TAIL); asd_ha 380 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, NEED_EMPTY_SCB); asd_ha 381 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, EMPTY_REQ_HEAD); asd_ha 382 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, EMPTY_REQ_TAIL); asd_ha 383 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, EMPTY_SCB_OFFSET); asd_ha 384 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, PRIMITIVE_DATA); asd_ha 385 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_dword(asd_ha, TIMEOUT_CONST); asd_ha 390 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CMDP_word(asd_ha, LRM_SAVE_SINDEX); asd_ha 391 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CMDP_word(asd_ha, LRM_SAVE_SCBPTR); asd_ha 392 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CMDP_word(asd_ha, Q_LINK_HEAD); asd_ha 393 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CMDP_word(asd_ha, Q_LINK_TAIL); asd_ha 394 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_CMDP_byte(asd_ha, LRM_SAVE_SCRPAGE); asd_ha 397 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, RET_ADDR); asd_ha 398 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, RET_SCBPTR); asd_ha 399 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, SAVE_SCBPTR); asd_ha 400 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, EMPTY_TRANS_CTX); asd_ha 401 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, RESP_LEN); asd_ha 402 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, TMF_SCBPTR); asd_ha 403 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, GLOBAL_PREV_SCB); asd_ha 404 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, GLOBAL_HEAD); asd_ha 405 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, CLEAR_LU_HEAD); asd_ha 406 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, TMF_OPCODE); asd_ha 407 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, SCRATCH_FLAGS); asd_ha 408 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, HSB_SITE); asd_ha 409 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, FIRST_INV_SCB_SITE); asd_ha 410 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_word(asd_ha, FIRST_INV_DDB_SITE); asd_ha 413 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, LUN_TO_CLEAR); asd_ha 414 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, LUN_TO_CHECK); asd_ha 417 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, HQ_NEW_POINTER); asd_ha 418 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_qword(asd_ha, HQ_DONE_BASE); asd_ha 419 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_dword(asd_ha, HQ_DONE_POINTER); asd_ha 420 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_MIS_byte(asd_ha, HQ_DONE_PASS); asd_ha 446 drivers/scsi/aic94xx/aic94xx_dump.c static void asd_print_lseq_cio_reg(struct asd_ha_struct *asd_ha, asd_ha 453 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_byte(asd_ha, lseq_cio_addr + asd_ha 460 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, lseq_cio_addr + asd_ha 467 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_dword(asd_ha, lseq_cio_addr + asd_ha 473 drivers/scsi/aic94xx/aic94xx_dump.c static void asd_dump_lseq_state(struct asd_ha_struct *asd_ha, int lseq) asd_ha 481 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_32bit(asd_ha, lseq, ARP2CTL); asd_ha 482 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_32bit(asd_ha, lseq, ARP2INT); asd_ha 483 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_32bit(asd_ha, lseq, ARP2INTEN); asd_ha 484 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, MODEPTR); asd_ha 485 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, ALTMODE); asd_ha 486 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, FLAG); asd_ha 487 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, ARP2INTCTL); asd_ha 488 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, STACK); asd_ha 489 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, PRGMCNT); asd_ha 490 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, ACCUM); asd_ha 491 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, SINDEX); asd_ha 492 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, DINDEX); asd_ha 493 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, SINDIR); asd_ha 494 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, DINDIR); asd_ha 495 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, JUMLDIR); asd_ha 496 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_8bit(asd_ha, lseq, ARP2HALTCODE); asd_ha 497 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, CURRADDR); asd_ha 498 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, LASTADDR); asd_ha 499 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_16bit(asd_ha, lseq, NXTLADDR); asd_ha 503 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_32bit(asd_ha, lseq, MODECTL); asd_ha 504 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_32bit(asd_ha, lseq, DBGMODE); asd_ha 505 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LREG_32bit(asd_ha, lseq, CONTROL); asd_ha 506 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_32bit(asd_ha, BISTCTL0, LmBISTCTL0(lseq)); asd_ha 507 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_REG_32bit(asd_ha, BISTCTL1, LmBISTCTL1(lseq)); asd_ha 518 drivers/scsi/aic94xx/aic94xx_dump.c asd_print_lseq_cio_reg(asd_ha,lseq_cio_addr,i); asd_ha 530 drivers/scsi/aic94xx/aic94xx_dump.c asd_print_lseq_cio_reg(asd_ha, lseq_cio_addr, i); asd_ha 537 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, Q_TGTXFR_HEAD); asd_ha 538 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, Q_TGTXFR_TAIL); asd_ha 539 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, LINK_NUMBER); asd_ha 540 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, SCRATCH_FLAGS); asd_ha 541 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, CONNECTION_STATE); asd_ha 542 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, CONCTL); asd_ha 543 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, CONSTAT); asd_ha 544 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, CONNECTION_MODES); asd_ha 545 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, REG1_ISR); asd_ha 546 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, REG2_ISR); asd_ha 547 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, REG3_ISR); asd_ha 548 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_qword(asd_ha, lseq,REG0_ISR); asd_ha 551 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EST_NEXUS_SCBPTR0); asd_ha 552 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EST_NEXUS_SCBPTR1); asd_ha 553 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EST_NEXUS_SCBPTR2); asd_ha 554 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EST_NEXUS_SCBPTR3); asd_ha 555 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EST_NEXUS_SCB_OPCODE0); asd_ha 556 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EST_NEXUS_SCB_OPCODE1); asd_ha 557 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EST_NEXUS_SCB_OPCODE2); asd_ha 558 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EST_NEXUS_SCB_OPCODE3); asd_ha 559 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EST_NEXUS_SCB_HEAD); asd_ha 560 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EST_NEXUS_SCB_TAIL); asd_ha 561 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EST_NEXUS_BUF_AVAIL); asd_ha 562 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, TIMEOUT_CONST); asd_ha 563 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, ISR_SAVE_SINDEX); asd_ha 564 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, ISR_SAVE_DINDEX); asd_ha 567 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EMPTY_SCB_PTR0); asd_ha 568 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EMPTY_SCB_PTR1); asd_ha 569 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EMPTY_SCB_PTR2); asd_ha 570 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EMPTY_SCB_PTR3); asd_ha 571 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EMPTY_SCB_OPCD0); asd_ha 572 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EMPTY_SCB_OPCD1); asd_ha 573 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EMPTY_SCB_OPCD2); asd_ha 574 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EMPTY_SCB_OPCD3); asd_ha 575 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EMPTY_SCB_HEAD); asd_ha 576 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EMPTY_SCB_TAIL); asd_ha 577 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, EMPTY_BUFS_AVAIL); asd_ha 580 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, DEV_PRES_TMR_TOUT_CONST); asd_ha 581 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, SATA_INTERLOCK_TIMEOUT); asd_ha 582 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, SRST_ASSERT_TIMEOUT); asd_ha 583 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, RCV_FIS_TIMEOUT); asd_ha 584 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, ONE_MILLISEC_TIMEOUT); asd_ha 585 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, TEN_MS_COMINIT_TIMEOUT); asd_ha 586 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, SMP_RCV_TIMEOUT); asd_ha 593 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_RET_ADDR(lseq) asd_ha 596 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_REG0_MODE(lseq) asd_ha 599 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_MODE_FLAGS(lseq) asd_ha 602 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_RET_ADDR2(lseq) asd_ha 605 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_RET_ADDR1(lseq) asd_ha 608 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_byte(asd_ha, LmSEQ_OPCODE_TO_CSEQ(lseq) asd_ha 611 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_DATA_TO_CSEQ(lseq) asd_ha 618 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_RET_ADDR(lseq) + moffs)); asd_ha 620 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_REG0_MODE(lseq) + moffs)); asd_ha 622 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_MODE_FLAGS(lseq) + moffs)); asd_ha 624 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_RET_ADDR2(lseq) + moffs)); asd_ha 626 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_RET_ADDR1(lseq) + moffs)); asd_ha 628 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_byte(asd_ha, LmSEQ_OPCODE_TO_CSEQ(lseq) + moffs)); asd_ha 630 drivers/scsi/aic94xx/aic94xx_dump.c asd_read_reg_word(asd_ha, LmSEQ_DATA_TO_CSEQ(lseq) + moffs)); asd_ha 633 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, FIRST_INV_DDB_SITE); asd_ha 634 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, EMPTY_TRANS_CTX); asd_ha 635 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, RESP_LEN); asd_ha 636 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, FIRST_INV_SCB_SITE); asd_ha 637 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, INTEN_SAVE); asd_ha 638 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, LINK_RST_FRM_LEN); asd_ha 639 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, LINK_RST_PROTOCOL); asd_ha 640 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, RESP_STATUS); asd_ha 641 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, LAST_LOADED_SGE); asd_ha 642 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, SAVE_SCBPTR); asd_ha 645 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, Q_XMIT_HEAD); asd_ha 646 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, M1_EMPTY_TRANS_CTX); asd_ha 647 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, INI_CONN_TAG); asd_ha 648 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, FAILED_OPEN_STATUS); asd_ha 649 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, XMIT_REQUEST_TYPE); asd_ha 650 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, M1_RESP_STATUS); asd_ha 651 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, M1_LAST_LOADED_SGE); asd_ha 652 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, M1_SAVE_SCBPTR); asd_ha 655 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, PORT_COUNTER); asd_ha 656 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, PM_TABLE_PTR); asd_ha 657 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, SATA_INTERLOCK_TMR_SAVE); asd_ha 658 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, IP_BITL); asd_ha 659 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, COPY_SMP_CONN_TAG); asd_ha 660 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, P0M2_OFFS1AH); asd_ha 663 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, SAVED_OOB_STATUS); asd_ha 664 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, SAVED_OOB_MODE); asd_ha 665 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, Q_LINK_HEAD); asd_ha 666 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, LINK_RST_ERR); asd_ha 667 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, SAVED_OOB_SIGNALS); asd_ha 668 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, SAS_RESET_MODE); asd_ha 669 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, LINK_RESET_RETRY_COUNT); asd_ha 670 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, NUM_LINK_RESET_RETRIES); asd_ha 671 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, OOB_INT_ENABLES); asd_ha 672 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, NOTIFY_TIMER_TIMEOUT); asd_ha 673 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, NOTIFY_TIMER_DOWN_COUNT); asd_ha 676 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_qword(asd_ha, lseq, SG_LIST_PTR_ADDR0); asd_ha 677 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_qword(asd_ha, lseq, SG_LIST_PTR_ADDR1); asd_ha 680 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_qword(asd_ha, lseq, M1_SG_LIST_PTR_ADDR0); asd_ha 681 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_qword(asd_ha, lseq, M1_SG_LIST_PTR_ADDR1); asd_ha 684 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, INVALID_DWORD_COUNT); asd_ha 685 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, DISPARITY_ERROR_COUNT); asd_ha 686 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, LOSS_OF_SYNC_COUNT); asd_ha 689 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, FRAME_TYPE_MASK); asd_ha 690 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, HASHED_SRC_ADDR_MASK_PRINT); asd_ha 691 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, NUM_FILL_BYTES_MASK); asd_ha 692 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, TAG_MASK); asd_ha 693 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, TARGET_PORT_XFER_TAG); asd_ha 694 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, DATA_OFFSET); asd_ha 697 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, SMP_RCV_TIMER_TERM_TS); asd_ha 698 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_byte(asd_ha, lseq, DEVICE_BITS); asd_ha 699 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, SDB_DDB); asd_ha 700 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, SDB_NUM_TAGS); asd_ha 701 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_word(asd_ha, lseq, SDB_CURR_TAG); asd_ha 704 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_qword(asd_ha, lseq, TX_ID_ADDR_FRAME); asd_ha 705 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, OPEN_TIMER_TERM_TS); asd_ha 706 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, SRST_AS_TIMER_TERM_TS); asd_ha 707 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, LAST_LOADED_SG_EL); asd_ha 710 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, CLOSE_TIMER_TERM_TS); asd_ha 711 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, BREAK_TIMER_TERM_TS); asd_ha 712 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, DWS_RESET_TIMER_TERM_TS); asd_ha 713 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, SATA_INTERLOCK_TIMER_TERM_TS); asd_ha 714 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, MCTL_TIMER_TERM_TS); asd_ha 717 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, COMINIT_TIMER_TERM_TS); asd_ha 718 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, RCV_ID_TIMER_TERM_TS); asd_ha 719 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, RCV_FIS_TIMER_TERM_TS); asd_ha 720 drivers/scsi/aic94xx/aic94xx_dump.c PRINT_LMIP_dword(asd_ha, lseq, DEV_PRES_TIMER_TERM_TS); asd_ha 730 drivers/scsi/aic94xx/aic94xx_dump.c void asd_dump_target_ddb(struct asd_ha_struct *asd_ha, u16 site_no) asd_ha 732 drivers/scsi/aic94xx/aic94xx_dump.c if (site_no >= asd_ha->hw_prof.max_ddbs) asd_ha 736 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_byte(asd_ha, site_no, \ asd_ha 739 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_byte(asd_ha, site_no, \ asd_ha 742 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_word(asd_ha, site_no, \ asd_ha 746 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_dword(asd_ha, site_no, \ asd_ha 775 drivers/scsi/aic94xx/aic94xx_dump.c void asd_dump_ddb_0(struct asd_ha_struct *asd_ha) asd_ha 778 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_byte(asd_ha, 0, \ asd_ha 781 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_word(asd_ha, 0, \ asd_ha 785 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_dword(asd_ha,0 , \ asd_ha 789 drivers/scsi/aic94xx/aic94xx_dump.c asd_ddbsite_read_byte(asd_ha, 0, \ asd_ha 818 drivers/scsi/aic94xx/aic94xx_dump.c static void asd_dump_scb_site(struct asd_ha_struct *asd_ha, u16 site_no) asd_ha 822 drivers/scsi/aic94xx/aic94xx_dump.c asd_scbsite_read_byte(asd_ha, site_no, sizeof(struct scb_header) \ asd_ha 825 drivers/scsi/aic94xx/aic94xx_dump.c asd_scbsite_read_word(asd_ha, site_no, sizeof(struct scb_header) \ asd_ha 828 drivers/scsi/aic94xx/aic94xx_dump.c asd_scbsite_read_dword(asd_ha, site_no, sizeof(struct scb_header) \ asd_ha 844 drivers/scsi/aic94xx/aic94xx_dump.c void asd_dump_scb_sites(struct asd_ha_struct *asd_ha) asd_ha 848 drivers/scsi/aic94xx/aic94xx_dump.c for (site_no = 0; site_no < asd_ha->hw_prof.max_scbs; site_no++) { asd_ha 856 drivers/scsi/aic94xx/aic94xx_dump.c opcode = asd_scbsite_read_byte(asd_ha, site_no, asd_ha 863 drivers/scsi/aic94xx/aic94xx_dump.c asd_dump_scb_site(asd_ha, site_no); asd_ha 874 drivers/scsi/aic94xx/aic94xx_dump.c void asd_dump_seq_state(struct asd_ha_struct *asd_ha, u8 lseq_mask) asd_ha 878 drivers/scsi/aic94xx/aic94xx_dump.c asd_dump_cseq_state(asd_ha); asd_ha 882 drivers/scsi/aic94xx/aic94xx_dump.c asd_dump_lseq_state(asd_ha, lseq); asd_ha 14 drivers/scsi/aic94xx/aic94xx_dump.h void asd_dump_seq_state(struct asd_ha_struct *asd_ha, u8 lseq_mask); asd_ha 19 drivers/scsi/aic94xx/aic94xx_dump.h static inline void asd_dump_seq_state(struct asd_ha_struct *asd_ha, asd_ha 25 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_get_user_sas_addr(struct asd_ha_struct *asd_ha) asd_ha 28 drivers/scsi/aic94xx/aic94xx_hwi.c if (asd_ha->hw_prof.sas_addr[0]) asd_ha 31 drivers/scsi/aic94xx/aic94xx_hwi.c return sas_request_addr(asd_ha->sas_ha.core.shost, asd_ha 32 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.sas_addr); asd_ha 35 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_propagate_sas_addr(struct asd_ha_struct *asd_ha) asd_ha 40 drivers/scsi/aic94xx/aic94xx_hwi.c if (asd_ha->hw_prof.phy_desc[i].sas_addr[0] == 0) asd_ha 45 drivers/scsi/aic94xx/aic94xx_hwi.c SAS_ADDR(asd_ha->hw_prof.sas_addr)); asd_ha 46 drivers/scsi/aic94xx/aic94xx_hwi.c memcpy(asd_ha->hw_prof.phy_desc[i].sas_addr, asd_ha 47 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.sas_addr, SAS_ADDR_SIZE); asd_ha 71 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_ha_struct *asd_ha = phy->sas_phy.ha->lldd_ha; asd_ha 83 drivers/scsi/aic94xx/aic94xx_hwi.c phy->id_frm_tok = asd_alloc_coherent(asd_ha, asd_ha 97 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_init_ports(struct asd_ha_struct *asd_ha) asd_ha 101 drivers/scsi/aic94xx/aic94xx_hwi.c spin_lock_init(&asd_ha->asd_ports_lock); asd_ha 103 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_port *asd_port = &asd_ha->asd_ports[i]; asd_ha 112 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_init_phys(struct asd_ha_struct *asd_ha) asd_ha 115 drivers/scsi/aic94xx/aic94xx_hwi.c u8 phy_mask = asd_ha->hw_prof.enabled_phys; asd_ha 118 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_phy *phy = &asd_ha->phys[i]; asd_ha 120 drivers/scsi/aic94xx/aic94xx_hwi.c phy->phy_desc = &asd_ha->hw_prof.phy_desc[i]; asd_ha 127 drivers/scsi/aic94xx/aic94xx_hwi.c phy->sas_phy.ha = &asd_ha->sas_ha; asd_ha 133 drivers/scsi/aic94xx/aic94xx_hwi.c int err = asd_init_phy(&asd_ha->phys[i]); asd_ha 143 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_init_sw(struct asd_ha_struct *asd_ha) asd_ha 145 drivers/scsi/aic94xx/aic94xx_hwi.c struct pci_dev *pcidev = asd_ha->pcidev; asd_ha 171 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->io_handle[0].swa_base = REG_BASE_ADDR; asd_ha 172 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->io_handle[0].swb_base = REG_BASE_ADDR_CSEQCIO; asd_ha 173 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->io_handle[0].swc_base = REG_BASE_ADDR_EXSI; asd_ha 174 drivers/scsi/aic94xx/aic94xx_hwi.c MBAR0_SWB_SIZE = asd_ha->io_handle[0].len - 0x80; asd_ha 175 drivers/scsi/aic94xx/aic94xx_hwi.c if (!asd_ha->iospace) { asd_ha 178 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->io_handle[1].swa_base = OCM_BASE_ADDR; asd_ha 180 drivers/scsi/aic94xx/aic94xx_hwi.c spin_lock_init(&asd_ha->iolock); asd_ha 198 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_init_scbs(struct asd_ha_struct *asd_ha) asd_ha 200 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 204 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.tc_index_bitmap_bits = asd_ha->hw_prof.max_scbs; asd_ha 205 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.tc_index_array = kcalloc(asd_ha->seq.tc_index_bitmap_bits, asd_ha 208 drivers/scsi/aic94xx/aic94xx_hwi.c if (!asd_ha->seq.tc_index_array) asd_ha 211 drivers/scsi/aic94xx/aic94xx_hwi.c bitmap_bytes = (asd_ha->seq.tc_index_bitmap_bits+7)/8; asd_ha 213 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.tc_index_bitmap = kzalloc(bitmap_bytes, GFP_KERNEL); asd_ha 214 drivers/scsi/aic94xx/aic94xx_hwi.c if (!asd_ha->seq.tc_index_bitmap) { asd_ha 215 drivers/scsi/aic94xx/aic94xx_hwi.c kfree(asd_ha->seq.tc_index_array); asd_ha 216 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.tc_index_array = NULL; asd_ha 223 drivers/scsi/aic94xx/aic94xx_hwi.c seq->next_scb.vaddr = dma_pool_alloc(asd_ha->scb_pool, GFP_KERNEL, asd_ha 226 drivers/scsi/aic94xx/aic94xx_hwi.c kfree(asd_ha->seq.tc_index_bitmap); asd_ha 227 drivers/scsi/aic94xx/aic94xx_hwi.c kfree(asd_ha->seq.tc_index_array); asd_ha 228 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.tc_index_bitmap = NULL; asd_ha 229 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.tc_index_array = NULL; asd_ha 240 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_get_max_scb_ddb(struct asd_ha_struct *asd_ha) asd_ha 242 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.max_scbs = asd_get_cmdctx_size(asd_ha)/ASD_SCB_SIZE; asd_ha 243 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.max_ddbs = asd_get_devctx_size(asd_ha)/ASD_DDB_SIZE; asd_ha 245 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.max_scbs, asd_ha 246 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.max_ddbs); asd_ha 253 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_init_dl(struct asd_ha_struct *asd_ha) asd_ha 255 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.actual_dl asd_ha 256 drivers/scsi/aic94xx/aic94xx_hwi.c = asd_alloc_coherent(asd_ha, asd_ha 259 drivers/scsi/aic94xx/aic94xx_hwi.c if (!asd_ha->seq.actual_dl) asd_ha 261 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.dl = asd_ha->seq.actual_dl->vaddr; asd_ha 262 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.dl_toggle = ASD_DEF_DL_TOGGLE; asd_ha 263 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.dl_next = 0; asd_ha 264 drivers/scsi/aic94xx/aic94xx_hwi.c tasklet_init(&asd_ha->seq.dl_tasklet, asd_dl_tasklet_handler, asd_ha 265 drivers/scsi/aic94xx/aic94xx_hwi.c (unsigned long) asd_ha); asd_ha 272 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_alloc_edbs(struct asd_ha_struct *asd_ha, gfp_t gfp_flags) asd_ha 274 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 283 drivers/scsi/aic94xx/aic94xx_hwi.c seq->edb_arr[i] = asd_alloc_coherent(asd_ha, ASD_EDB_SIZE, asd_ha 296 drivers/scsi/aic94xx/aic94xx_hwi.c asd_free_coherent(asd_ha, seq->edb_arr[i]); asd_ha 303 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_alloc_escbs(struct asd_ha_struct *asd_ha, asd_ha 306 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 316 drivers/scsi/aic94xx/aic94xx_hwi.c escb = asd_ascb_alloc_list(asd_ha, &escbs, gfp_flags); asd_ha 339 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_assign_edbs2escbs(struct asd_ha_struct *asd_ha) asd_ha 341 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 370 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_init_escbs(struct asd_ha_struct *asd_ha) asd_ha 372 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 376 drivers/scsi/aic94xx/aic94xx_hwi.c int edbs = 2*(1+asd_ha->hw_prof.num_phys); asd_ha 381 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_alloc_edbs(asd_ha, GFP_KERNEL); asd_ha 387 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_alloc_escbs(asd_ha, GFP_KERNEL); asd_ha 393 drivers/scsi/aic94xx/aic94xx_hwi.c asd_assign_edbs2escbs(asd_ha); asd_ha 400 drivers/scsi/aic94xx/aic94xx_hwi.c seq->can_queue = 1 + (asd_ha->hw_prof.max_scbs - seq->pending)/2; asd_ha 414 drivers/scsi/aic94xx/aic94xx_hwi.c int asd_chip_hardrst(struct asd_ha_struct *asd_ha) asd_ha 421 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, COMBIST, HARDRST); asd_ha 426 drivers/scsi/aic94xx/aic94xx_hwi.c reg = asd_read_reg_dword(asd_ha, CHIMINT); asd_ha 428 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, CHIMINT, asd_ha 445 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_init_chip(struct asd_ha_struct *asd_ha) asd_ha 449 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_chip_hardrst(asd_ha); asd_ha 452 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 456 drivers/scsi/aic94xx/aic94xx_hwi.c asd_disable_ints(asd_ha); asd_ha 458 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_init_seqs(asd_ha); asd_ha 461 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 465 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_start_seqs(asd_ha); asd_ha 468 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 489 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_extend_devctx_ocm(struct asd_ha_struct *asd_ha) asd_ha 494 drivers/scsi/aic94xx/aic94xx_hwi.c dma_addr -= asd_ha->hw_prof.max_ddbs * ASD_DDB_SIZE; asd_ha 495 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_addr(asd_ha, DEVCTXBASE, (dma_addr_t) dma_addr); asd_ha 496 drivers/scsi/aic94xx/aic94xx_hwi.c d = asd_read_reg_dword(asd_ha, CTXDOMAIN); asd_ha 498 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, CTXDOMAIN, d); asd_ha 499 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.max_ddbs += MAX_DEVS; asd_ha 502 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_extend_devctx(struct asd_ha_struct *asd_ha) asd_ha 509 drivers/scsi/aic94xx/aic94xx_hwi.c asd_extend_devctx_ocm(asd_ha); asd_ha 511 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.ddb_ext = NULL; asd_ha 512 drivers/scsi/aic94xx/aic94xx_hwi.c if (max_devs <= asd_ha->hw_prof.max_ddbs || max_devs > 0xFFFF) { asd_ha 513 drivers/scsi/aic94xx/aic94xx_hwi.c max_devs = asd_ha->hw_prof.max_ddbs; asd_ha 517 drivers/scsi/aic94xx/aic94xx_hwi.c size = (max_devs - asd_ha->hw_prof.max_ddbs + 1) * ASD_DDB_SIZE; asd_ha 519 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.ddb_ext = asd_alloc_coherent(asd_ha, size, GFP_KERNEL); asd_ha 520 drivers/scsi/aic94xx/aic94xx_hwi.c if (!asd_ha->hw_prof.ddb_ext) { asd_ha 523 drivers/scsi/aic94xx/aic94xx_hwi.c max_devs = asd_ha->hw_prof.max_ddbs; asd_ha 526 drivers/scsi/aic94xx/aic94xx_hwi.c dma_handle = asd_ha->hw_prof.ddb_ext->dma_handle; asd_ha 528 drivers/scsi/aic94xx/aic94xx_hwi.c dma_addr -= asd_ha->hw_prof.max_ddbs * ASD_DDB_SIZE; asd_ha 530 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_addr(asd_ha, DEVCTXBASE, dma_handle); asd_ha 531 drivers/scsi/aic94xx/aic94xx_hwi.c d = asd_read_reg_dword(asd_ha, CTXDOMAIN); asd_ha 533 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, CTXDOMAIN, d); asd_ha 535 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.max_ddbs = max_devs; asd_ha 540 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_extend_cmdctx(struct asd_ha_struct *asd_ha) asd_ha 547 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.scb_ext = NULL; asd_ha 548 drivers/scsi/aic94xx/aic94xx_hwi.c if (max_cmnds <= asd_ha->hw_prof.max_scbs || max_cmnds > 0xFFFF) { asd_ha 549 drivers/scsi/aic94xx/aic94xx_hwi.c max_cmnds = asd_ha->hw_prof.max_scbs; asd_ha 553 drivers/scsi/aic94xx/aic94xx_hwi.c size = (max_cmnds - asd_ha->hw_prof.max_scbs + 1) * ASD_SCB_SIZE; asd_ha 555 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.scb_ext = asd_alloc_coherent(asd_ha, size, GFP_KERNEL); asd_ha 556 drivers/scsi/aic94xx/aic94xx_hwi.c if (!asd_ha->hw_prof.scb_ext) { asd_ha 559 drivers/scsi/aic94xx/aic94xx_hwi.c max_cmnds = asd_ha->hw_prof.max_scbs; asd_ha 562 drivers/scsi/aic94xx/aic94xx_hwi.c dma_handle = asd_ha->hw_prof.scb_ext->dma_handle; asd_ha 564 drivers/scsi/aic94xx/aic94xx_hwi.c dma_addr -= asd_ha->hw_prof.max_scbs * ASD_SCB_SIZE; asd_ha 566 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_addr(asd_ha, CMDCTXBASE, dma_handle); asd_ha 567 drivers/scsi/aic94xx/aic94xx_hwi.c d = asd_read_reg_dword(asd_ha, CTXDOMAIN); asd_ha 569 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, CTXDOMAIN, d); asd_ha 571 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.max_scbs = max_cmnds; asd_ha 588 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_init_ctxmem(struct asd_ha_struct *asd_ha) asd_ha 592 drivers/scsi/aic94xx/aic94xx_hwi.c asd_get_max_scb_ddb(asd_ha); asd_ha 593 drivers/scsi/aic94xx/aic94xx_hwi.c asd_extend_devctx(asd_ha); asd_ha 594 drivers/scsi/aic94xx/aic94xx_hwi.c asd_extend_cmdctx(asd_ha); asd_ha 597 drivers/scsi/aic94xx/aic94xx_hwi.c bitmap_bytes = (asd_ha->hw_prof.max_ddbs+7)/8; asd_ha 599 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->hw_prof.ddb_bitmap = kzalloc(bitmap_bytes, GFP_KERNEL); asd_ha 600 drivers/scsi/aic94xx/aic94xx_hwi.c if (!asd_ha->hw_prof.ddb_bitmap) asd_ha 602 drivers/scsi/aic94xx/aic94xx_hwi.c spin_lock_init(&asd_ha->hw_prof.ddb_lock); asd_ha 607 drivers/scsi/aic94xx/aic94xx_hwi.c int asd_init_hw(struct asd_ha_struct *asd_ha) asd_ha 612 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_init_sw(asd_ha); asd_ha 616 drivers/scsi/aic94xx/aic94xx_hwi.c err = pci_read_config_dword(asd_ha->pcidev, PCIC_HSTPCIX_CNTRL, &v); asd_ha 619 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 622 drivers/scsi/aic94xx/aic94xx_hwi.c err = pci_write_config_dword(asd_ha->pcidev, PCIC_HSTPCIX_CNTRL, asd_ha 626 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 630 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_read_ocm(asd_ha); asd_ha 637 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_read_flash(asd_ha); asd_ha 645 drivers/scsi/aic94xx/aic94xx_hwi.c asd_init_ctxmem(asd_ha); asd_ha 647 drivers/scsi/aic94xx/aic94xx_hwi.c if (asd_get_user_sas_addr(asd_ha)) { asd_ha 649 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 654 drivers/scsi/aic94xx/aic94xx_hwi.c asd_propagate_sas_addr(asd_ha); asd_ha 656 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_init_phys(asd_ha); asd_ha 659 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 663 drivers/scsi/aic94xx/aic94xx_hwi.c asd_init_ports(asd_ha); asd_ha 665 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_init_scbs(asd_ha); asd_ha 668 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 672 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_init_dl(asd_ha); asd_ha 679 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_init_escbs(asd_ha); asd_ha 685 drivers/scsi/aic94xx/aic94xx_hwi.c err = asd_init_chip(asd_ha); asd_ha 706 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_chip_reset(struct asd_ha_struct *asd_ha) asd_ha 708 drivers/scsi/aic94xx/aic94xx_hwi.c ASD_DPRINTK("chip reset for %s\n", pci_name(asd_ha->pcidev)); asd_ha 709 drivers/scsi/aic94xx/aic94xx_hwi.c asd_chip_hardrst(asd_ha); asd_ha 716 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_ha_struct *asd_ha = (struct asd_ha_struct *) data; asd_ha 717 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 759 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_process_donelist_isr(struct asd_ha_struct *asd_ha) asd_ha 761 drivers/scsi/aic94xx/aic94xx_hwi.c tasklet_schedule(&asd_ha->seq.dl_tasklet); asd_ha 768 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_com_sas_isr(struct asd_ha_struct *asd_ha) asd_ha 770 drivers/scsi/aic94xx/aic94xx_hwi.c u32 comstat = asd_read_reg_dword(asd_ha, COMSTAT); asd_ha 773 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, COMSTAT, 0xFFFFFFFF); asd_ha 777 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 780 drivers/scsi/aic94xx/aic94xx_hwi.c u32 dmaerr = asd_read_reg_dword(asd_ha, DMAERR); asd_ha 784 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 786 drivers/scsi/aic94xx/aic94xx_hwi.c asd_read_reg_dword(asd_ha, CSDMAADR), asd_ha 787 drivers/scsi/aic94xx/aic94xx_hwi.c asd_read_reg_dword(asd_ha, CSDMAADR+4)); asd_ha 791 drivers/scsi/aic94xx/aic94xx_hwi.c asd_read_reg_dword(asd_ha, CSBUFFER), asd_ha 792 drivers/scsi/aic94xx/aic94xx_hwi.c asd_read_reg_dword(asd_ha, CSBUFFER+4), asd_ha 793 drivers/scsi/aic94xx/aic94xx_hwi.c asd_read_reg_dword(asd_ha, CSBUFFER+8), asd_ha 794 drivers/scsi/aic94xx/aic94xx_hwi.c asd_read_reg_dword(asd_ha, CSBUFFER+12)); asd_ha 796 drivers/scsi/aic94xx/aic94xx_hwi.c asd_dump_seq_state(asd_ha, 0); asd_ha 798 drivers/scsi/aic94xx/aic94xx_hwi.c u32 dmaerr = asd_read_reg_dword(asd_ha, DMAERR); asd_ha 801 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 804 drivers/scsi/aic94xx/aic94xx_hwi.c asd_chip_reset(asd_ha); asd_ha 807 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_arp2_err(struct asd_ha_struct *asd_ha, u32 dchstatus) asd_ha 849 drivers/scsi/aic94xx/aic94xx_hwi.c u32 arp2int = asd_read_reg_dword(asd_ha, CARP2INT); asd_ha 853 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 857 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 861 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 869 drivers/scsi/aic94xx/aic94xx_hwi.c u32 arp2int = asd_read_reg_dword(asd_ha, asd_ha 874 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 879 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 883 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), lseq, asd_ha 887 drivers/scsi/aic94xx/aic94xx_hwi.c asd_chip_reset(asd_ha); asd_ha 894 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_dch_sas_isr(struct asd_ha_struct *asd_ha) asd_ha 896 drivers/scsi/aic94xx/aic94xx_hwi.c u32 dchstatus = asd_read_reg_dword(asd_ha, DCHSTATUS); asd_ha 899 drivers/scsi/aic94xx/aic94xx_hwi.c asd_printk("%s: CFIFTOERR\n", pci_name(asd_ha->pcidev)); asd_ha 900 drivers/scsi/aic94xx/aic94xx_hwi.c asd_chip_reset(asd_ha); asd_ha 902 drivers/scsi/aic94xx/aic94xx_hwi.c asd_arp2_err(asd_ha, dchstatus); asd_ha 909 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_rbi_exsi_isr(struct asd_ha_struct *asd_ha) asd_ha 911 drivers/scsi/aic94xx/aic94xx_hwi.c u32 stat0r = asd_read_reg_dword(asd_ha, ASISTAT0R); asd_ha 920 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 922 drivers/scsi/aic94xx/aic94xx_hwi.c u32 stat1r = asd_read_reg_dword(asd_ha, ASISTAT1R); asd_ha 925 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 927 drivers/scsi/aic94xx/aic94xx_hwi.c u32 statr = asd_read_reg_dword(asd_ha, ASIERRSTATR); asd_ha 933 drivers/scsi/aic94xx/aic94xx_hwi.c u32 addr = asd_read_reg_dword(asd_ha, ASIERRADDR); asd_ha 934 drivers/scsi/aic94xx/aic94xx_hwi.c u32 data = asd_read_reg_dword(asd_ha, ASIERRDATAR); asd_ha 939 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev), asd_ha 948 drivers/scsi/aic94xx/aic94xx_hwi.c asd_chip_reset(asd_ha); asd_ha 957 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_hst_pcix_isr(struct asd_ha_struct *asd_ha) asd_ha 963 drivers/scsi/aic94xx/aic94xx_hwi.c pci_read_config_word(asd_ha->pcidev, PCI_STATUS, &status); asd_ha 964 drivers/scsi/aic94xx/aic94xx_hwi.c pci_read_config_dword(asd_ha->pcidev, PCIX_STATUS, &pcix_status); asd_ha 965 drivers/scsi/aic94xx/aic94xx_hwi.c pci_read_config_dword(asd_ha->pcidev, ECC_CTRL_STAT, &ecc_status); asd_ha 968 drivers/scsi/aic94xx/aic94xx_hwi.c asd_printk("parity error for %s\n", pci_name(asd_ha->pcidev)); asd_ha 970 drivers/scsi/aic94xx/aic94xx_hwi.c asd_printk("master abort for %s\n", pci_name(asd_ha->pcidev)); asd_ha 972 drivers/scsi/aic94xx/aic94xx_hwi.c asd_printk("target abort for %s\n", pci_name(asd_ha->pcidev)); asd_ha 974 drivers/scsi/aic94xx/aic94xx_hwi.c asd_printk("data parity for %s\n", pci_name(asd_ha->pcidev)); asd_ha 977 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 978 drivers/scsi/aic94xx/aic94xx_hwi.c pci_write_config_dword(asd_ha->pcidev,PCIX_STATUS,pcix_status); asd_ha 983 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 984 drivers/scsi/aic94xx/aic94xx_hwi.c pci_write_config_dword(asd_ha->pcidev,PCIX_STATUS,pcix_status); asd_ha 989 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 992 drivers/scsi/aic94xx/aic94xx_hwi.c pci_name(asd_ha->pcidev)); asd_ha 993 drivers/scsi/aic94xx/aic94xx_hwi.c asd_chip_reset(asd_ha); asd_ha 1005 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_ha_struct *asd_ha = dev_id; asd_ha 1006 drivers/scsi/aic94xx/aic94xx_hwi.c u32 chimint = asd_read_reg_dword(asd_ha, CHIMINT); asd_ha 1011 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, CHIMINT, chimint); asd_ha 1012 drivers/scsi/aic94xx/aic94xx_hwi.c (void) asd_read_reg_dword(asd_ha, CHIMINT); asd_ha 1015 drivers/scsi/aic94xx/aic94xx_hwi.c asd_process_donelist_isr(asd_ha); asd_ha 1017 drivers/scsi/aic94xx/aic94xx_hwi.c asd_com_sas_isr(asd_ha); asd_ha 1019 drivers/scsi/aic94xx/aic94xx_hwi.c asd_dch_sas_isr(asd_ha); asd_ha 1021 drivers/scsi/aic94xx/aic94xx_hwi.c asd_rbi_exsi_isr(asd_ha); asd_ha 1023 drivers/scsi/aic94xx/aic94xx_hwi.c asd_hst_pcix_isr(asd_ha); asd_ha 1030 drivers/scsi/aic94xx/aic94xx_hwi.c static struct asd_ascb *asd_ascb_alloc(struct asd_ha_struct *asd_ha, asd_ha 1034 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 1042 drivers/scsi/aic94xx/aic94xx_hwi.c ascb->dma_scb.vaddr = dma_pool_zalloc(asd_ha->scb_pool, asd_ha 1049 drivers/scsi/aic94xx/aic94xx_hwi.c asd_init_ascb(asd_ha, ascb); asd_ha 1062 drivers/scsi/aic94xx/aic94xx_hwi.c dma_pool_free(asd_ha->scb_pool, ascb->dma_scb.vaddr, asd_ha 1086 drivers/scsi/aic94xx/aic94xx_hwi.c *asd_ha, int *num, asd_ha 1092 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_ascb *ascb = asd_ascb_alloc(asd_ha, gfp_flags); asd_ha 1129 drivers/scsi/aic94xx/aic94xx_hwi.c static void asd_swap_head_scb(struct asd_ha_struct *asd_ha, asd_ha 1132 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 1187 drivers/scsi/aic94xx/aic94xx_hwi.c int asd_post_ascb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, asd_ha 1194 drivers/scsi/aic94xx/aic94xx_hwi.c spin_lock_irqsave(&asd_ha->seq.pend_q_lock, flags); asd_ha 1195 drivers/scsi/aic94xx/aic94xx_hwi.c can_queue = asd_ha->hw_prof.max_scbs - asd_ha->seq.pending; asd_ha 1197 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.pending += num; asd_ha 1202 drivers/scsi/aic94xx/aic94xx_hwi.c spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); asd_ha 1203 drivers/scsi/aic94xx/aic94xx_hwi.c asd_printk("%s: scb queue full\n", pci_name(asd_ha->pcidev)); asd_ha 1207 drivers/scsi/aic94xx/aic94xx_hwi.c asd_swap_head_scb(asd_ha, ascb); asd_ha 1213 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.scbpro += num; asd_ha 1214 drivers/scsi/aic94xx/aic94xx_hwi.c list_splice_init(&list, asd_ha->seq.pend_q.prev); asd_ha 1215 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, SCBPRO, (u32)asd_ha->seq.scbpro); asd_ha 1216 drivers/scsi/aic94xx/aic94xx_hwi.c spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); asd_ha 1239 drivers/scsi/aic94xx/aic94xx_hwi.c int asd_post_escb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, asd_ha 1244 drivers/scsi/aic94xx/aic94xx_hwi.c spin_lock_irqsave(&asd_ha->seq.pend_q_lock, flags); asd_ha 1245 drivers/scsi/aic94xx/aic94xx_hwi.c asd_swap_head_scb(asd_ha, ascb); asd_ha 1246 drivers/scsi/aic94xx/aic94xx_hwi.c asd_ha->seq.scbpro += num; asd_ha 1247 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, SCBPRO, (u32)asd_ha->seq.scbpro); asd_ha 1248 drivers/scsi/aic94xx/aic94xx_hwi.c spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); asd_ha 1261 drivers/scsi/aic94xx/aic94xx_hwi.c void asd_turn_led(struct asd_ha_struct *asd_ha, int phy_id, int op) asd_ha 1264 drivers/scsi/aic94xx/aic94xx_hwi.c u32 v = asd_read_reg_dword(asd_ha, LmCONTROL(phy_id)); asd_ha 1269 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, LmCONTROL(phy_id), v); asd_ha 1282 drivers/scsi/aic94xx/aic94xx_hwi.c void asd_control_led(struct asd_ha_struct *asd_ha, int phy_id, int op) asd_ha 1287 drivers/scsi/aic94xx/aic94xx_hwi.c v = asd_read_reg_dword(asd_ha, GPIOOER); asd_ha 1292 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, GPIOOER, v); asd_ha 1294 drivers/scsi/aic94xx/aic94xx_hwi.c v = asd_read_reg_dword(asd_ha, GPIOCNFGR); asd_ha 1299 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, GPIOCNFGR, v); asd_ha 1305 drivers/scsi/aic94xx/aic94xx_hwi.c static int asd_enable_phy(struct asd_ha_struct *asd_ha, int phy_id) asd_ha 1307 drivers/scsi/aic94xx/aic94xx_hwi.c struct asd_phy *phy = &asd_ha->phys[phy_id]; asd_ha 1309 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_byte(asd_ha, LmSEQ_OOB_REG(phy_id, INT_ENABLE_2), 0); asd_ha 1310 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_byte(asd_ha, LmSEQ_OOB_REG(phy_id, HOT_PLUG_DELAY), asd_ha 1315 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_byte(asd_ha, LmSEQ_OOB_REG(phy_id, PHY_CONTROL_0), asd_ha 1317 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_byte(asd_ha, LmSEQ_OOB_REG(phy_id, PHY_CONTROL_1), asd_ha 1319 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_byte(asd_ha, LmSEQ_OOB_REG(phy_id, PHY_CONTROL_2), asd_ha 1321 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_byte(asd_ha, LmSEQ_OOB_REG(phy_id, PHY_CONTROL_3), asd_ha 1324 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_dword(asd_ha, LmSEQ_TEN_MS_COMINIT_TIMEOUT(phy_id), asd_ha 1327 drivers/scsi/aic94xx/aic94xx_hwi.c asd_write_reg_addr(asd_ha, LmSEQ_TX_ID_ADDR_FRAME(phy_id), asd_ha 1330 drivers/scsi/aic94xx/aic94xx_hwi.c asd_control_led(asd_ha, phy_id, 1); asd_ha 1335 drivers/scsi/aic94xx/aic94xx_hwi.c int asd_enable_phys(struct asd_ha_struct *asd_ha, const u8 phy_mask) asd_ha 1350 drivers/scsi/aic94xx/aic94xx_hwi.c asd_enable_phy(asd_ha, i); asd_ha 1354 drivers/scsi/aic94xx/aic94xx_hwi.c ascb_list = asd_ascb_alloc_list(asd_ha, &k, GFP_KERNEL); asd_ha 1367 drivers/scsi/aic94xx/aic94xx_hwi.c k = asd_post_ascb_list(asd_ha, ascb_list, num); asd_ha 242 drivers/scsi/aic94xx/aic94xx_hwi.h asd_ha, size_t size, asd_ha 248 drivers/scsi/aic94xx/aic94xx_hwi.h token->vaddr = dma_alloc_coherent(&asd_ha->pcidev->dev, asd_ha 260 drivers/scsi/aic94xx/aic94xx_hwi.h static inline void asd_free_coherent(struct asd_ha_struct *asd_ha, asd_ha 264 drivers/scsi/aic94xx/aic94xx_hwi.h dma_free_coherent(&asd_ha->pcidev->dev, token->size, asd_ha 270 drivers/scsi/aic94xx/aic94xx_hwi.h static inline void asd_init_ascb(struct asd_ha_struct *asd_ha, asd_ha 275 drivers/scsi/aic94xx/aic94xx_hwi.h ascb->ha = asd_ha; asd_ha 322 drivers/scsi/aic94xx/aic94xx_hwi.h struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 329 drivers/scsi/aic94xx/aic94xx_hwi.h dma_pool_free(asd_ha->scb_pool, ascb->dma_scb.vaddr, asd_ha 357 drivers/scsi/aic94xx/aic94xx_hwi.h int asd_init_hw(struct asd_ha_struct *asd_ha); asd_ha 362 drivers/scsi/aic94xx/aic94xx_hwi.h *asd_ha, int *num, asd_ha 365 drivers/scsi/aic94xx/aic94xx_hwi.h int asd_post_ascb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, asd_ha 367 drivers/scsi/aic94xx/aic94xx_hwi.h int asd_post_escb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, asd_ha 370 drivers/scsi/aic94xx/aic94xx_hwi.h int asd_init_post_escbs(struct asd_ha_struct *asd_ha); asd_ha 372 drivers/scsi/aic94xx/aic94xx_hwi.h void asd_control_led(struct asd_ha_struct *asd_ha, int phy_id, int op); asd_ha 373 drivers/scsi/aic94xx/aic94xx_hwi.h void asd_turn_led(struct asd_ha_struct *asd_ha, int phy_id, int op); asd_ha 374 drivers/scsi/aic94xx/aic94xx_hwi.h int asd_enable_phys(struct asd_ha_struct *asd_ha, const u8 phy_mask); asd_ha 377 drivers/scsi/aic94xx/aic94xx_hwi.h int asd_chip_hardrst(struct asd_ha_struct *asd_ha); asd_ha 60 drivers/scsi/aic94xx/aic94xx_init.c static int asd_map_memio(struct asd_ha_struct *asd_ha) asd_ha 65 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->iospace = 0; asd_ha 67 drivers/scsi/aic94xx/aic94xx_init.c io_handle = &asd_ha->io_handle[i==0?0:1]; asd_ha 68 drivers/scsi/aic94xx/aic94xx_init.c io_handle->start = pci_resource_start(asd_ha->pcidev, i); asd_ha 69 drivers/scsi/aic94xx/aic94xx_init.c io_handle->len = pci_resource_len(asd_ha->pcidev, i); asd_ha 70 drivers/scsi/aic94xx/aic94xx_init.c io_handle->flags = pci_resource_flags(asd_ha->pcidev, i); asd_ha 74 drivers/scsi/aic94xx/aic94xx_init.c i==0?0:1, pci_name(asd_ha->pcidev)); asd_ha 77 drivers/scsi/aic94xx/aic94xx_init.c err = pci_request_region(asd_ha->pcidev, i, ASD_DRIVER_NAME); asd_ha 80 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 86 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 94 drivers/scsi/aic94xx/aic94xx_init.c pci_release_region(asd_ha->pcidev, i); asd_ha 97 drivers/scsi/aic94xx/aic94xx_init.c io_handle = &asd_ha->io_handle[0]; asd_ha 99 drivers/scsi/aic94xx/aic94xx_init.c pci_release_region(asd_ha->pcidev, 0); asd_ha 104 drivers/scsi/aic94xx/aic94xx_init.c static void asd_unmap_memio(struct asd_ha_struct *asd_ha) asd_ha 108 drivers/scsi/aic94xx/aic94xx_init.c io_handle = &asd_ha->io_handle[1]; asd_ha 110 drivers/scsi/aic94xx/aic94xx_init.c pci_release_region(asd_ha->pcidev, 2); asd_ha 112 drivers/scsi/aic94xx/aic94xx_init.c io_handle = &asd_ha->io_handle[0]; asd_ha 114 drivers/scsi/aic94xx/aic94xx_init.c pci_release_region(asd_ha->pcidev, 0); asd_ha 117 drivers/scsi/aic94xx/aic94xx_init.c static int asd_map_ioport(struct asd_ha_struct *asd_ha) asd_ha 120 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_addrspace *io_handle = &asd_ha->io_handle[0]; asd_ha 122 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->iospace = 1; asd_ha 123 drivers/scsi/aic94xx/aic94xx_init.c io_handle->start = pci_resource_start(asd_ha->pcidev, i); asd_ha 124 drivers/scsi/aic94xx/aic94xx_init.c io_handle->len = pci_resource_len(asd_ha->pcidev, i); asd_ha 125 drivers/scsi/aic94xx/aic94xx_init.c io_handle->flags = pci_resource_flags(asd_ha->pcidev, i); asd_ha 129 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 132 drivers/scsi/aic94xx/aic94xx_init.c err = pci_request_region(asd_ha->pcidev, i, ASD_DRIVER_NAME); asd_ha 135 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 141 drivers/scsi/aic94xx/aic94xx_init.c static void asd_unmap_ioport(struct asd_ha_struct *asd_ha) asd_ha 143 drivers/scsi/aic94xx/aic94xx_init.c pci_release_region(asd_ha->pcidev, PCI_IOBAR_OFFSET); asd_ha 146 drivers/scsi/aic94xx/aic94xx_init.c static int asd_map_ha(struct asd_ha_struct *asd_ha) asd_ha 151 drivers/scsi/aic94xx/aic94xx_init.c err = pci_read_config_word(asd_ha->pcidev, PCI_COMMAND, &cmd_reg); asd_ha 154 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 160 drivers/scsi/aic94xx/aic94xx_init.c if ((err = asd_map_memio(asd_ha))) asd_ha 163 drivers/scsi/aic94xx/aic94xx_init.c if ((err = asd_map_ioport(asd_ha))) asd_ha 166 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 169 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 178 drivers/scsi/aic94xx/aic94xx_init.c static void asd_unmap_ha(struct asd_ha_struct *asd_ha) asd_ha 180 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->iospace) asd_ha 181 drivers/scsi/aic94xx/aic94xx_init.c asd_unmap_ioport(asd_ha); asd_ha 183 drivers/scsi/aic94xx/aic94xx_init.c asd_unmap_memio(asd_ha); asd_ha 192 drivers/scsi/aic94xx/aic94xx_init.c static int asd_common_setup(struct asd_ha_struct *asd_ha) asd_ha 196 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->revision_id = asd_ha->pcidev->revision; asd_ha 199 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->revision_id < AIC9410_DEV_REV_B0) { asd_ha 201 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev), asd_ha 202 drivers/scsi/aic94xx/aic94xx_init.c asd_dev_rev[asd_ha->revision_id], asd_ha 203 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->revision_id); asd_ha 207 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.max_scbs = 512; asd_ha 208 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.max_ddbs = ASD_MAX_DDBS; asd_ha 209 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.num_phys = ASD_MAX_PHYS; asd_ha 211 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.enabled_phys = 0xFF; asd_ha 213 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.phy_desc[i].max_sas_lrate = asd_ha 215 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.phy_desc[i].min_sas_lrate = asd_ha 217 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.phy_desc[i].max_sata_lrate = asd_ha 219 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.phy_desc[i].min_sata_lrate = asd_ha 228 drivers/scsi/aic94xx/aic94xx_init.c static int asd_aic9410_setup(struct asd_ha_struct *asd_ha) asd_ha 230 drivers/scsi/aic94xx/aic94xx_init.c int err = asd_common_setup(asd_ha); asd_ha 235 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.addr_range = 8; asd_ha 236 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.port_name_base = 0; asd_ha 237 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.dev_name_base = 8; asd_ha 238 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.sata_name_base = 16; asd_ha 243 drivers/scsi/aic94xx/aic94xx_init.c static int asd_aic9405_setup(struct asd_ha_struct *asd_ha) asd_ha 245 drivers/scsi/aic94xx/aic94xx_init.c int err = asd_common_setup(asd_ha); asd_ha 250 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.addr_range = 4; asd_ha 251 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.port_name_base = 0; asd_ha 252 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.dev_name_base = 4; asd_ha 253 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.sata_name_base = 8; asd_ha 261 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha = dev_to_asd_ha(dev); asd_ha 263 drivers/scsi/aic94xx/aic94xx_init.c asd_dev_rev[asd_ha->revision_id]); asd_ha 270 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha = dev_to_asd_ha(dev); asd_ha 271 drivers/scsi/aic94xx/aic94xx_init.c return snprintf(buf, PAGE_SIZE, "%d\n", asd_ha->hw_prof.bios.bld); asd_ha 278 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha = dev_to_asd_ha(dev); asd_ha 279 drivers/scsi/aic94xx/aic94xx_init.c return snprintf(buf, PAGE_SIZE, "%s\n", asd_ha->hw_prof.pcba_sn); asd_ha 326 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha = dev_to_asd_ha(dev); asd_ha 360 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->bios_status == FLASH_IN_PROGRESS) { asd_ha 364 drivers/scsi/aic94xx/aic94xx_init.c err = request_firmware(&asd_ha->bios_image, asd_ha 366 drivers/scsi/aic94xx/aic94xx_init.c &asd_ha->pcidev->dev); asd_ha 374 drivers/scsi/aic94xx/aic94xx_init.c hdr_ptr = (struct bios_file_header *)asd_ha->bios_image->data; asd_ha 376 drivers/scsi/aic94xx/aic94xx_init.c if ((hdr_ptr->contrl_id.vendor != asd_ha->pcidev->vendor || asd_ha 377 drivers/scsi/aic94xx/aic94xx_init.c hdr_ptr->contrl_id.device != asd_ha->pcidev->device) && asd_ha 378 drivers/scsi/aic94xx/aic94xx_init.c (hdr_ptr->contrl_id.sub_vendor != asd_ha->pcidev->vendor || asd_ha 379 drivers/scsi/aic94xx/aic94xx_init.c hdr_ptr->contrl_id.sub_device != asd_ha->pcidev->device)) { asd_ha 388 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->pcidev->vendor, asd_ha 389 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->pcidev->device); asd_ha 394 drivers/scsi/aic94xx/aic94xx_init.c if (hdr_ptr->filelen != asd_ha->bios_image->size) { asd_ha 401 drivers/scsi/aic94xx/aic94xx_init.c csum += asd_ha->bios_image->data[i]; asd_ha 409 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->bios_status = FLASH_IN_PROGRESS; asd_ha 410 drivers/scsi/aic94xx/aic94xx_init.c err = asd_write_flash_seg(asd_ha, asd_ha 411 drivers/scsi/aic94xx/aic94xx_init.c &asd_ha->bios_image->data[sizeof(*hdr_ptr)], asd_ha 414 drivers/scsi/aic94xx/aic94xx_init.c err = asd_verify_flash_seg(asd_ha, asd_ha 415 drivers/scsi/aic94xx/aic94xx_init.c &asd_ha->bios_image->data[sizeof(*hdr_ptr)], asd_ha 418 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->bios_status = FLASH_IN_PROGRESS; asd_ha 419 drivers/scsi/aic94xx/aic94xx_init.c err = asd_verify_flash_seg(asd_ha, asd_ha 420 drivers/scsi/aic94xx/aic94xx_init.c &asd_ha->bios_image->data[sizeof(header)], asd_ha 425 drivers/scsi/aic94xx/aic94xx_init.c release_firmware(asd_ha->bios_image); asd_ha 429 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->bios_status = err; asd_ha 441 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha = dev_to_asd_ha(dev); asd_ha 444 drivers/scsi/aic94xx/aic94xx_init.c if (flash_error_table[i].err_code == asd_ha->bios_status) asd_ha 447 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->bios_status != FLASH_IN_PROGRESS) asd_ha 448 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->bios_status = FLASH_OK; asd_ha 458 drivers/scsi/aic94xx/aic94xx_init.c static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha) asd_ha 462 drivers/scsi/aic94xx/aic94xx_init.c err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision); asd_ha 466 drivers/scsi/aic94xx/aic94xx_init.c err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_bios_build); asd_ha 470 drivers/scsi/aic94xx/aic94xx_init.c err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_pcba_sn); asd_ha 473 drivers/scsi/aic94xx/aic94xx_init.c err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_update_bios); asd_ha 480 drivers/scsi/aic94xx/aic94xx_init.c device_remove_file(&asd_ha->pcidev->dev, &dev_attr_pcba_sn); asd_ha 482 drivers/scsi/aic94xx/aic94xx_init.c device_remove_file(&asd_ha->pcidev->dev, &dev_attr_bios_build); asd_ha 484 drivers/scsi/aic94xx/aic94xx_init.c device_remove_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision); asd_ha 488 drivers/scsi/aic94xx/aic94xx_init.c static void asd_remove_dev_attrs(struct asd_ha_struct *asd_ha) asd_ha 490 drivers/scsi/aic94xx/aic94xx_init.c device_remove_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision); asd_ha 491 drivers/scsi/aic94xx/aic94xx_init.c device_remove_file(&asd_ha->pcidev->dev, &dev_attr_bios_build); asd_ha 492 drivers/scsi/aic94xx/aic94xx_init.c device_remove_file(&asd_ha->pcidev->dev, &dev_attr_pcba_sn); asd_ha 493 drivers/scsi/aic94xx/aic94xx_init.c device_remove_file(&asd_ha->pcidev->dev, &dev_attr_update_bios); asd_ha 501 drivers/scsi/aic94xx/aic94xx_init.c int (*setup)(struct asd_ha_struct *asd_ha); asd_ha 515 drivers/scsi/aic94xx/aic94xx_init.c static int asd_create_ha_caches(struct asd_ha_struct *asd_ha) asd_ha 517 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->scb_pool = dma_pool_create(ASD_DRIVER_NAME "_scb_pool", asd_ha 518 drivers/scsi/aic94xx/aic94xx_init.c &asd_ha->pcidev->dev, asd_ha 521 drivers/scsi/aic94xx/aic94xx_init.c if (!asd_ha->scb_pool) { asd_ha 533 drivers/scsi/aic94xx/aic94xx_init.c static void asd_free_edbs(struct asd_ha_struct *asd_ha) asd_ha 535 drivers/scsi/aic94xx/aic94xx_init.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 539 drivers/scsi/aic94xx/aic94xx_init.c asd_free_coherent(asd_ha, seq->edb_arr[i]); asd_ha 544 drivers/scsi/aic94xx/aic94xx_init.c static void asd_free_escbs(struct asd_ha_struct *asd_ha) asd_ha 546 drivers/scsi/aic94xx/aic94xx_init.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 559 drivers/scsi/aic94xx/aic94xx_init.c static void asd_destroy_ha_caches(struct asd_ha_struct *asd_ha) asd_ha 563 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->hw_prof.ddb_ext) asd_ha 564 drivers/scsi/aic94xx/aic94xx_init.c asd_free_coherent(asd_ha, asd_ha->hw_prof.ddb_ext); asd_ha 565 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->hw_prof.scb_ext) asd_ha 566 drivers/scsi/aic94xx/aic94xx_init.c asd_free_coherent(asd_ha, asd_ha->hw_prof.scb_ext); asd_ha 568 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha->hw_prof.ddb_bitmap); asd_ha 569 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.ddb_bitmap = NULL; asd_ha 572 drivers/scsi/aic94xx/aic94xx_init.c struct asd_phy *phy = &asd_ha->phys[i]; asd_ha 574 drivers/scsi/aic94xx/aic94xx_init.c asd_free_coherent(asd_ha, phy->id_frm_tok); asd_ha 576 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->seq.escb_arr) asd_ha 577 drivers/scsi/aic94xx/aic94xx_init.c asd_free_escbs(asd_ha); asd_ha 578 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->seq.edb_arr) asd_ha 579 drivers/scsi/aic94xx/aic94xx_init.c asd_free_edbs(asd_ha); asd_ha 580 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->hw_prof.ue.area) { asd_ha 581 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha->hw_prof.ue.area); asd_ha 582 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.ue.area = NULL; asd_ha 584 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->seq.tc_index_array) { asd_ha 585 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha->seq.tc_index_array); asd_ha 586 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha->seq.tc_index_bitmap); asd_ha 587 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->seq.tc_index_array = NULL; asd_ha 588 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->seq.tc_index_bitmap = NULL; asd_ha 590 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->seq.actual_dl) { asd_ha 591 drivers/scsi/aic94xx/aic94xx_init.c asd_free_coherent(asd_ha, asd_ha->seq.actual_dl); asd_ha 592 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->seq.actual_dl = NULL; asd_ha 593 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->seq.dl = NULL; asd_ha 595 drivers/scsi/aic94xx/aic94xx_init.c if (asd_ha->seq.next_scb.vaddr) { asd_ha 596 drivers/scsi/aic94xx/aic94xx_init.c dma_pool_free(asd_ha->scb_pool, asd_ha->seq.next_scb.vaddr, asd_ha 597 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->seq.next_scb.dma_handle); asd_ha 598 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->seq.next_scb.vaddr = NULL; asd_ha 600 drivers/scsi/aic94xx/aic94xx_init.c dma_pool_destroy(asd_ha->scb_pool); asd_ha 601 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->scb_pool = NULL; asd_ha 650 drivers/scsi/aic94xx/aic94xx_init.c static int asd_register_sas_ha(struct asd_ha_struct *asd_ha) asd_ha 664 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.sas_ha_name = (char *) asd_ha->name; asd_ha 665 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.lldd_module = THIS_MODULE; asd_ha 666 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.sas_addr = &asd_ha->hw_prof.sas_addr[0]; asd_ha 669 drivers/scsi/aic94xx/aic94xx_init.c sas_phys[i] = &asd_ha->phys[i].sas_phy; asd_ha 670 drivers/scsi/aic94xx/aic94xx_init.c sas_ports[i] = &asd_ha->ports[i]; asd_ha 673 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.sas_phy = sas_phys; asd_ha 674 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.sas_port= sas_ports; asd_ha 675 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.num_phys= ASD_MAX_PHYS; asd_ha 677 drivers/scsi/aic94xx/aic94xx_init.c return sas_register_ha(&asd_ha->sas_ha); asd_ha 680 drivers/scsi/aic94xx/aic94xx_init.c static int asd_unregister_sas_ha(struct asd_ha_struct *asd_ha) asd_ha 684 drivers/scsi/aic94xx/aic94xx_init.c err = sas_unregister_ha(&asd_ha->sas_ha); asd_ha 686 drivers/scsi/aic94xx/aic94xx_init.c sas_remove_host(asd_ha->sas_ha.core.shost); asd_ha 687 drivers/scsi/aic94xx/aic94xx_init.c scsi_host_put(asd_ha->sas_ha.core.shost); asd_ha 689 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha->sas_ha.sas_phy); asd_ha 690 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha->sas_ha.sas_port); asd_ha 699 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha; asd_ha 723 drivers/scsi/aic94xx/aic94xx_init.c asd_ha = kzalloc(sizeof(*asd_ha), GFP_KERNEL); asd_ha 724 drivers/scsi/aic94xx/aic94xx_init.c if (!asd_ha) { asd_ha 728 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->pcidev = dev; asd_ha 729 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.dev = &asd_ha->pcidev->dev; asd_ha 730 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.lldd_ha = asd_ha; asd_ha 732 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->bios_status = FLASH_OK; asd_ha 733 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->name = asd_dev->name; asd_ha 734 drivers/scsi/aic94xx/aic94xx_init.c asd_printk("found %s, device %s\n", asd_ha->name, pci_name(dev)); asd_ha 736 drivers/scsi/aic94xx/aic94xx_init.c SHOST_TO_SAS_HA(shost) = &asd_ha->sas_ha; asd_ha 737 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->sas_ha.core.shost = shost; asd_ha 747 drivers/scsi/aic94xx/aic94xx_init.c err = asd_dev->setup(asd_ha); asd_ha 760 drivers/scsi/aic94xx/aic94xx_init.c pci_set_drvdata(dev, asd_ha); asd_ha 762 drivers/scsi/aic94xx/aic94xx_init.c err = asd_map_ha(asd_ha); asd_ha 766 drivers/scsi/aic94xx/aic94xx_init.c err = asd_create_ha_caches(asd_ha); asd_ha 770 drivers/scsi/aic94xx/aic94xx_init.c err = asd_init_hw(asd_ha); asd_ha 776 drivers/scsi/aic94xx/aic94xx_init.c pci_name(dev), SAS_ADDR(asd_ha->hw_prof.sas_addr), asd_ha 777 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.pcba_sn, asd_ha->hw_prof.max_phys, asd_ha 778 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.num_phys, asd_ha 779 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.flash.present ? "present" : "not present", asd_ha 780 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.bios.present ? "build " : "not present", asd_ha 781 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->hw_prof.bios.bld); asd_ha 783 drivers/scsi/aic94xx/aic94xx_init.c shost->can_queue = asd_ha->seq.can_queue; asd_ha 786 drivers/scsi/aic94xx/aic94xx_init.c pci_enable_msi(asd_ha->pcidev); asd_ha 788 drivers/scsi/aic94xx/aic94xx_init.c err = request_irq(asd_ha->pcidev->irq, asd_hw_isr, IRQF_SHARED, asd_ha 789 drivers/scsi/aic94xx/aic94xx_init.c ASD_DRIVER_NAME, asd_ha); asd_ha 792 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->pcidev->irq, pci_name(asd_ha->pcidev)); asd_ha 795 drivers/scsi/aic94xx/aic94xx_init.c asd_enable_ints(asd_ha); asd_ha 797 drivers/scsi/aic94xx/aic94xx_init.c err = asd_init_post_escbs(asd_ha); asd_ha 800 drivers/scsi/aic94xx/aic94xx_init.c pci_name(asd_ha->pcidev)); asd_ha 805 drivers/scsi/aic94xx/aic94xx_init.c err = asd_create_dev_attrs(asd_ha); asd_ha 809 drivers/scsi/aic94xx/aic94xx_init.c err = asd_register_sas_ha(asd_ha); asd_ha 818 drivers/scsi/aic94xx/aic94xx_init.c asd_remove_dev_attrs(asd_ha); asd_ha 821 drivers/scsi/aic94xx/aic94xx_init.c asd_disable_ints(asd_ha); asd_ha 822 drivers/scsi/aic94xx/aic94xx_init.c free_irq(dev->irq, asd_ha); asd_ha 826 drivers/scsi/aic94xx/aic94xx_init.c asd_chip_hardrst(asd_ha); asd_ha 828 drivers/scsi/aic94xx/aic94xx_init.c asd_destroy_ha_caches(asd_ha); asd_ha 830 drivers/scsi/aic94xx/aic94xx_init.c asd_unmap_ha(asd_ha); asd_ha 834 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha); asd_ha 842 drivers/scsi/aic94xx/aic94xx_init.c static void asd_free_queues(struct asd_ha_struct *asd_ha) asd_ha 848 drivers/scsi/aic94xx/aic94xx_init.c spin_lock_irqsave(&asd_ha->seq.pend_q_lock, flags); asd_ha 849 drivers/scsi/aic94xx/aic94xx_init.c asd_ha->seq.pending = 0; asd_ha 850 drivers/scsi/aic94xx/aic94xx_init.c list_splice_init(&asd_ha->seq.pend_q, &pending); asd_ha 851 drivers/scsi/aic94xx/aic94xx_init.c spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); asd_ha 873 drivers/scsi/aic94xx/aic94xx_init.c static void asd_turn_off_leds(struct asd_ha_struct *asd_ha) asd_ha 875 drivers/scsi/aic94xx/aic94xx_init.c u8 phy_mask = asd_ha->hw_prof.enabled_phys; asd_ha 879 drivers/scsi/aic94xx/aic94xx_init.c asd_turn_led(asd_ha, i, 0); asd_ha 880 drivers/scsi/aic94xx/aic94xx_init.c asd_control_led(asd_ha, i, 0); asd_ha 886 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha = pci_get_drvdata(dev); asd_ha 888 drivers/scsi/aic94xx/aic94xx_init.c if (!asd_ha) asd_ha 891 drivers/scsi/aic94xx/aic94xx_init.c asd_unregister_sas_ha(asd_ha); asd_ha 893 drivers/scsi/aic94xx/aic94xx_init.c asd_disable_ints(asd_ha); asd_ha 895 drivers/scsi/aic94xx/aic94xx_init.c asd_remove_dev_attrs(asd_ha); asd_ha 899 drivers/scsi/aic94xx/aic94xx_init.c free_irq(dev->irq, asd_ha); asd_ha 901 drivers/scsi/aic94xx/aic94xx_init.c pci_disable_msi(asd_ha->pcidev); asd_ha 902 drivers/scsi/aic94xx/aic94xx_init.c asd_turn_off_leds(asd_ha); asd_ha 903 drivers/scsi/aic94xx/aic94xx_init.c asd_chip_hardrst(asd_ha); asd_ha 904 drivers/scsi/aic94xx/aic94xx_init.c asd_free_queues(asd_ha); asd_ha 905 drivers/scsi/aic94xx/aic94xx_init.c asd_destroy_ha_caches(asd_ha); asd_ha 906 drivers/scsi/aic94xx/aic94xx_init.c asd_unmap_ha(asd_ha); asd_ha 907 drivers/scsi/aic94xx/aic94xx_init.c kfree(asd_ha); asd_ha 914 drivers/scsi/aic94xx/aic94xx_init.c struct asd_ha_struct *asd_ha; asd_ha 917 drivers/scsi/aic94xx/aic94xx_init.c asd_ha = SHOST_TO_SAS_HA(shost)->lldd_ha; asd_ha 918 drivers/scsi/aic94xx/aic94xx_init.c err = asd_enable_phys(asd_ha, asd_ha->hw_prof.enabled_phys); asd_ha 17 drivers/scsi/aic94xx/aic94xx_reg.c static void asd_write_byte(struct asd_ha_struct *asd_ha, asd_ha 20 drivers/scsi/aic94xx/aic94xx_reg.c if (unlikely(asd_ha->iospace)) asd_ha 22 drivers/scsi/aic94xx/aic94xx_reg.c (unsigned long)asd_ha->io_handle[0].addr + (offs & 0xFF)); asd_ha 24 drivers/scsi/aic94xx/aic94xx_reg.c writeb(val, asd_ha->io_handle[0].addr + offs); asd_ha 28 drivers/scsi/aic94xx/aic94xx_reg.c static void asd_write_word(struct asd_ha_struct *asd_ha, asd_ha 31 drivers/scsi/aic94xx/aic94xx_reg.c if (unlikely(asd_ha->iospace)) asd_ha 33 drivers/scsi/aic94xx/aic94xx_reg.c (unsigned long)asd_ha->io_handle[0].addr + (offs & 0xFF)); asd_ha 35 drivers/scsi/aic94xx/aic94xx_reg.c writew(val, asd_ha->io_handle[0].addr + offs); asd_ha 39 drivers/scsi/aic94xx/aic94xx_reg.c static void asd_write_dword(struct asd_ha_struct *asd_ha, asd_ha 42 drivers/scsi/aic94xx/aic94xx_reg.c if (unlikely(asd_ha->iospace)) asd_ha 44 drivers/scsi/aic94xx/aic94xx_reg.c (unsigned long)asd_ha->io_handle[0].addr + (offs & 0xFF)); asd_ha 46 drivers/scsi/aic94xx/aic94xx_reg.c writel(val, asd_ha->io_handle[0].addr + offs); asd_ha 52 drivers/scsi/aic94xx/aic94xx_reg.c static u8 asd_read_byte(struct asd_ha_struct *asd_ha, unsigned long offs) asd_ha 55 drivers/scsi/aic94xx/aic94xx_reg.c if (unlikely(asd_ha->iospace)) asd_ha 56 drivers/scsi/aic94xx/aic94xx_reg.c val = inb((unsigned long) asd_ha->io_handle[0].addr asd_ha 59 drivers/scsi/aic94xx/aic94xx_reg.c val = readb(asd_ha->io_handle[0].addr + offs); asd_ha 64 drivers/scsi/aic94xx/aic94xx_reg.c static u16 asd_read_word(struct asd_ha_struct *asd_ha, asd_ha 68 drivers/scsi/aic94xx/aic94xx_reg.c if (unlikely(asd_ha->iospace)) asd_ha 69 drivers/scsi/aic94xx/aic94xx_reg.c val = inw((unsigned long)asd_ha->io_handle[0].addr asd_ha 72 drivers/scsi/aic94xx/aic94xx_reg.c val = readw(asd_ha->io_handle[0].addr + offs); asd_ha 77 drivers/scsi/aic94xx/aic94xx_reg.c static u32 asd_read_dword(struct asd_ha_struct *asd_ha, asd_ha 81 drivers/scsi/aic94xx/aic94xx_reg.c if (unlikely(asd_ha->iospace)) asd_ha 82 drivers/scsi/aic94xx/aic94xx_reg.c val = inl((unsigned long) asd_ha->io_handle[0].addr asd_ha 85 drivers/scsi/aic94xx/aic94xx_reg.c val = readl(asd_ha->io_handle[0].addr + offs); asd_ha 109 drivers/scsi/aic94xx/aic94xx_reg.c static type asd_read_##ww##_##ord(struct asd_ha_struct *asd_ha, \ asd_ha 112 drivers/scsi/aic94xx/aic94xx_reg.c struct asd_ha_addrspace *io_handle = &asd_ha->io_handle[0]; \ asd_ha 114 drivers/scsi/aic94xx/aic94xx_reg.c return asd_read_##ord(asd_ha, (unsigned long)map_offs); \ asd_ha 118 drivers/scsi/aic94xx/aic94xx_reg.c static void asd_write_##ww##_##ord(struct asd_ha_struct *asd_ha, \ asd_ha 121 drivers/scsi/aic94xx/aic94xx_reg.c struct asd_ha_addrspace *io_handle = &asd_ha->io_handle[0]; \ asd_ha 123 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_##ord(asd_ha, (unsigned long)map_offs, val); \ asd_ha 170 drivers/scsi/aic94xx/aic94xx_reg.c static void asd_move_swb(struct asd_ha_struct *asd_ha, u32 reg) asd_ha 173 drivers/scsi/aic94xx/aic94xx_reg.c pci_write_config_dword(asd_ha->pcidev, PCI_CONF_MBAR0_SWB, base); asd_ha 174 drivers/scsi/aic94xx/aic94xx_reg.c asd_ha->io_handle[0].swb_base = base; asd_ha 177 drivers/scsi/aic94xx/aic94xx_reg.c static void __asd_write_reg_byte(struct asd_ha_struct *asd_ha, u32 reg, u8 val) asd_ha 179 drivers/scsi/aic94xx/aic94xx_reg.c struct asd_ha_addrspace *io_handle=&asd_ha->io_handle[0]; asd_ha 183 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swa_byte (asd_ha, reg,val); asd_ha 186 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swb_byte (asd_ha, reg, val); asd_ha 189 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swc_byte (asd_ha, reg, val); asd_ha 192 drivers/scsi/aic94xx/aic94xx_reg.c asd_move_swb(asd_ha, reg); asd_ha 193 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swb_byte (asd_ha, reg, val); asd_ha 198 drivers/scsi/aic94xx/aic94xx_reg.c void asd_write_reg_##ord (struct asd_ha_struct *asd_ha, u32 reg, type val)\ asd_ha 200 drivers/scsi/aic94xx/aic94xx_reg.c struct asd_ha_addrspace *io_handle=&asd_ha->io_handle[0]; \ asd_ha 203 drivers/scsi/aic94xx/aic94xx_reg.c spin_lock_irqsave(&asd_ha->iolock, flags); \ asd_ha 206 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swa_##ord (asd_ha, reg,val); \ asd_ha 209 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swb_##ord (asd_ha, reg, val); \ asd_ha 212 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swc_##ord (asd_ha, reg, val); \ asd_ha 215 drivers/scsi/aic94xx/aic94xx_reg.c asd_move_swb(asd_ha, reg); \ asd_ha 216 drivers/scsi/aic94xx/aic94xx_reg.c asd_write_swb_##ord (asd_ha, reg, val); \ asd_ha 218 drivers/scsi/aic94xx/aic94xx_reg.c spin_unlock_irqrestore(&asd_ha->iolock, flags); \ asd_ha 225 drivers/scsi/aic94xx/aic94xx_reg.c static u8 __asd_read_reg_byte(struct asd_ha_struct *asd_ha, u32 reg) asd_ha 227 drivers/scsi/aic94xx/aic94xx_reg.c struct asd_ha_addrspace *io_handle=&asd_ha->io_handle[0]; asd_ha 232 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swa_byte (asd_ha, reg); asd_ha 235 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swb_byte (asd_ha, reg); asd_ha 238 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swc_byte (asd_ha, reg); asd_ha 241 drivers/scsi/aic94xx/aic94xx_reg.c asd_move_swb(asd_ha, reg); asd_ha 242 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swb_byte (asd_ha, reg); asd_ha 248 drivers/scsi/aic94xx/aic94xx_reg.c type asd_read_reg_##ord (struct asd_ha_struct *asd_ha, u32 reg) \ asd_ha 250 drivers/scsi/aic94xx/aic94xx_reg.c struct asd_ha_addrspace *io_handle=&asd_ha->io_handle[0]; \ asd_ha 254 drivers/scsi/aic94xx/aic94xx_reg.c spin_lock_irqsave(&asd_ha->iolock, flags); \ asd_ha 257 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swa_##ord (asd_ha, reg); \ asd_ha 260 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swb_##ord (asd_ha, reg); \ asd_ha 263 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swc_##ord (asd_ha, reg); \ asd_ha 266 drivers/scsi/aic94xx/aic94xx_reg.c asd_move_swb(asd_ha, reg); \ asd_ha 267 drivers/scsi/aic94xx/aic94xx_reg.c val = asd_read_swb_##ord (asd_ha, reg); \ asd_ha 269 drivers/scsi/aic94xx/aic94xx_reg.c spin_unlock_irqrestore(&asd_ha->iolock, flags); \ asd_ha 284 drivers/scsi/aic94xx/aic94xx_reg.c void asd_read_reg_string(struct asd_ha_struct *asd_ha, void *dst, asd_ha 290 drivers/scsi/aic94xx/aic94xx_reg.c spin_lock_irqsave(&asd_ha->iolock, flags); asd_ha 292 drivers/scsi/aic94xx/aic94xx_reg.c *p = __asd_read_reg_byte(asd_ha, offs); asd_ha 293 drivers/scsi/aic94xx/aic94xx_reg.c spin_unlock_irqrestore(&asd_ha->iolock, flags); asd_ha 303 drivers/scsi/aic94xx/aic94xx_reg.c void asd_write_reg_string(struct asd_ha_struct *asd_ha, void *src, asd_ha 309 drivers/scsi/aic94xx/aic94xx_reg.c spin_lock_irqsave(&asd_ha->iolock, flags); asd_ha 311 drivers/scsi/aic94xx/aic94xx_reg.c __asd_write_reg_byte(asd_ha, offs, *p); asd_ha 312 drivers/scsi/aic94xx/aic94xx_reg.c spin_unlock_irqrestore(&asd_ha->iolock, flags); asd_ha 46 drivers/scsi/aic94xx/aic94xx_reg.h u8 asd_read_reg_byte(struct asd_ha_struct *asd_ha, u32 reg); asd_ha 47 drivers/scsi/aic94xx/aic94xx_reg.h u16 asd_read_reg_word(struct asd_ha_struct *asd_ha, u32 reg); asd_ha 48 drivers/scsi/aic94xx/aic94xx_reg.h u32 asd_read_reg_dword(struct asd_ha_struct *asd_ha, u32 reg); asd_ha 50 drivers/scsi/aic94xx/aic94xx_reg.h void asd_write_reg_byte(struct asd_ha_struct *asd_ha, u32 reg, u8 val); asd_ha 51 drivers/scsi/aic94xx/aic94xx_reg.h void asd_write_reg_word(struct asd_ha_struct *asd_ha, u32 reg, u16 val); asd_ha 52 drivers/scsi/aic94xx/aic94xx_reg.h void asd_write_reg_dword(struct asd_ha_struct *asd_ha, u32 reg, u32 val); asd_ha 54 drivers/scsi/aic94xx/aic94xx_reg.h void asd_read_reg_string(struct asd_ha_struct *asd_ha, void *dst, asd_ha 56 drivers/scsi/aic94xx/aic94xx_reg.h void asd_write_reg_string(struct asd_ha_struct *asd_ha, void *src, asd_ha 60 drivers/scsi/aic94xx/aic94xx_reg.h static inline type asd_read_ocm_##ord (struct asd_ha_struct *asd_ha, \ asd_ha 63 drivers/scsi/aic94xx/aic94xx_reg.h struct asd_ha_addrspace *io_handle = &asd_ha->io_handle[1]; \ asd_ha 74 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_write_ocm_##ord (struct asd_ha_struct *asd_ha, \ asd_ha 77 drivers/scsi/aic94xx/aic94xx_reg.h struct asd_ha_addrspace *io_handle = &asd_ha->io_handle[1]; \ asd_ha 87 drivers/scsi/aic94xx/aic94xx_reg.h static inline type asd_ddbsite_read_##ord (struct asd_ha_struct *asd_ha, \ asd_ha 91 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ALTCIOADR, MnDDB_SITE + offs); \ asd_ha 92 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ADDBPTR, ddb_site_no); \ asd_ha 93 drivers/scsi/aic94xx/aic94xx_reg.h return asd_read_reg_##ord (asd_ha, CTXACCESS); \ asd_ha 99 drivers/scsi/aic94xx/aic94xx_reg.h static inline u8 asd_ddbsite_read_byte(struct asd_ha_struct *asd_ha, asd_ha 104 drivers/scsi/aic94xx/aic94xx_reg.h return asd_ddbsite_read_word(asd_ha, ddb_site_no, asd_ha 107 drivers/scsi/aic94xx/aic94xx_reg.h return asd_ddbsite_read_word(asd_ha, ddb_site_no, asd_ha 113 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_ddbsite_write_##ord (struct asd_ha_struct *asd_ha, \ asd_ha 117 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ALTCIOADR, MnDDB_SITE + offs); \ asd_ha 118 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ADDBPTR, ddb_site_no); \ asd_ha 119 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_##ord (asd_ha, CTXACCESS, val); \ asd_ha 125 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_ddbsite_write_byte(struct asd_ha_struct *asd_ha, asd_ha 130 drivers/scsi/aic94xx/aic94xx_reg.h u16 rval = asd_ddbsite_read_word(asd_ha, ddb_site_no, base); asd_ha 135 drivers/scsi/aic94xx/aic94xx_reg.h asd_ddbsite_write_word(asd_ha, ddb_site_no, base, rval); asd_ha 140 drivers/scsi/aic94xx/aic94xx_reg.h static inline type asd_scbsite_read_##ord (struct asd_ha_struct *asd_ha, \ asd_ha 144 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ALTCIOADR, MnSCB_SITE + offs); \ asd_ha 145 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ASCBPTR, scb_site_no); \ asd_ha 146 drivers/scsi/aic94xx/aic94xx_reg.h return asd_read_reg_##ord (asd_ha, CTXACCESS); \ asd_ha 152 drivers/scsi/aic94xx/aic94xx_reg.h static inline u8 asd_scbsite_read_byte(struct asd_ha_struct *asd_ha, asd_ha 157 drivers/scsi/aic94xx/aic94xx_reg.h return asd_scbsite_read_word(asd_ha, scb_site_no, asd_ha 160 drivers/scsi/aic94xx/aic94xx_reg.h return asd_scbsite_read_word(asd_ha, scb_site_no, asd_ha 166 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_scbsite_write_##ord (struct asd_ha_struct *asd_ha, \ asd_ha 170 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ALTCIOADR, MnSCB_SITE + offs); \ asd_ha 171 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ASCBPTR, scb_site_no); \ asd_ha 172 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_##ord (asd_ha, CTXACCESS, val); \ asd_ha 178 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_scbsite_write_byte(struct asd_ha_struct *asd_ha, asd_ha 183 drivers/scsi/aic94xx/aic94xx_reg.h u16 rval = asd_scbsite_read_word(asd_ha, scb_site_no, base); asd_ha 188 drivers/scsi/aic94xx/aic94xx_reg.h asd_scbsite_write_word(asd_ha, scb_site_no, base, rval); asd_ha 206 drivers/scsi/aic94xx/aic94xx_reg.h static inline int asd_ddbsite_update_word(struct asd_ha_struct *asd_ha, asd_ha 211 drivers/scsi/aic94xx/aic94xx_reg.h u16 oval = asd_ddbsite_read_word(asd_ha, ddb_site_no, offs); asd_ha 214 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, AOLDDATA, oldval); asd_ha 215 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_word(asd_ha, ANEWDATA, newval); asd_ha 217 drivers/scsi/aic94xx/aic94xx_reg.h done = asd_read_reg_byte(asd_ha, ATOMICSTATCTL); asd_ha 227 drivers/scsi/aic94xx/aic94xx_reg.h static inline int asd_ddbsite_update_byte(struct asd_ha_struct *asd_ha, asd_ha 233 drivers/scsi/aic94xx/aic94xx_reg.h u16 nval = asd_ddbsite_read_word(asd_ha, ddb_site_no, base); asd_ha 245 drivers/scsi/aic94xx/aic94xx_reg.h return asd_ddbsite_update_word(asd_ha, ddb_site_no, base, oval, nval); asd_ha 248 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_write_reg_addr(struct asd_ha_struct *asd_ha, u32 reg, asd_ha 251 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_dword(asd_ha, reg, ASD_BUSADDR_LO(dma_handle)); asd_ha 252 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_dword(asd_ha, reg+4, ASD_BUSADDR_HI(dma_handle)); asd_ha 255 drivers/scsi/aic94xx/aic94xx_reg.h static inline u32 asd_get_cmdctx_size(struct asd_ha_struct *asd_ha) asd_ha 258 drivers/scsi/aic94xx/aic94xx_reg.h u32 ctxmemsize = asd_read_reg_dword(asd_ha, LmMnINT(0,0)) & CTXMEMSIZE; asd_ha 262 drivers/scsi/aic94xx/aic94xx_reg.h static inline u32 asd_get_devctx_size(struct asd_ha_struct *asd_ha) asd_ha 264 drivers/scsi/aic94xx/aic94xx_reg.h u32 ctxmemsize = asd_read_reg_dword(asd_ha, LmMnINT(0,0)) & CTXMEMSIZE; asd_ha 268 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_disable_ints(struct asd_ha_struct *asd_ha) asd_ha 270 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_dword(asd_ha, CHIMINTEN, RST_CHIMINTEN); asd_ha 273 drivers/scsi/aic94xx/aic94xx_reg.h static inline void asd_enable_ints(struct asd_ha_struct *asd_ha) asd_ha 276 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_dword(asd_ha, COMSTATEN, asd_ha 279 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_dword(asd_ha, DCHSTATUS, EN_CFIFTOERR); asd_ha 281 drivers/scsi/aic94xx/aic94xx_reg.h asd_write_reg_dword(asd_ha, CHIMINTEN, SET_CHIMINTEN); asd_ha 70 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 71 drivers/scsi/aic94xx/aic94xx_scb.c struct sas_ha_struct *sas_ha = &asd_ha->sas_ha; asd_ha 73 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_phy *phy = &asd_ha->phys[phy_id]; asd_ha 82 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 0); asd_ha 88 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 1); asd_ha 96 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 1); asd_ha 103 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 0); asd_ha 111 drivers/scsi/aic94xx/aic94xx_scb.c static unsigned ord_phy(struct asd_ha_struct *asd_ha, struct asd_phy *phy) asd_ha 113 drivers/scsi/aic94xx/aic94xx_scb.c u8 enabled_mask = asd_ha->hw_prof.enabled_phys; asd_ha 117 drivers/scsi/aic94xx/aic94xx_scb.c if (&asd_ha->phys[i] == phy) asd_ha 140 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_ha_struct *asd_ha = phy->sas_phy.ha->lldd_ha; asd_ha 144 drivers/scsi/aic94xx/aic94xx_scb.c addr += asd_ha->hw_prof.sata_name_base + ord_phy(asd_ha, phy); asd_ha 153 drivers/scsi/aic94xx/aic94xx_scb.c static void asd_form_port(struct asd_ha_struct *asd_ha, struct asd_phy *phy) asd_ha 161 drivers/scsi/aic94xx/aic94xx_scb.c spin_lock_irqsave(&asd_ha->asd_ports_lock, flags); asd_ha 164 drivers/scsi/aic94xx/aic94xx_scb.c port = &asd_ha->asd_ports[i]; asd_ha 198 drivers/scsi/aic94xx/aic94xx_scb.c asd_update_port_links(asd_ha, phy); asd_ha 199 drivers/scsi/aic94xx/aic94xx_scb.c spin_unlock_irqrestore(&asd_ha->asd_ports_lock, flags); asd_ha 202 drivers/scsi/aic94xx/aic94xx_scb.c static void asd_deform_port(struct asd_ha_struct *asd_ha, struct asd_phy *phy) asd_ha 208 drivers/scsi/aic94xx/aic94xx_scb.c spin_lock_irqsave(&asd_ha->asd_ports_lock, flags); asd_ha 214 drivers/scsi/aic94xx/aic94xx_scb.c spin_unlock_irqrestore(&asd_ha->asd_ports_lock, flags); asd_ha 244 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 245 drivers/scsi/aic94xx/aic94xx_scb.c struct sas_ha_struct *sas_ha = &asd_ha->sas_ha; asd_ha 247 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_phy *phy = &asd_ha->phys[phy_id]; asd_ha 270 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 0); asd_ha 272 drivers/scsi/aic94xx/aic94xx_scb.c asd_deform_port(asd_ha, phy); asd_ha 300 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 301 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_phy *phy = &asd_ha->phys[phy_id]; asd_ha 338 drivers/scsi/aic94xx/aic94xx_scb.c asd_deform_port(asd_ha, phy); asd_ha 400 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 401 drivers/scsi/aic94xx/aic94xx_scb.c struct sas_ha_struct *sas_ha = &asd_ha->sas_ha; asd_ha 406 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_phy *phy = &asd_ha->phys[phy_id]; asd_ha 442 drivers/scsi/aic94xx/aic94xx_scb.c list_for_each_entry_safe(a, b, &asd_ha->seq.pend_q, list) { asd_ha 468 drivers/scsi/aic94xx/aic94xx_scb.c list_for_each_entry_safe(a, b, &asd_ha->seq.pend_q, list) { asd_ha 492 drivers/scsi/aic94xx/aic94xx_scb.c list_for_each_entry(a, &asd_ha->seq.pend_q, list) { asd_ha 518 drivers/scsi/aic94xx/aic94xx_scb.c list_for_each_entry(a, &asd_ha->seq.pend_q, list) { asd_ha 566 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 0); asd_ha 569 drivers/scsi/aic94xx/aic94xx_scb.c asd_deform_port(asd_ha, phy); asd_ha 595 drivers/scsi/aic94xx/aic94xx_scb.c int asd_init_post_escbs(struct asd_ha_struct *asd_ha) asd_ha 597 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_seq_data *seq = &asd_ha->seq; asd_ha 604 drivers/scsi/aic94xx/aic94xx_scb.c return asd_post_escb_list(asd_ha, seq->escb_arr[0], seq->num_escbs); asd_ha 627 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 646 drivers/scsi/aic94xx/aic94xx_scb.c asd_ha->hw_prof.enabled_phys &= ~(1 << phy_id); asd_ha 647 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 0); asd_ha 648 drivers/scsi/aic94xx/aic94xx_scb.c asd_control_led(asd_ha, phy_id, 0); asd_ha 653 drivers/scsi/aic94xx/aic94xx_scb.c asd_control_led(asd_ha, phy_id, 1); asd_ha 655 drivers/scsi/aic94xx/aic94xx_scb.c asd_ha->hw_prof.enabled_phys |= (1 << phy_id); asd_ha 657 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 1); asd_ha 662 drivers/scsi/aic94xx/aic94xx_scb.c asd_ha->hw_prof.enabled_phys |= (1 << phy_id); asd_ha 663 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 1); asd_ha 667 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 0); asd_ha 672 drivers/scsi/aic94xx/aic94xx_scb.c asd_ha->hw_prof.enabled_phys |= (1 << phy_id); asd_ha 673 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 1); asd_ha 677 drivers/scsi/aic94xx/aic94xx_scb.c asd_ha->hw_prof.enabled_phys |= (1 << phy_id); asd_ha 678 drivers/scsi/aic94xx/aic94xx_scb.c asd_turn_led(asd_ha, phy_id, 0); asd_ha 888 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_ha_struct *asd_ha = phy->ha->lldd_ha; asd_ha 889 drivers/scsi/aic94xx/aic94xx_scb.c struct asd_phy_desc *pd = asd_ha->phys[phy->id].phy_desc; asd_ha 914 drivers/scsi/aic94xx/aic94xx_scb.c ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL); asd_ha 919 drivers/scsi/aic94xx/aic94xx_scb.c res = asd_post_ascb_list(asd_ha, ascb , 1); asd_ha 116 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_read_ocm_seg(struct asd_ha_struct *asd_ha, void *buffer, asd_ha 120 drivers/scsi/aic94xx/aic94xx_sds.c if (unlikely(asd_ha->iospace)) asd_ha 121 drivers/scsi/aic94xx/aic94xx_sds.c asd_read_reg_string(asd_ha, buffer, offs+OCM_BASE_ADDR, size); asd_ha 124 drivers/scsi/aic94xx/aic94xx_sds.c *p = asd_read_ocm_byte(asd_ha, offs); asd_ha 129 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_read_ocm_dir(struct asd_ha_struct *asd_ha, asd_ha 132 drivers/scsi/aic94xx/aic94xx_sds.c int err = asd_read_ocm_seg(asd_ha, dir, offs, sizeof(*dir)); asd_ha 161 drivers/scsi/aic94xx/aic94xx_sds.c static void asd_write_ocm_seg(struct asd_ha_struct *asd_ha, void *buffer, asd_ha 165 drivers/scsi/aic94xx/aic94xx_sds.c if (unlikely(asd_ha->iospace)) asd_ha 166 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_string(asd_ha, buffer, offs+OCM_BASE_ADDR, size); asd_ha 169 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_ocm_byte(asd_ha, offs, *p); asd_ha 197 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_get_bios_chim(struct asd_ha_struct *asd_ha, asd_ha 215 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_read_ocm_seg(asd_ha, (void *)bc_struct, offs, asd_ha 236 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.bios.present = 1; asd_ha 237 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.bios.maj = bc_struct->bios_major; asd_ha 238 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.bios.min = bc_struct->bios_minor; asd_ha 239 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.bios.bld = le32_to_cpu(bc_struct->bios_build); asd_ha 241 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.bios.maj, asd_ha 242 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.bios.min, asd_ha 243 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.bios.bld); asd_ha 245 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.ue.num = le16_to_cpu(bc_struct->ue_num); asd_ha 246 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.ue.size= le16_to_cpu(bc_struct->ue_size); asd_ha 247 drivers/scsi/aic94xx/aic94xx_sds.c ASD_DPRINTK("ue num:%d, ue size:%d\n", asd_ha->hw_prof.ue.num, asd_ha 248 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.ue.size); asd_ha 249 drivers/scsi/aic94xx/aic94xx_sds.c size = asd_ha->hw_prof.ue.num * asd_ha->hw_prof.ue.size; asd_ha 252 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.ue.area = kmalloc(size, GFP_KERNEL); asd_ha 253 drivers/scsi/aic94xx/aic94xx_sds.c if (!asd_ha->hw_prof.ue.area) asd_ha 255 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_read_ocm_seg(asd_ha, (void *)asd_ha->hw_prof.ue.area, asd_ha 258 drivers/scsi/aic94xx/aic94xx_sds.c kfree(asd_ha->hw_prof.ue.area); asd_ha 259 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.ue.area = NULL; asd_ha 260 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.ue.num = 0; asd_ha 261 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.ue.size = 0; asd_ha 272 drivers/scsi/aic94xx/aic94xx_sds.c asd_hwi_initialize_ocm_dir (struct asd_ha_struct *asd_ha) asd_ha 278 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_ocm_dword(asd_ha, i, 0); asd_ha 281 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_ocm_seg(asd_ha, &OCMDirInit, 0, asd_ha 286 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_ocm_seg(asd_ha, &OCMDirEntriesInit[i], asd_ha 294 drivers/scsi/aic94xx/aic94xx_sds.c asd_hwi_check_ocm_access (struct asd_ha_struct *asd_ha) asd_ha 296 drivers/scsi/aic94xx/aic94xx_sds.c struct pci_dev *pcidev = asd_ha->pcidev; asd_ha 302 drivers/scsi/aic94xx/aic94xx_sds.c reg = asd_read_reg_dword(asd_ha, EXSICNFGR); asd_ha 325 drivers/scsi/aic94xx/aic94xx_sds.c asd_hwi_initialize_ocm_dir(asd_ha); asd_ha 336 drivers/scsi/aic94xx/aic94xx_sds.c int asd_read_ocm(struct asd_ha_struct *asd_ha) asd_ha 341 drivers/scsi/aic94xx/aic94xx_sds.c if (asd_hwi_check_ocm_access(asd_ha)) asd_ha 350 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_read_ocm_dir(asd_ha, dir, 0); asd_ha 354 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_get_bios_chim(asd_ha, dir); asd_ha 548 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_poll_flash(struct asd_ha_struct *asd_ha) asd_ha 554 drivers/scsi/aic94xx/aic94xx_sds.c d = asd_read_reg_byte(asd_ha, asd_ha->hw_prof.flash.bar); asd_ha 555 drivers/scsi/aic94xx/aic94xx_sds.c d ^= asd_read_reg_byte(asd_ha, asd_ha->hw_prof.flash.bar); asd_ha 563 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_reset_flash(struct asd_ha_struct *asd_ha) asd_ha 567 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_poll_flash(asd_ha); asd_ha 570 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha->hw_prof.flash.bar, FLASH_RESET); asd_ha 571 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_poll_flash(asd_ha); asd_ha 576 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_read_flash_seg(struct asd_ha_struct *asd_ha, asd_ha 579 drivers/scsi/aic94xx/aic94xx_sds.c asd_read_reg_string(asd_ha, buffer, asd_ha->hw_prof.flash.bar+offs, asd_ha 592 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_find_flash_dir(struct asd_ha_struct *asd_ha, asd_ha 597 drivers/scsi/aic94xx/aic94xx_sds.c asd_read_flash_seg(asd_ha, flash_dir, v, asd_ha 601 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.dir_offs = v; asd_ha 602 drivers/scsi/aic94xx/aic94xx_sds.c asd_read_flash_seg(asd_ha, flash_dir, v, asd_ha 610 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_flash_getid(struct asd_ha_struct *asd_ha) asd_ha 615 drivers/scsi/aic94xx/aic94xx_sds.c reg = asd_read_reg_dword(asd_ha, EXSICNFGR); asd_ha 617 drivers/scsi/aic94xx/aic94xx_sds.c if (pci_read_config_dword(asd_ha->pcidev, PCI_CONF_FLSH_BAR, asd_ha 618 drivers/scsi/aic94xx/aic94xx_sds.c &asd_ha->hw_prof.flash.bar)) { asd_ha 620 drivers/scsi/aic94xx/aic94xx_sds.c pci_name(asd_ha->pcidev)); asd_ha 623 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.present = 1; asd_ha 624 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.wide = reg & FLASHW ? 1 : 0; asd_ha 625 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 688 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_ms_get_sas_addr(struct asd_ha_struct *asd_ha, asd_ha 691 drivers/scsi/aic94xx/aic94xx_sds.c memcpy(asd_ha->hw_prof.sas_addr, ms->sas_addr, SAS_ADDR_SIZE); asd_ha 695 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_ms_get_pcba_sn(struct asd_ha_struct *asd_ha, asd_ha 698 drivers/scsi/aic94xx/aic94xx_sds.c memcpy(asd_ha->hw_prof.pcba_sn, ms->pcba_sn, ASD_PCBA_SN_SIZE); asd_ha 699 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.pcba_sn[ASD_PCBA_SN_SIZE] = '\0'; asd_ha 752 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_ms_get_phy_params(struct asd_ha_struct *asd_ha, asd_ha 791 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.enabled_phys = 0; asd_ha 800 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.enabled_phys &= ~(1 << i); asd_ha 805 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.enabled_phys |= (1 << i); asd_ha 809 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].phy_control_0 = pd->phy_control_0; asd_ha 810 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].phy_control_1 = pd->phy_control_1; asd_ha 811 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].phy_control_2 = pd->phy_control_2; asd_ha 812 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].phy_control_3 = pd->phy_control_3; asd_ha 814 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.max_phys = rep_phys + en_phys; asd_ha 815 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.num_phys = en_phys; asd_ha 817 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.max_phys, asd_ha->hw_prof.num_phys); asd_ha 818 drivers/scsi/aic94xx/aic94xx_sds.c ASD_DPRINTK("ms: enabled_phys:0x%x\n", asd_ha->hw_prof.enabled_phys); asd_ha 822 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_ms_get_connector_map(struct asd_ha_struct *asd_ha, asd_ha 850 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_process_ms(struct asd_ha_struct *asd_ha, asd_ha 873 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_read_flash_seg(asd_ha, (void *)manuf_sec, offs, size); asd_ha 886 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_ms_get_sas_addr(asd_ha, manuf_sec); asd_ha 892 drivers/scsi/aic94xx/aic94xx_sds.c SAS_ADDR(asd_ha->hw_prof.sas_addr)); asd_ha 894 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_ms_get_pcba_sn(asd_ha, manuf_sec); asd_ha 899 drivers/scsi/aic94xx/aic94xx_sds.c ASD_DPRINTK("manuf sect PCBA SN %s\n", asd_ha->hw_prof.pcba_sn); asd_ha 901 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_ms_get_phy_params(asd_ha, manuf_sec); asd_ha 907 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_ms_get_connector_map(asd_ha, manuf_sec); asd_ha 919 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_process_ctrla_phy_settings(struct asd_ha_struct *asd_ha, asd_ha 926 drivers/scsi/aic94xx/aic94xx_sds.c if (!PHY_ENABLED(asd_ha, i)) asd_ha 929 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.enabled_phys &= ~(1 << i); asd_ha 933 drivers/scsi/aic94xx/aic94xx_sds.c memcpy(asd_ha->hw_prof.phy_desc[i].sas_addr, pe->sas_addr, asd_ha 935 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].max_sas_lrate = asd_ha 937 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].min_sas_lrate = asd_ha 939 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].max_sata_lrate = asd_ha 941 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].min_sata_lrate = asd_ha 943 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].flags = pe->flags; asd_ha 947 drivers/scsi/aic94xx/aic94xx_sds.c SAS_ADDR(asd_ha->hw_prof.phy_desc[i].sas_addr), asd_ha 948 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].max_sas_lrate, asd_ha 949 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].min_sas_lrate, asd_ha 950 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].max_sata_lrate, asd_ha 951 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].min_sata_lrate, asd_ha 952 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.phy_desc[i].flags); asd_ha 963 drivers/scsi/aic94xx/aic94xx_sds.c static int asd_process_ctrl_a_user(struct asd_ha_struct *asd_ha, asd_ha 981 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.sas_addr, SAS_ADDR_SIZE); asd_ha 1002 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_read_flash_seg(asd_ha, (void *)el, offs, size); asd_ha 1015 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_process_ctrla_phy_settings(asd_ha, ps); asd_ha 1030 drivers/scsi/aic94xx/aic94xx_sds.c int asd_read_flash(struct asd_ha_struct *asd_ha) asd_ha 1035 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_flash_getid(asd_ha); asd_ha 1044 drivers/scsi/aic94xx/aic94xx_sds.c if (!asd_find_flash_dir(asd_ha, flash_dir)) { asd_ha 1055 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_process_ms(asd_ha, flash_dir); asd_ha 1061 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_process_ctrl_a_user(asd_ha, flash_dir); asd_ha 1079 drivers/scsi/aic94xx/aic94xx_sds.c int asd_verify_flash_seg(struct asd_ha_struct *asd_ha, asd_ha 1087 drivers/scsi/aic94xx/aic94xx_sds.c reg = asd_ha->hw_prof.flash.bar; asd_ha 1094 drivers/scsi/aic94xx/aic94xx_sds.c flash_char = asd_read_reg_byte(asd_ha, reg + nv_offset + i); asd_ha 1110 drivers/scsi/aic94xx/aic94xx_sds.c int asd_write_flash_seg(struct asd_ha_struct *asd_ha, asd_ha 1117 drivers/scsi/aic94xx/aic94xx_sds.c reg = asd_ha->hw_prof.flash.bar; asd_ha 1120 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_check_flash_type(asd_ha); asd_ha 1127 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_erase_nv_sector(asd_ha, nv_offset, bytes_to_write); asd_ha 1134 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 1143 drivers/scsi/aic94xx/aic94xx_sds.c switch (asd_ha->hw_prof.flash.method) { asd_ha 1146 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1148 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1150 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1152 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1159 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1161 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1163 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1165 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, asd_ha 1173 drivers/scsi/aic94xx/aic94xx_sds.c if (asd_chk_write_status(asd_ha, asd_ha 1181 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 1189 drivers/scsi/aic94xx/aic94xx_sds.c int asd_chk_write_status(struct asd_ha_struct *asd_ha, asd_ha 1201 drivers/scsi/aic94xx/aic94xx_sds.c reg = asd_ha->hw_prof.flash.bar; asd_ha 1204 drivers/scsi/aic94xx/aic94xx_sds.c nv_data1 = asd_read_reg_byte(asd_ha, reg); asd_ha 1205 drivers/scsi/aic94xx/aic94xx_sds.c nv_data2 = asd_read_reg_byte(asd_ha, reg); asd_ha 1214 drivers/scsi/aic94xx/aic94xx_sds.c nv_data1 = asd_read_reg_byte(asd_ha, asd_ha 1216 drivers/scsi/aic94xx/aic94xx_sds.c nv_data2 = asd_read_reg_byte(asd_ha, asd_ha 1252 drivers/scsi/aic94xx/aic94xx_sds.c int asd_erase_nv_sector(struct asd_ha_struct *asd_ha, u32 flash_addr, u32 size) asd_ha 1257 drivers/scsi/aic94xx/aic94xx_sds.c reg = asd_ha->hw_prof.flash.bar; asd_ha 1267 drivers/scsi/aic94xx/aic94xx_sds.c switch (asd_ha->hw_prof.flash.method) { asd_ha 1269 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0xAAA), 0xAA); asd_ha 1270 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x555), 0x55); asd_ha 1271 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0xAAA), 0x80); asd_ha 1272 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0xAAA), 0xAA); asd_ha 1273 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x555), 0x55); asd_ha 1274 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + sector_addr), 0x30); asd_ha 1277 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x555), 0xAA); asd_ha 1278 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x2AA), 0x55); asd_ha 1279 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x555), 0x80); asd_ha 1280 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x555), 0xAA); asd_ha 1281 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x2AA), 0x55); asd_ha 1282 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + sector_addr), 0x30); asd_ha 1288 drivers/scsi/aic94xx/aic94xx_sds.c if (asd_chk_write_status(asd_ha, sector_addr, 1) != 0) asd_ha 1297 drivers/scsi/aic94xx/aic94xx_sds.c int asd_check_flash_type(struct asd_ha_struct *asd_ha) asd_ha 1307 drivers/scsi/aic94xx/aic94xx_sds.c reg = asd_ha->hw_prof.flash.bar; asd_ha 1310 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 1316 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_UNKNOWN; asd_ha 1317 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.manuf = FLASH_MANUF_ID_UNKNOWN; asd_ha 1318 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.dev_id = FLASH_DEV_ID_UNKNOWN; asd_ha 1324 drivers/scsi/aic94xx/aic94xx_sds.c inc = asd_ha->hw_prof.flash.wide ? 2 : 1; asd_ha 1325 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, reg + 0xAAA, 0xAA); asd_ha 1326 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, reg + 0x555, 0x55); asd_ha 1327 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, reg + 0xAAA, 0x90); asd_ha 1328 drivers/scsi/aic94xx/aic94xx_sds.c manuf_id = asd_read_reg_byte(asd_ha, reg); asd_ha 1329 drivers/scsi/aic94xx/aic94xx_sds.c dev_id = asd_read_reg_byte(asd_ha, reg + inc); asd_ha 1330 drivers/scsi/aic94xx/aic94xx_sds.c sec_prot = asd_read_reg_byte(asd_ha, reg + inc + inc); asd_ha 1332 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 1339 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 1349 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_A; asd_ha 1359 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_A; asd_ha 1369 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_A; asd_ha 1376 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_A; asd_ha 1382 drivers/scsi/aic94xx/aic94xx_sds.c if (asd_ha->hw_prof.flash.method == FLASH_METHOD_UNKNOWN) { asd_ha 1383 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 1390 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x555), 0xAA); asd_ha 1391 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x2AA), 0x55); asd_ha 1392 drivers/scsi/aic94xx/aic94xx_sds.c asd_write_reg_byte(asd_ha, (reg + 0x555), 0x90); asd_ha 1393 drivers/scsi/aic94xx/aic94xx_sds.c manuf_id = asd_read_reg_byte(asd_ha, reg); asd_ha 1394 drivers/scsi/aic94xx/aic94xx_sds.c dev_id = asd_read_reg_byte(asd_ha, reg + inc); asd_ha 1395 drivers/scsi/aic94xx/aic94xx_sds.c sec_prot = asd_read_reg_byte(asd_ha, reg + inc + inc); asd_ha 1400 drivers/scsi/aic94xx/aic94xx_sds.c err = asd_reset_flash(asd_ha); asd_ha 1410 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_B; asd_ha 1419 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_B; asd_ha 1428 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_B; asd_ha 1435 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_B; asd_ha 1442 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.method = FLASH_METHOD_B; asd_ha 1451 drivers/scsi/aic94xx/aic94xx_sds.c if (asd_ha->hw_prof.flash.method == FLASH_METHOD_UNKNOWN) asd_ha 1454 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.manuf = manuf_id; asd_ha 1455 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.dev_id = dev_id; asd_ha 1456 drivers/scsi/aic94xx/aic94xx_sds.c asd_ha->hw_prof.flash.sec_prot = sec_prot; asd_ha 94 drivers/scsi/aic94xx/aic94xx_sds.h int asd_verify_flash_seg(struct asd_ha_struct *asd_ha, asd_ha 96 drivers/scsi/aic94xx/aic94xx_sds.h int asd_write_flash_seg(struct asd_ha_struct *asd_ha, asd_ha 98 drivers/scsi/aic94xx/aic94xx_sds.h int asd_chk_write_status(struct asd_ha_struct *asd_ha, asd_ha 100 drivers/scsi/aic94xx/aic94xx_sds.h int asd_check_flash_type(struct asd_ha_struct *asd_ha); asd_ha 101 drivers/scsi/aic94xx/aic94xx_sds.h int asd_erase_nv_sector(struct asd_ha_struct *asd_ha, asd_ha 46 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_pause_cseq(struct asd_ha_struct *asd_ha) asd_ha 51 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, CARP2CTL); asd_ha 55 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CARP2CTL, arp2ctl | EPAUSE); asd_ha 57 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, CARP2CTL); asd_ha 73 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_unpause_cseq(struct asd_ha_struct *asd_ha) asd_ha 78 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, CARP2CTL); asd_ha 82 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CARP2CTL, arp2ctl & ~EPAUSE); asd_ha 84 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, CARP2CTL); asd_ha 101 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_seq_pause_lseq(struct asd_ha_struct *asd_ha, int lseq) asd_ha 106 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, LmARP2CTL(lseq)); asd_ha 110 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmARP2CTL(lseq), arp2ctl | EPAUSE); asd_ha 112 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, LmARP2CTL(lseq)); asd_ha 129 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_pause_lseq(struct asd_ha_struct *asd_ha, u8 lseq_mask) asd_ha 135 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_seq_pause_lseq(asd_ha, lseq); asd_ha 150 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_seq_unpause_lseq(struct asd_ha_struct *asd_ha, int lseq) asd_ha 155 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, LmARP2CTL(lseq)); asd_ha 159 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmARP2CTL(lseq), arp2ctl & ~EPAUSE); asd_ha 161 drivers/scsi/aic94xx/aic94xx_seq.c arp2ctl = asd_read_reg_dword(asd_ha, LmARP2CTL(lseq)); asd_ha 174 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_verify_cseq(struct asd_ha_struct *asd_ha, const u8 *_prog, asd_ha 182 drivers/scsi/aic94xx/aic94xx_seq.c u32 val = asd_read_reg_dword(asd_ha, addr); asd_ha 187 drivers/scsi/aic94xx/aic94xx_seq.c pci_name(asd_ha->pcidev), asd_ha 208 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_verify_lseq(struct asd_ha_struct *asd_ha, const u8 *_prog, asd_ha 219 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmBISTCTL1(lseq), asd_ha 224 drivers/scsi/aic94xx/aic94xx_seq.c u32 val = asd_read_reg_dword(asd_ha, LmSEQRAM(lseq)+i); asd_ha 229 drivers/scsi/aic94xx/aic94xx_seq.c pci_name(asd_ha->pcidev), asd_ha 249 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_verify_seq(struct asd_ha_struct *asd_ha, const u8 *prog, asd_ha 253 drivers/scsi/aic94xx/aic94xx_seq.c return asd_verify_cseq(asd_ha, prog, size); asd_ha 258 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_verify_lseq(asd_ha, prog, size, lseq); asd_ha 270 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_download_seq(struct asd_ha_struct *asd_ha, asd_ha 285 drivers/scsi/aic94xx/aic94xx_seq.c asd_pause_cseq(asd_ha); asd_ha 286 drivers/scsi/aic94xx/aic94xx_seq.c asd_pause_lseq(asd_ha, 0xFF); asd_ha 289 drivers/scsi/aic94xx/aic94xx_seq.c comstaten = asd_read_reg_dword(asd_ha, COMSTATEN); asd_ha 290 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, COMSTATEN, 0); asd_ha 291 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, COMSTAT, COMSTAT_MASK); asd_ha 293 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CHIMINTEN, RST_CHIMINTEN); asd_ha 294 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CHIMINT, CHIMINT_MASK); asd_ha 296 drivers/scsi/aic94xx/aic94xx_seq.c token = asd_alloc_coherent(asd_ha, MAX_DMA_OVLY_COUNT, GFP_KERNEL); asd_ha 310 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_addr(asd_ha, OVLYDMAADR, token->dma_handle); asd_ha 311 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, OVLYDMACNT, left); asd_ha 316 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, OVLYDMACTL, reg); asd_ha 319 drivers/scsi/aic94xx/aic94xx_seq.c u32 dmadone = asd_read_reg_dword(asd_ha, OVLYDMACTL); asd_ha 326 drivers/scsi/aic94xx/aic94xx_seq.c reg = asd_read_reg_dword(asd_ha, COMSTAT); asd_ha 328 drivers/scsi/aic94xx/aic94xx_seq.c || (asd_read_reg_dword(asd_ha, CHIMINT) & DEVEXCEPT_MASK)){ asd_ha 330 drivers/scsi/aic94xx/aic94xx_seq.c pci_name(asd_ha->pcidev)); asd_ha 334 drivers/scsi/aic94xx/aic94xx_seq.c asd_free_coherent(asd_ha, token); asd_ha 336 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, COMSTATEN, comstaten); asd_ha 338 drivers/scsi/aic94xx/aic94xx_seq.c return err ? : asd_verify_seq(asd_ha, prog, size, lseq_mask); asd_ha 341 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_download_seq(struct asd_ha_struct *asd_ha, const u8 *_prog, asd_ha 353 drivers/scsi/aic94xx/aic94xx_seq.c asd_pause_cseq(asd_ha); asd_ha 354 drivers/scsi/aic94xx/aic94xx_seq.c asd_pause_lseq(asd_ha, 0xFF); asd_ha 359 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, OVLYDMACNT, size); asd_ha 360 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, OVLYDMACTL, reg); asd_ha 366 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, SPIODATA, *prog); asd_ha 369 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, OVLYDMACTL, reg); asd_ha 371 drivers/scsi/aic94xx/aic94xx_seq.c return asd_verify_seq(asd_ha, _prog, size, lseq_mask); asd_ha 381 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_seq_download_seqs(struct asd_ha_struct *asd_ha) asd_ha 385 drivers/scsi/aic94xx/aic94xx_seq.c if (!asd_ha->hw_prof.enabled_phys) { asd_ha 386 drivers/scsi/aic94xx/aic94xx_seq.c asd_printk("%s: no enabled phys!\n", pci_name(asd_ha->pcidev)); asd_ha 392 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_download_seq(asd_ha, cseq_code, cseq_code_size, 0); asd_ha 402 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_download_seq(asd_ha, lseq_code, lseq_code_size, asd_ha 403 drivers/scsi/aic94xx/aic94xx_seq.c asd_ha->hw_prof.enabled_phys); asd_ha 407 drivers/scsi/aic94xx/aic94xx_seq.c u8 lseq_mask = asd_ha->hw_prof.enabled_phys; asd_ha 410 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_download_seq(asd_ha, lseq_code, asd_ha 428 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_cseq_mip(struct asd_ha_struct *asd_ha) asd_ha 431 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_EXE_HEAD, 0xFFFF); asd_ha 432 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_EXE_TAIL, 0xFFFF); asd_ha 433 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_DONE_HEAD, 0xFFFF); asd_ha 434 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_DONE_TAIL, 0xFFFF); asd_ha 435 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_SEND_HEAD, 0xFFFF); asd_ha 436 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_SEND_TAIL, 0xFFFF); asd_ha 437 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_DMA2CHIM_HEAD, 0xFFFF); asd_ha 438 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_DMA2CHIM_TAIL, 0xFFFF); asd_ha 439 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_COPY_HEAD, 0xFFFF); asd_ha 440 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_COPY_TAIL, 0xFFFF); asd_ha 441 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_REG0, 0); asd_ha 442 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_REG1, 0); asd_ha 443 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_REG2, 0); asd_ha 444 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_LINK_CTL_Q_MAP, 0); asd_ha 446 drivers/scsi/aic94xx/aic94xx_seq.c u8 con = asd_read_reg_byte(asd_ha, CCONEXIST); asd_ha 448 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_MAX_CSEQ_MODE, (val<<4)|val); asd_ha 450 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_FREE_LIST_HACK_COUNT, 0); asd_ha 453 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EST_NEXUS_REQ_QUEUE, 0); asd_ha 454 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EST_NEXUS_REQ_QUEUE+4, 0); asd_ha 455 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EST_NEXUS_REQ_COUNT, 0); asd_ha 456 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EST_NEXUS_REQ_COUNT+4, 0); asd_ha 457 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_EST_NEXUS_HEAD, 0xFFFF); asd_ha 458 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_EST_NEXUS_TAIL, 0xFFFF); asd_ha 459 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_NEED_EST_NEXUS_SCB, 0); asd_ha 460 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_EST_NEXUS_REQ_HEAD, 0); asd_ha 461 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_EST_NEXUS_REQ_TAIL, 0); asd_ha 462 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_EST_NEXUS_SCB_OFFSET, 0); asd_ha 465 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_INT_ROUT_RET_ADDR0, 0); asd_ha 466 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_INT_ROUT_RET_ADDR1, 0); asd_ha 467 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_INT_ROUT_SCBPTR, 0); asd_ha 468 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_INT_ROUT_MODE, 0); asd_ha 469 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_ISR_SCRATCH_FLAGS, 0); asd_ha 470 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_ISR_SAVE_SINDEX, 0); asd_ha 471 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_ISR_SAVE_DINDEX, 0); asd_ha 472 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_MONIRTT_HEAD, 0xFFFF); asd_ha 473 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_MONIRTT_TAIL, 0xFFFF); asd_ha 476 drivers/scsi/aic94xx/aic94xx_seq.c u16 cmdctx = asd_get_cmdctx_size(asd_ha); asd_ha 478 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_FREE_SCB_MASK, (u8)cmdctx); asd_ha 480 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_BUILTIN_FREE_SCB_HEAD, asd_ha 482 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_BUILTIN_FREE_SCB_TAIL, asd_ha 484 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_EXTENDED_FREE_SCB_HEAD, 0xFFFF); asd_ha 485 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_EXTENDED_FREE_SCB_TAIL, 0xFFFF); asd_ha 488 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EMPTY_REQ_QUEUE, 0); asd_ha 489 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EMPTY_REQ_QUEUE+4, 0); asd_ha 490 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EMPTY_REQ_COUNT, 0); asd_ha 491 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_EMPTY_REQ_COUNT+4, 0); asd_ha 492 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_EMPTY_HEAD, 0xFFFF); asd_ha 493 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_Q_EMPTY_TAIL, 0xFFFF); asd_ha 494 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_NEED_EMPTY_SCB, 0); asd_ha 495 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_EMPTY_REQ_HEAD, 0); asd_ha 496 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_EMPTY_REQ_TAIL, 0); asd_ha 497 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_EMPTY_SCB_OFFSET, 0); asd_ha 498 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_PRIMITIVE_DATA, 0); asd_ha 499 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_TIMEOUT_CONST, 0); asd_ha 506 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_cseq_mdp(struct asd_ha_struct *asd_ha) asd_ha 515 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, i*moffs+CSEQ_LRM_SAVE_SINDEX, 0); asd_ha 516 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, i*moffs+CSEQ_LRM_SAVE_SCBPTR, 0); asd_ha 517 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, i*moffs+CSEQ_Q_LINK_HEAD, 0xFFFF); asd_ha 518 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, i*moffs+CSEQ_Q_LINK_TAIL, 0xFFFF); asd_ha 519 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, i*moffs+CSEQ_LRM_SAVE_SCRPAGE, 0); asd_ha 525 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_RET_ADDR, 0xFFFF); asd_ha 526 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_RET_SCBPTR, 0); asd_ha 527 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_SAVE_SCBPTR, 0); asd_ha 528 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_EMPTY_TRANS_CTX, 0); asd_ha 529 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_RESP_LEN, 0); asd_ha 530 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_TMF_SCBPTR, 0); asd_ha 531 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_GLOBAL_PREV_SCB, 0); asd_ha 532 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_GLOBAL_HEAD, 0); asd_ha 533 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_CLEAR_LU_HEAD, 0); asd_ha 534 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_TMF_OPCODE, 0); asd_ha 535 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_SCRATCH_FLAGS, 0); asd_ha 536 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_HSB_SITE, 0); asd_ha 537 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_FIRST_INV_SCB_SITE, asd_ha 539 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CSEQ_FIRST_INV_DDB_SITE, asd_ha 540 drivers/scsi/aic94xx/aic94xx_seq.c (u16)asd_ha->hw_prof.max_ddbs); asd_ha 543 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_LUN_TO_CLEAR, 0); asd_ha 544 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_LUN_TO_CLEAR + 4, 0); asd_ha 545 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_LUN_TO_CHECK, 0); asd_ha 546 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_LUN_TO_CHECK + 4, 0); asd_ha 550 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_addr(asd_ha, CSEQ_HQ_NEW_POINTER, asd_ha 551 drivers/scsi/aic94xx/aic94xx_seq.c asd_ha->seq.next_scb.dma_handle); asd_ha 553 drivers/scsi/aic94xx/aic94xx_seq.c (unsigned long long)asd_ha->seq.next_scb.dma_handle); asd_ha 556 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_addr(asd_ha, CSEQ_HQ_DONE_BASE, asd_ha 557 drivers/scsi/aic94xx/aic94xx_seq.c asd_ha->seq.actual_dl->dma_handle); asd_ha 561 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQ_HQ_DONE_POINTER, asd_ha 562 drivers/scsi/aic94xx/aic94xx_seq.c ASD_BUSADDR_LO(asd_ha->seq.actual_dl->dma_handle)); asd_ha 564 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQ_HQ_DONE_PASS, ASD_DEF_DL_TOGGLE); asd_ha 576 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_cseq_scratch(struct asd_ha_struct *asd_ha) asd_ha 578 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_cseq_mip(asd_ha); asd_ha 579 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_cseq_mdp(asd_ha); asd_ha 586 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_lseq_mip(struct asd_ha_struct *asd_ha, u8 lseq) asd_ha 591 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_Q_TGTXFR_HEAD(lseq), 0xFFFF); asd_ha 592 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_Q_TGTXFR_TAIL(lseq), 0xFFFF); asd_ha 593 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_LINK_NUMBER(lseq), lseq); asd_ha 594 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_SCRATCH_FLAGS(lseq), asd_ha 596 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_CONNECTION_STATE(lseq),0x08000000); asd_ha 597 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_CONCTL(lseq), 0); asd_ha 598 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_CONSTAT(lseq), 0); asd_ha 599 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_CONNECTION_MODES(lseq), 0); asd_ha 600 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_REG1_ISR(lseq), 0); asd_ha 601 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_REG2_ISR(lseq), 0); asd_ha 602 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_REG3_ISR(lseq), 0); asd_ha 603 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_REG0_ISR(lseq), 0); asd_ha 604 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_REG0_ISR(lseq)+4, 0); asd_ha 607 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EST_NEXUS_SCBPTR0(lseq), 0xFFFF); asd_ha 608 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EST_NEXUS_SCBPTR1(lseq), 0xFFFF); asd_ha 609 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EST_NEXUS_SCBPTR2(lseq), 0xFFFF); asd_ha 610 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EST_NEXUS_SCBPTR3(lseq), 0xFFFF); asd_ha 611 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EST_NEXUS_SCB_OPCODE0(lseq), 0); asd_ha 612 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EST_NEXUS_SCB_OPCODE1(lseq), 0); asd_ha 613 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EST_NEXUS_SCB_OPCODE2(lseq), 0); asd_ha 614 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EST_NEXUS_SCB_OPCODE3(lseq), 0); asd_ha 615 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EST_NEXUS_SCB_HEAD(lseq), 0); asd_ha 616 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EST_NEXUS_SCB_TAIL(lseq), 0); asd_ha 617 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EST_NEXUS_BUF_AVAIL(lseq), 0); asd_ha 618 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_TIMEOUT_CONST(lseq), 0); asd_ha 619 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_ISR_SAVE_SINDEX(lseq), 0); asd_ha 620 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_ISR_SAVE_DINDEX(lseq), 0); asd_ha 623 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EMPTY_SCB_PTR0(lseq), 0xFFFF); asd_ha 624 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EMPTY_SCB_PTR1(lseq), 0xFFFF); asd_ha 625 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EMPTY_SCB_PTR2(lseq), 0xFFFF); asd_ha 626 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EMPTY_SCB_PTR3(lseq), 0xFFFF); asd_ha 627 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EMPTY_SCB_OPCD0(lseq), 0); asd_ha 628 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EMPTY_SCB_OPCD1(lseq), 0); asd_ha 629 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EMPTY_SCB_OPCD2(lseq), 0); asd_ha 630 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EMPTY_SCB_OPCD3(lseq), 0); asd_ha 631 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EMPTY_SCB_HEAD(lseq), 0); asd_ha 632 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EMPTY_SCB_TAIL(lseq), 0); asd_ha 633 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_EMPTY_BUFS_AVAIL(lseq), 0); asd_ha 635 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_ATA_SCR_REGS(lseq) + i, 0); asd_ha 640 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_DEV_PRES_TMR_TOUT_CONST(lseq), asd_ha 644 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_SATA_INTERLOCK_TIMEOUT(lseq), asd_ha 649 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_STP_SHUTDOWN_TIMEOUT(lseq), asd_ha 652 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_SRST_ASSERT_TIMEOUT(lseq), asd_ha 655 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_RCV_FIS_TIMEOUT(lseq), asd_ha 658 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_ONE_MILLISEC_TIMEOUT(lseq), asd_ha 662 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_TEN_MS_COMINIT_TIMEOUT(lseq), asd_ha 665 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_SMP_RCV_TIMEOUT(lseq), asd_ha 673 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_lseq_mdp(struct asd_ha_struct *asd_ha, int lseq) asd_ha 692 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_RET_ADDR(lseq)+moffs, asd_ha 694 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_REG0_MODE(lseq)+moffs, 0); asd_ha 695 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_MODE_FLAGS(lseq)+moffs, 0); asd_ha 696 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_RET_ADDR2(lseq)+moffs,0xFFFF); asd_ha 697 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_RET_ADDR1(lseq)+moffs,0xFFFF); asd_ha 698 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_OPCODE_TO_CSEQ(lseq)+moffs,0); asd_ha 699 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_DATA_TO_CSEQ(lseq)+moffs,0); asd_ha 704 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, asd_ha 707 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, asd_ha 709 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, asd_ha 711 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, asd_ha 713 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, asd_ha 715 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, asd_ha 717 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, asd_ha 721 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_FIRST_INV_DDB_SITE(lseq), asd_ha 722 drivers/scsi/aic94xx/aic94xx_seq.c (u16)asd_ha->hw_prof.max_ddbs); asd_ha 723 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_EMPTY_TRANS_CTX(lseq), 0); asd_ha 724 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_RESP_LEN(lseq), 0); asd_ha 725 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_FIRST_INV_SCB_SITE(lseq), asd_ha 727 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_INTEN_SAVE(lseq), asd_ha 729 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_INTEN_SAVE(lseq) + 2, asd_ha 731 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_LINK_RST_FRM_LEN(lseq), 0); asd_ha 732 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_LINK_RST_PROTOCOL(lseq), 0); asd_ha 733 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_RESP_STATUS(lseq), 0); asd_ha 734 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_LAST_LOADED_SGE(lseq), 0); asd_ha 735 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_SAVE_SCBPTR(lseq), 0); asd_ha 738 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_Q_XMIT_HEAD(lseq), 0xFFFF); asd_ha 739 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_M1_EMPTY_TRANS_CTX(lseq), 0); asd_ha 740 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_INI_CONN_TAG(lseq), 0); asd_ha 741 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_FAILED_OPEN_STATUS(lseq), 0); asd_ha 742 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_XMIT_REQUEST_TYPE(lseq), 0); asd_ha 743 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_M1_RESP_STATUS(lseq), 0); asd_ha 744 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_M1_LAST_LOADED_SGE(lseq), 0); asd_ha 745 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_M1_SAVE_SCBPTR(lseq), 0); asd_ha 748 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_PORT_COUNTER(lseq), 0); asd_ha 749 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_PM_TABLE_PTR(lseq), 0); asd_ha 750 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_SATA_INTERLOCK_TMR_SAVE(lseq), 0); asd_ha 751 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_IP_BITL(lseq), 0); asd_ha 752 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_COPY_SMP_CONN_TAG(lseq), 0); asd_ha 753 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_P0M2_OFFS1AH(lseq), 0); asd_ha 756 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_SAVED_OOB_STATUS(lseq), 0); asd_ha 757 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_SAVED_OOB_MODE(lseq), 0); asd_ha 758 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_Q_LINK_HEAD(lseq), 0xFFFF); asd_ha 759 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_LINK_RST_ERR(lseq), 0); asd_ha 760 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_SAVED_OOB_SIGNALS(lseq), 0); asd_ha 761 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_SAS_RESET_MODE(lseq), 0); asd_ha 762 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_LINK_RESET_RETRY_COUNT(lseq), 0); asd_ha 763 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_NUM_LINK_RESET_RETRIES(lseq), 0); asd_ha 764 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_OOB_INT_ENABLES(lseq), 0); asd_ha 769 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_NOTIFY_TIMER_TIMEOUT(lseq), asd_ha 772 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_NOTIFY_TIMER_DOWN_COUNT(lseq), asd_ha 774 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_NOTIFY_TIMER_INITIAL_COUNT(lseq), asd_ha 784 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSCRATCH(lseq)+moffs+j,0); asd_ha 788 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_INVALID_DWORD_COUNT(lseq), 0); asd_ha 789 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_DISPARITY_ERROR_COUNT(lseq), 0); asd_ha 790 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_LOSS_OF_SYNC_COUNT(lseq), 0); asd_ha 794 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_FRAME_TYPE_MASK(lseq)+i, 0); asd_ha 795 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_FRAME_TYPE_MASK(lseq), 0xFF); asd_ha 796 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_HASHED_DEST_ADDR_MASK(lseq), 0xFF); asd_ha 797 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_HASHED_DEST_ADDR_MASK(lseq)+1,0xFF); asd_ha 798 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_HASHED_DEST_ADDR_MASK(lseq)+2,0xFF); asd_ha 799 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_HASHED_SRC_ADDR_MASK(lseq), 0xFF); asd_ha 800 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_HASHED_SRC_ADDR_MASK(lseq)+1, 0xFF); asd_ha 801 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_HASHED_SRC_ADDR_MASK(lseq)+2, 0xFF); asd_ha 802 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_DATA_OFFSET(lseq), 0xFFFFFFFF); asd_ha 805 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_SMP_RCV_TIMER_TERM_TS(lseq), 0); asd_ha 806 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_DEVICE_BITS(lseq), 0); asd_ha 807 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmSEQ_SDB_DDB(lseq), 0); asd_ha 808 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_SDB_NUM_TAGS(lseq), 0); asd_ha 809 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSEQ_SDB_CURR_TAG(lseq), 0); asd_ha 812 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_TX_ID_ADDR_FRAME(lseq), 0); asd_ha 813 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_TX_ID_ADDR_FRAME(lseq)+4, 0); asd_ha 814 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_OPEN_TIMER_TERM_TS(lseq), 0); asd_ha 815 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_SRST_AS_TIMER_TERM_TS(lseq), 0); asd_ha 816 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_LAST_LOADED_SG_EL(lseq), 0); asd_ha 821 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_STP_SHUTDOWN_TIMER_TERM_TS(lseq),0); asd_ha 822 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_CLOSE_TIMER_TERM_TS(lseq), 0); asd_ha 823 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_BREAK_TIMER_TERM_TS(lseq), 0); asd_ha 824 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_DWS_RESET_TIMER_TERM_TS(lseq), 0); asd_ha 825 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha,LmSEQ_SATA_INTERLOCK_TIMER_TERM_TS(lseq),0); asd_ha 826 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_MCTL_TIMER_TERM_TS(lseq), 0); asd_ha 829 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_COMINIT_TIMER_TERM_TS(lseq), 0); asd_ha 830 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_RCV_ID_TIMER_TERM_TS(lseq), 0); asd_ha 831 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_RCV_FIS_TIMER_TERM_TS(lseq), 0); asd_ha 832 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmSEQ_DEV_PRES_TIMER_TERM_TS(lseq), 0); asd_ha 839 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_lseq_scratch(struct asd_ha_struct *asd_ha) asd_ha 844 drivers/scsi/aic94xx/aic94xx_seq.c lseq_mask = asd_ha->hw_prof.enabled_phys; asd_ha 846 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_lseq_mip(asd_ha, lseq); asd_ha 847 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_lseq_mdp(asd_ha, lseq); asd_ha 859 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_scb_sites(struct asd_ha_struct *asd_ha) asd_ha 864 drivers/scsi/aic94xx/aic94xx_seq.c for (site_no = asd_ha->hw_prof.max_scbs-1; asd_ha 871 drivers/scsi/aic94xx/aic94xx_seq.c asd_scbsite_write_dword(asd_ha, site_no, i, 0); asd_ha 874 drivers/scsi/aic94xx/aic94xx_seq.c asd_scbsite_write_byte(asd_ha, site_no, asd_ha 881 drivers/scsi/aic94xx/aic94xx_seq.c asd_scbsite_write_byte(asd_ha, site_no, 0x49, 0x01); asd_ha 896 drivers/scsi/aic94xx/aic94xx_seq.c asd_scbsite_write_word(asd_ha, site_no, 0, first_scb_site_no); asd_ha 901 drivers/scsi/aic94xx/aic94xx_seq.c asd_ha->hw_prof.max_scbs = max_scbs; asd_ha 902 drivers/scsi/aic94xx/aic94xx_seq.c ASD_DPRINTK("max_scbs:%d\n", asd_ha->hw_prof.max_scbs); asd_ha 911 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_cseq_cio(struct asd_ha_struct *asd_ha) asd_ha 915 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQCOMINTEN, 0); asd_ha 916 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQDLCTL, ASD_DL_SIZE_BITS); asd_ha 917 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQDLOFFS, 0); asd_ha 918 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSEQDLOFFS+1, 0); asd_ha 919 drivers/scsi/aic94xx/aic94xx_seq.c asd_ha->seq.scbpro = 0; asd_ha 920 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, SCBPRO, 0); asd_ha 921 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CSEQCON, 0); asd_ha 927 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CM11INTVEC0, cseq_vecs[0]); asd_ha 928 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CM11INTVEC1, cseq_vecs[1]); asd_ha 929 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CM11INTVEC2, cseq_vecs[2]); asd_ha 932 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CARP2INTEN, EN_ARP2HALTC); asd_ha 935 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CSCRATCHPAGE, 0x04); asd_ha 940 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CMnSCRATCHPAGE(i), 0); asd_ha 943 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CPRGMCNT, cseq_idle_loop); asd_ha 947 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CMnINTEN(i), EN_CMnRSPMBXF); asd_ha 949 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CMnREQMBX(i), 0); asd_ha 957 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_lseq_cio(struct asd_ha_struct *asd_ha, int lseq) asd_ha 963 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmARP2INTEN(lseq), EN_ARP2HALTC); asd_ha 965 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmSCRATCHPAGE(lseq), 0); asd_ha 969 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnSCRATCHPAGE(lseq, i), 0); asd_ha 972 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnSCRATCHPAGE(lseq, 5), 0); asd_ha 974 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmRSPMBX(lseq), 0); asd_ha 977 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINTEN(lseq, 0), LmM0INTEN_MASK); asd_ha 978 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINT(lseq, 0), 0xFFFFFFFF); asd_ha 980 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINTEN(lseq, 1), LmM1INTEN_MASK); asd_ha 981 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINT(lseq, 1), 0xFFFFFFFF); asd_ha 983 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINTEN(lseq, 2), LmM2INTEN_MASK); asd_ha 984 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINT(lseq, 2), 0xFFFFFFFF); asd_ha 986 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINTEN(lseq, 5), LmM5INTEN_MASK); asd_ha 987 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnINT(lseq, 5), 0xFFFFFFFF); asd_ha 990 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmHWTSTATEN(lseq), LmHWTSTATEN_MASK); asd_ha 993 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmPRIMSTAT0EN(lseq), LmPRIMSTAT0EN_MASK); asd_ha 994 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmPRIMSTAT1EN(lseq), LmPRIMSTAT1EN_MASK); asd_ha 997 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmFRMERREN(lseq), LmFRMERREN_MASK); asd_ha 998 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnHOLDLVL(lseq, 0), 0x50); asd_ha 1001 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnXFRLVL(lseq, 0), LmMnXFRLVL_512); asd_ha 1003 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnXFRLVL(lseq, 1), LmMnXFRLVL_256); asd_ha 1006 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmPRGMCNT(lseq), lseq_idle_loop); asd_ha 1009 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMODECTL(lseq), LmBLIND48); asd_ha 1010 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3SATATIMER(lseq), asd_ha 1013 drivers/scsi/aic94xx/aic94xx_seq.c (void) asd_read_reg_dword(asd_ha, LmREQMBX(lseq)); asd_ha 1016 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmPRMSTAT0(lseq), 0xFFFFFFFF); asd_ha 1017 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmPRMSTAT1(lseq), 0xFFFFFFFF); asd_ha 1020 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmHWTSTAT(lseq), 0xFF); asd_ha 1023 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnDMAERRS(lseq, 0), 0xFF); asd_ha 1024 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnDMAERRS(lseq, 1), 0xFF); asd_ha 1027 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnSGDMAERRS(lseq, 0), 0xFF); asd_ha 1028 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnSGDMAERRS(lseq, 1), 0xFF); asd_ha 1031 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnBUFSTAT(lseq, 0), LmMnBUFPERR); asd_ha 1034 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmMnFRMERR(lseq, 0), 0xFFFFFFFF); asd_ha 1037 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmARP2INTCTL(lseq), RSTINTCTL); asd_ha 1040 drivers/scsi/aic94xx/aic94xx_seq.c sas_addr = asd_ha->phys[lseq].phy_desc->sas_addr; asd_ha 1042 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmWWN(lseq) + i, sas_addr[i]); asd_ha 1045 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnXMTSIZE(lseq, 1), 0); asd_ha 1048 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmBITL_TIMER(lseq), 9); asd_ha 1051 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmMnSATAFS(lseq, 1), 0x80); asd_ha 1055 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC0(lseq), lseq_vecs[0]); asd_ha 1056 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC1(lseq), lseq_vecs[1]); asd_ha 1057 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC2(lseq), lseq_vecs[2]); asd_ha 1058 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC3(lseq), lseq_vecs[3]); asd_ha 1059 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC4(lseq), lseq_vecs[4]); asd_ha 1060 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC5(lseq), lseq_vecs[5]); asd_ha 1061 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC6(lseq), lseq_vecs[6]); asd_ha 1062 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC7(lseq), lseq_vecs[7]); asd_ha 1063 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC8(lseq), lseq_vecs[8]); asd_ha 1064 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC9(lseq), lseq_vecs[9]); asd_ha 1065 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmM3INTVEC10(lseq), lseq_vecs[10]); asd_ha 1070 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, LmCONTROL(lseq), asd_ha 1074 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmM1SASALIGN(lseq), SAS_ALIGN_DEFAULT); asd_ha 1075 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, LmM1STPALIGN(lseq), STP_ALIGN_DEFAULT); asd_ha 1083 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_post_init_cseq(struct asd_ha_struct *asd_ha) asd_ha 1088 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_dword(asd_ha, CMnINT(i), 0xFFFFFFFF); asd_ha 1090 drivers/scsi/aic94xx/aic94xx_seq.c asd_read_reg_dword(asd_ha, CMnRSPMBX(i)); asd_ha 1092 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_byte(asd_ha, CARP2INTCTL, RSTINTCTL); asd_ha 1101 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_init_ddb_0(struct asd_ha_struct *asd_ha) asd_ha 1107 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_dword(asd_ha, 0, i, 0); asd_ha 1109 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1111 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1113 drivers/scsi/aic94xx/aic94xx_seq.c asd_ha->hw_prof.max_ddbs-1); asd_ha 1114 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1116 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1118 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1120 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1122 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1124 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1126 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_word(asd_ha, 0, asd_ha 1128 drivers/scsi/aic94xx/aic94xx_seq.c asd_ha->hw_prof.num_phys * 2); asd_ha 1129 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_byte(asd_ha, 0, asd_ha 1131 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_byte(asd_ha, 0, asd_ha 1133 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_byte(asd_ha, 0, asd_ha 1136 drivers/scsi/aic94xx/aic94xx_seq.c set_bit(0, asd_ha->hw_prof.ddb_bitmap); asd_ha 1139 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_seq_init_ddb_sites(struct asd_ha_struct *asd_ha) asd_ha 1146 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_dword(asd_ha, ddb_site, i, 0); asd_ha 1153 drivers/scsi/aic94xx/aic94xx_seq.c static void asd_seq_setup_seqs(struct asd_ha_struct *asd_ha) asd_ha 1159 drivers/scsi/aic94xx/aic94xx_seq.c asd_seq_init_ddb_sites(asd_ha); asd_ha 1163 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_scb_sites(asd_ha); asd_ha 1166 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_cseq_scratch(asd_ha); asd_ha 1169 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_lseq_scratch(asd_ha); asd_ha 1172 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_cseq_cio(asd_ha); asd_ha 1174 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_ddb_0(asd_ha); asd_ha 1177 drivers/scsi/aic94xx/aic94xx_seq.c lseq_mask = asd_ha->hw_prof.enabled_phys; asd_ha 1179 drivers/scsi/aic94xx/aic94xx_seq.c asd_init_lseq_cio(asd_ha, lseq); asd_ha 1180 drivers/scsi/aic94xx/aic94xx_seq.c asd_post_init_cseq(asd_ha); asd_ha 1188 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_seq_start_cseq(struct asd_ha_struct *asd_ha) asd_ha 1191 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, CPRGMCNT, cseq_idle_loop); asd_ha 1194 drivers/scsi/aic94xx/aic94xx_seq.c return asd_unpause_cseq(asd_ha); asd_ha 1202 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_seq_start_lseq(struct asd_ha_struct *asd_ha, int lseq) asd_ha 1205 drivers/scsi/aic94xx/aic94xx_seq.c asd_write_reg_word(asd_ha, LmPRGMCNT(lseq), lseq_idle_loop); asd_ha 1208 drivers/scsi/aic94xx/aic94xx_seq.c return asd_seq_unpause_lseq(asd_ha, lseq); asd_ha 1217 drivers/scsi/aic94xx/aic94xx_seq.c static int asd_request_firmware(struct asd_ha_struct *asd_ha) asd_ha 1231 drivers/scsi/aic94xx/aic94xx_seq.c &asd_ha->pcidev->dev); asd_ha 1296 drivers/scsi/aic94xx/aic94xx_seq.c int asd_init_seqs(struct asd_ha_struct *asd_ha) asd_ha 1300 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_request_firmware(asd_ha); asd_ha 1308 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_seq_download_seqs(asd_ha); asd_ha 1311 drivers/scsi/aic94xx/aic94xx_seq.c pci_name(asd_ha->pcidev)); asd_ha 1315 drivers/scsi/aic94xx/aic94xx_seq.c asd_seq_setup_seqs(asd_ha); asd_ha 1320 drivers/scsi/aic94xx/aic94xx_seq.c int asd_start_seqs(struct asd_ha_struct *asd_ha) asd_ha 1326 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_seq_start_cseq(asd_ha); asd_ha 1329 drivers/scsi/aic94xx/aic94xx_seq.c pci_name(asd_ha->pcidev)); asd_ha 1333 drivers/scsi/aic94xx/aic94xx_seq.c lseq_mask = asd_ha->hw_prof.enabled_phys; asd_ha 1335 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_seq_start_lseq(asd_ha, lseq); asd_ha 1338 drivers/scsi/aic94xx/aic94xx_seq.c pci_name(asd_ha->pcidev)); asd_ha 1363 drivers/scsi/aic94xx/aic94xx_seq.c void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy) asd_ha 1371 drivers/scsi/aic94xx/aic94xx_seq.c spin_lock_irqsave(&asd_ha->hw_prof.ddb_lock, flags); asd_ha 1373 drivers/scsi/aic94xx/aic94xx_seq.c asd_ddbsite_write_byte(asd_ha, 0, asd_ha 1378 drivers/scsi/aic94xx/aic94xx_seq.c phy_is_up = asd_ddbsite_read_byte(asd_ha, 0, asd_ha 1380 drivers/scsi/aic94xx/aic94xx_seq.c err = asd_ddbsite_update_byte(asd_ha, 0, asd_ha 1391 drivers/scsi/aic94xx/aic94xx_seq.c spin_unlock_irqrestore(&asd_ha->hw_prof.ddb_lock, flags); asd_ha 43 drivers/scsi/aic94xx/aic94xx_seq.h int asd_init_seqs(struct asd_ha_struct *asd_ha); asd_ha 44 drivers/scsi/aic94xx/aic94xx_seq.h int asd_start_seqs(struct asd_ha_struct *asd_ha); asd_ha 47 drivers/scsi/aic94xx/aic94xx_seq.h void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy); asd_ha 18 drivers/scsi/aic94xx/aic94xx_task.c static void asd_can_dequeue(struct asd_ha_struct *asd_ha, int num) asd_ha 22 drivers/scsi/aic94xx/aic94xx_task.c spin_lock_irqsave(&asd_ha->seq.pend_q_lock, flags); asd_ha 23 drivers/scsi/aic94xx/aic94xx_task.c asd_ha->seq.can_queue += num; asd_ha 24 drivers/scsi/aic94xx/aic94xx_task.c spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); asd_ha 41 drivers/scsi/aic94xx/aic94xx_task.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 50 drivers/scsi/aic94xx/aic94xx_task.c dma_addr_t dma = dma_map_single(&asd_ha->pcidev->dev, p, asd_ha 64 drivers/scsi/aic94xx/aic94xx_task.c num_sg = dma_map_sg(&asd_ha->pcidev->dev, task->scatter, asd_ha 72 drivers/scsi/aic94xx/aic94xx_task.c ascb->sg_arr = asd_alloc_coherent(asd_ha, asd_ha 111 drivers/scsi/aic94xx/aic94xx_task.c dma_unmap_sg(&asd_ha->pcidev->dev, task->scatter, asd_ha 118 drivers/scsi/aic94xx/aic94xx_task.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 132 drivers/scsi/aic94xx/aic94xx_task.c asd_free_coherent(asd_ha, ascb->sg_arr); asd_ha 134 drivers/scsi/aic94xx/aic94xx_task.c dma_unmap_sg(&asd_ha->pcidev->dev, task->scatter, asd_ha 143 drivers/scsi/aic94xx/aic94xx_task.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 159 drivers/scsi/aic94xx/aic94xx_task.c spin_lock_irqsave(&asd_ha->seq.tc_index_lock, flags); asd_ha 160 drivers/scsi/aic94xx/aic94xx_task.c escb = asd_tc_index_find(&asd_ha->seq, asd_ha 162 drivers/scsi/aic94xx/aic94xx_task.c spin_unlock_irqrestore(&asd_ha->seq.tc_index_lock, flags); asd_ha 170 drivers/scsi/aic94xx/aic94xx_task.c edb = asd_ha->seq.edb_arr[edb_id + escb->edb_index]; asd_ha 178 drivers/scsi/aic94xx/aic94xx_task.c sas_ssp_task_response(&asd_ha->pcidev->dev, task, iu); asd_ha 417 drivers/scsi/aic94xx/aic94xx_task.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 421 drivers/scsi/aic94xx/aic94xx_task.c dma_map_sg(&asd_ha->pcidev->dev, &task->smp_task.smp_req, 1, asd_ha 423 drivers/scsi/aic94xx/aic94xx_task.c dma_map_sg(&asd_ha->pcidev->dev, &task->smp_task.smp_resp, 1, asd_ha 513 drivers/scsi/aic94xx/aic94xx_task.c static int asd_can_queue(struct asd_ha_struct *asd_ha, int num) asd_ha 518 drivers/scsi/aic94xx/aic94xx_task.c spin_lock_irqsave(&asd_ha->seq.pend_q_lock, flags); asd_ha 519 drivers/scsi/aic94xx/aic94xx_task.c if ((asd_ha->seq.can_queue - num) < 0) asd_ha 522 drivers/scsi/aic94xx/aic94xx_task.c asd_ha->seq.can_queue -= num; asd_ha 523 drivers/scsi/aic94xx/aic94xx_task.c spin_unlock_irqrestore(&asd_ha->seq.pend_q_lock, flags); asd_ha 534 drivers/scsi/aic94xx/aic94xx_task.c struct asd_ha_struct *asd_ha = task->dev->port->ha->lldd_ha; asd_ha 537 drivers/scsi/aic94xx/aic94xx_task.c res = asd_can_queue(asd_ha, 1); asd_ha 542 drivers/scsi/aic94xx/aic94xx_task.c ascb = asd_ascb_alloc_list(asd_ha, &res, gfp_flags); asd_ha 585 drivers/scsi/aic94xx/aic94xx_task.c res = asd_post_ascb_list(asd_ha, ascb, 1); asd_ha 623 drivers/scsi/aic94xx/aic94xx_task.c asd_can_dequeue(asd_ha, 1); asd_ha 90 drivers/scsi/aic94xx/aic94xx_tmf.c ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL); \ asd_ha 117 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = sas_ha->lldd_ha; asd_ha 126 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = port->ha->lldd_ha; asd_ha 143 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 203 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 216 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = task->dev->port->ha->lldd_ha; asd_ha 231 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = task->dev->port->ha->lldd_ha; asd_ha 258 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = ascb->ha; asd_ha 275 drivers/scsi/aic94xx/aic94xx_tmf.c spin_lock_irqsave(&asd_ha->seq.tc_index_lock, flags); asd_ha 276 drivers/scsi/aic94xx/aic94xx_tmf.c escb = asd_tc_index_find(&asd_ha->seq, asd_ha 278 drivers/scsi/aic94xx/aic94xx_tmf.c spin_unlock_irqrestore(&asd_ha->seq.tc_index_lock, flags); asd_ha 285 drivers/scsi/aic94xx/aic94xx_tmf.c edb = asd_ha->seq.edb_arr[edb_id + escb->edb_index]; asd_ha 389 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = tascb->ha; asd_ha 410 drivers/scsi/aic94xx/aic94xx_tmf.c ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL); asd_ha 559 drivers/scsi/aic94xx/aic94xx_tmf.c struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha; asd_ha 569 drivers/scsi/aic94xx/aic94xx_tmf.c ascb = asd_ascb_alloc_list(asd_ha, &res, GFP_KERNEL);