pHba              150 drivers/scsi/dpt_i2o.c static inline int dpt_dma64(adpt_hba *pHba)
pHba              152 drivers/scsi/dpt_i2o.c 	return (sizeof(dma_addr_t) > 4 && (pHba)->dma64);
pHba              193 drivers/scsi/dpt_i2o.c 	adpt_hba *pHba;
pHba              212 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = next) {
pHba              213 drivers/scsi/dpt_i2o.c 		next = pHba->next;
pHba              215 drivers/scsi/dpt_i2o.c 		if (adpt_i2o_activate_hba(pHba) < 0) {
pHba              216 drivers/scsi/dpt_i2o.c 			adpt_i2o_delete_hba(pHba);
pHba              239 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = pHba->next) {
pHba              240 drivers/scsi/dpt_i2o.c 		if (adpt_i2o_online_hba(pHba) < 0) {
pHba              241 drivers/scsi/dpt_i2o.c 			adpt_i2o_delete_hba(pHba);	
pHba              250 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = next) {
pHba              251 drivers/scsi/dpt_i2o.c 		next = pHba->next;
pHba              252 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO"%s: Reading the hardware resource table.\n", pHba->name);
pHba              253 drivers/scsi/dpt_i2o.c 		if (adpt_i2o_lct_get(pHba) < 0){
pHba              254 drivers/scsi/dpt_i2o.c 			adpt_i2o_delete_hba(pHba);
pHba              258 drivers/scsi/dpt_i2o.c 		if (adpt_i2o_parse_lct(pHba) < 0){
pHba              259 drivers/scsi/dpt_i2o.c 			adpt_i2o_delete_hba(pHba);
pHba              262 drivers/scsi/dpt_i2o.c 		adpt_inquiry(pHba);
pHba              271 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = next) {
pHba              272 drivers/scsi/dpt_i2o.c 		next = pHba->next;
pHba              273 drivers/scsi/dpt_i2o.c 		if (adpt_scsi_host_alloc(pHba, sht) < 0){
pHba              274 drivers/scsi/dpt_i2o.c 			adpt_i2o_delete_hba(pHba);
pHba              277 drivers/scsi/dpt_i2o.c 		pHba->initialized = TRUE;
pHba              278 drivers/scsi/dpt_i2o.c 		pHba->state &= ~DPTI_STATE_RESET;
pHba              281 drivers/scsi/dpt_i2o.c 				NULL, MKDEV(DPTI_I2O_MAJOR, pHba->unit), NULL,
pHba              282 drivers/scsi/dpt_i2o.c 				"dpti%d", pHba->unit);
pHba              286 drivers/scsi/dpt_i2o.c 					pHba->unit);
pHba              302 drivers/scsi/dpt_i2o.c static void adpt_release(adpt_hba *pHba)
pHba              304 drivers/scsi/dpt_i2o.c 	struct Scsi_Host *shost = pHba->host;
pHba              308 drivers/scsi/dpt_i2o.c 	adpt_i2o_delete_hba(pHba);
pHba              313 drivers/scsi/dpt_i2o.c static void adpt_inquiry(adpt_hba* pHba)
pHba              328 drivers/scsi/dpt_i2o.c 	buf = dma_alloc_coherent(&pHba->pDev->dev, 80, &addr, GFP_KERNEL);
pHba              330 drivers/scsi/dpt_i2o.c 		printk(KERN_ERR"%s: Could not allocate buffer\n",pHba->name);
pHba              339 drivers/scsi/dpt_i2o.c 	if (dpt_dma64(pHba))
pHba              375 drivers/scsi/dpt_i2o.c 	if (dpt_dma64(pHba)) {
pHba              387 drivers/scsi/dpt_i2o.c 	rcode = adpt_i2o_post_wait(pHba, msg, reqlen<<2, 120);
pHba              389 drivers/scsi/dpt_i2o.c 		sprintf(pHba->detail, "Adaptec I2O RAID");
pHba              390 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO "%s: Inquiry Error (%d)\n",pHba->name,rcode);
pHba              392 drivers/scsi/dpt_i2o.c 			dma_free_coherent(&pHba->pDev->dev, 80, buf, addr);
pHba              394 drivers/scsi/dpt_i2o.c 		memset(pHba->detail, 0, sizeof(pHba->detail));
pHba              395 drivers/scsi/dpt_i2o.c 		memcpy(&(pHba->detail), "Vendor: Adaptec ", 16);
pHba              396 drivers/scsi/dpt_i2o.c 		memcpy(&(pHba->detail[16]), " Model: ", 8);
pHba              397 drivers/scsi/dpt_i2o.c 		memcpy(&(pHba->detail[24]), (u8*) &buf[16], 16);
pHba              398 drivers/scsi/dpt_i2o.c 		memcpy(&(pHba->detail[40]), " FW: ", 4);
pHba              399 drivers/scsi/dpt_i2o.c 		memcpy(&(pHba->detail[44]), (u8*) &buf[32], 4);
pHba              400 drivers/scsi/dpt_i2o.c 		pHba->detail[48] = '\0';	/* precautionary */
pHba              401 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, 80, buf, addr);
pHba              403 drivers/scsi/dpt_i2o.c 	adpt_i2o_status_get(pHba);
pHba              411 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba              413 drivers/scsi/dpt_i2o.c 	pHba = (adpt_hba *) host->hostdata[0];
pHba              424 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba = NULL;
pHba              441 drivers/scsi/dpt_i2o.c 	pHba = (adpt_hba*)cmd->device->host->hostdata[0];
pHba              442 drivers/scsi/dpt_i2o.c 	if (!pHba) {
pHba              447 drivers/scsi/dpt_i2o.c 	if ((pHba->state) & DPTI_STATE_RESET)
pHba              458 drivers/scsi/dpt_i2o.c 		if ((pDev = adpt_find_device(pHba, (u32)cmd->device->channel, (u32)cmd->device->id, cmd->device->lun)) == NULL) {
pHba              476 drivers/scsi/dpt_i2o.c 	return adpt_scsi_to_i2o(pHba, cmd, pDev);
pHba              535 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba              537 drivers/scsi/dpt_i2o.c 	pHba = (adpt_hba *) host->hostdata[0];
pHba              538 drivers/scsi/dpt_i2o.c 	return (char *) (pHba->detail);
pHba              546 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba              551 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = pHba->next) {
pHba              552 drivers/scsi/dpt_i2o.c 		if (pHba->host == host) {
pHba              557 drivers/scsi/dpt_i2o.c 	if (pHba == NULL) {
pHba              560 drivers/scsi/dpt_i2o.c 	host = pHba->host;
pHba              563 drivers/scsi/dpt_i2o.c 	seq_printf(m, "%s\n", pHba->detail);
pHba              565 drivers/scsi/dpt_i2o.c 			pHba->host->host_no, pHba->name, host->irq);
pHba              567 drivers/scsi/dpt_i2o.c 			host->can_queue, (int) pHba->reply_fifo_size , host->sg_tablesize);
pHba              572 drivers/scsi/dpt_i2o.c 			d = pHba->channel[chan].device[id];
pHba              591 drivers/scsi/dpt_i2o.c static u32 adpt_ioctl_to_context(adpt_hba * pHba, void *reply)
pHba              599 drivers/scsi/dpt_i2o.c 	spin_lock_irqsave(pHba->host->host_lock, flags);
pHba              600 drivers/scsi/dpt_i2o.c 	nr = ARRAY_SIZE(pHba->ioctl_reply_context);
pHba              602 drivers/scsi/dpt_i2o.c 		if (pHba->ioctl_reply_context[i] == NULL) {
pHba              603 drivers/scsi/dpt_i2o.c 			pHba->ioctl_reply_context[i] = reply;
pHba              607 drivers/scsi/dpt_i2o.c 	spin_unlock_irqrestore(pHba->host->host_lock, flags);
pHba              610 drivers/scsi/dpt_i2o.c 				"ioctl commands\n", pHba->name);
pHba              621 drivers/scsi/dpt_i2o.c static void *adpt_ioctl_from_context(adpt_hba *pHba, u32 context)
pHba              626 drivers/scsi/dpt_i2o.c 	void *p = pHba->ioctl_reply_context[context];
pHba              627 drivers/scsi/dpt_i2o.c 	pHba->ioctl_reply_context[context] = NULL;
pHba              640 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba = NULL;	/* host bus adapter structure */
pHba              645 drivers/scsi/dpt_i2o.c 	pHba = (adpt_hba*) cmd->device->host->hostdata[0];
pHba              646 drivers/scsi/dpt_i2o.c 	printk(KERN_INFO"%s: Trying to Abort\n",pHba->name);
pHba              648 drivers/scsi/dpt_i2o.c 		printk(KERN_ERR "%s: Unable to abort: No device in cmnd\n",pHba->name);
pHba              659 drivers/scsi/dpt_i2o.c 	if (pHba->host)
pHba              660 drivers/scsi/dpt_i2o.c 		spin_lock_irq(pHba->host->host_lock);
pHba              661 drivers/scsi/dpt_i2o.c 	rcode = adpt_i2o_post_wait(pHba, msg, sizeof(msg), FOREVER);
pHba              662 drivers/scsi/dpt_i2o.c 	if (pHba->host)
pHba              663 drivers/scsi/dpt_i2o.c 		spin_unlock_irq(pHba->host->host_lock);
pHba              666 drivers/scsi/dpt_i2o.c 			printk(KERN_INFO"%s: Abort cmd not supported\n",pHba->name);
pHba              669 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO"%s: Abort failed.\n",pHba->name);
pHba              672 drivers/scsi/dpt_i2o.c 	printk(KERN_INFO"%s: Abort complete.\n",pHba->name);
pHba              683 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba              689 drivers/scsi/dpt_i2o.c 	pHba = (void*) cmd->device->host->hostdata[0];
pHba              690 drivers/scsi/dpt_i2o.c 	printk(KERN_INFO"%s: Trying to reset device\n",pHba->name);
pHba              692 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO"%s: Reset Device: Device Not found\n",pHba->name);
pHba              701 drivers/scsi/dpt_i2o.c 	if (pHba->host)
pHba              702 drivers/scsi/dpt_i2o.c 		spin_lock_irq(pHba->host->host_lock);
pHba              705 drivers/scsi/dpt_i2o.c 	rcode = adpt_i2o_post_wait(pHba, msg,sizeof(msg), FOREVER);
pHba              707 drivers/scsi/dpt_i2o.c 	if (pHba->host)
pHba              708 drivers/scsi/dpt_i2o.c 		spin_unlock_irq(pHba->host->host_lock);
pHba              711 drivers/scsi/dpt_i2o.c 			printk(KERN_INFO"%s: Device reset not supported\n",pHba->name);
pHba              714 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO"%s: Device reset failed\n",pHba->name);
pHba              717 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO"%s: Device reset successful\n",pHba->name);
pHba              727 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba              731 drivers/scsi/dpt_i2o.c 	pHba = (adpt_hba*)cmd->device->host->hostdata[0];
pHba              733 drivers/scsi/dpt_i2o.c 	printk(KERN_WARNING"%s: Bus reset: SCSI Bus %d: tid: %d\n",pHba->name, cmd->device->channel,pHba->channel[cmd->device->channel].tid );
pHba              735 drivers/scsi/dpt_i2o.c 	msg[1] = (I2O_HBA_BUS_RESET<<24|HOST_TID<<12|pHba->channel[cmd->device->channel].tid);
pHba              738 drivers/scsi/dpt_i2o.c 	if (pHba->host)
pHba              739 drivers/scsi/dpt_i2o.c 		spin_lock_irq(pHba->host->host_lock);
pHba              740 drivers/scsi/dpt_i2o.c 	rcode = adpt_i2o_post_wait(pHba, msg,sizeof(msg), FOREVER);
pHba              741 drivers/scsi/dpt_i2o.c 	if (pHba->host)
pHba              742 drivers/scsi/dpt_i2o.c 		spin_unlock_irq(pHba->host->host_lock);
pHba              744 drivers/scsi/dpt_i2o.c 		printk(KERN_WARNING"%s: Bus reset failed.\n",pHba->name);
pHba              747 drivers/scsi/dpt_i2o.c 		printk(KERN_WARNING"%s: Bus reset success.\n",pHba->name);
pHba              755 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba              759 drivers/scsi/dpt_i2o.c 	pHba = (adpt_hba*)cmd->device->host->hostdata[0];
pHba              760 drivers/scsi/dpt_i2o.c 	strncpy(name, pHba->name, sizeof(name));
pHba              761 drivers/scsi/dpt_i2o.c 	printk(KERN_WARNING"%s: Hba Reset: scsi id %d: tid: %d\n", name, cmd->device->channel, pHba->channel[cmd->device->channel].tid);
pHba              762 drivers/scsi/dpt_i2o.c 	rcode =  adpt_hba_reset(pHba);
pHba              784 drivers/scsi/dpt_i2o.c static int adpt_hba_reset(adpt_hba* pHba)
pHba              788 drivers/scsi/dpt_i2o.c 	pHba->state |= DPTI_STATE_RESET;
pHba              791 drivers/scsi/dpt_i2o.c 	if ((rcode=adpt_i2o_activate_hba(pHba)) < 0) {
pHba              792 drivers/scsi/dpt_i2o.c 		printk(KERN_ERR "%s: Could not activate\n", pHba->name);
pHba              793 drivers/scsi/dpt_i2o.c 		adpt_i2o_delete_hba(pHba);
pHba              798 drivers/scsi/dpt_i2o.c 		adpt_i2o_delete_hba(pHba);
pHba              801 drivers/scsi/dpt_i2o.c 	PDEBUG("%s: in HOLD state\n",pHba->name);
pHba              803 drivers/scsi/dpt_i2o.c 	if ((rcode=adpt_i2o_online_hba(pHba)) < 0) {
pHba              804 drivers/scsi/dpt_i2o.c 		adpt_i2o_delete_hba(pHba);	
pHba              807 drivers/scsi/dpt_i2o.c 	PDEBUG("%s: in OPERATIONAL state\n",pHba->name);
pHba              809 drivers/scsi/dpt_i2o.c 	if ((rcode=adpt_i2o_lct_get(pHba)) < 0){
pHba              810 drivers/scsi/dpt_i2o.c 		adpt_i2o_delete_hba(pHba);
pHba              814 drivers/scsi/dpt_i2o.c 	if ((rcode=adpt_i2o_reparse_lct(pHba)) < 0){
pHba              815 drivers/scsi/dpt_i2o.c 		adpt_i2o_delete_hba(pHba);
pHba              818 drivers/scsi/dpt_i2o.c 	pHba->state &= ~DPTI_STATE_RESET;
pHba              820 drivers/scsi/dpt_i2o.c 	adpt_fail_posted_scbs(pHba);
pHba              832 drivers/scsi/dpt_i2o.c 	adpt_hba *pHba, *pNext;
pHba              841 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = pNext) {
pHba              842 drivers/scsi/dpt_i2o.c 		pNext = pHba->next;
pHba              843 drivers/scsi/dpt_i2o.c 		adpt_i2o_delete_hba(pHba);
pHba              865 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba = NULL;
pHba              961 drivers/scsi/dpt_i2o.c 	pHba = kzalloc(sizeof(adpt_hba), GFP_KERNEL);
pHba              962 drivers/scsi/dpt_i2o.c 	if (!pHba) {
pHba              974 drivers/scsi/dpt_i2o.c 		p->next = pHba;
pHba              976 drivers/scsi/dpt_i2o.c 		hba_chain = pHba;
pHba              978 drivers/scsi/dpt_i2o.c 	pHba->next = NULL;
pHba              979 drivers/scsi/dpt_i2o.c 	pHba->unit = hba_count;
pHba              980 drivers/scsi/dpt_i2o.c 	sprintf(pHba->name, "dpti%d", hba_count);
pHba              985 drivers/scsi/dpt_i2o.c 	pHba->pDev = pDev;
pHba              986 drivers/scsi/dpt_i2o.c 	pHba->base_addr_phys = base_addr0_phys;
pHba              989 drivers/scsi/dpt_i2o.c 	pHba->base_addr_virt = base_addr_virt;
pHba              990 drivers/scsi/dpt_i2o.c 	pHba->msg_addr_virt = msg_addr_virt;
pHba              991 drivers/scsi/dpt_i2o.c 	pHba->irq_mask = base_addr_virt+0x30;
pHba              992 drivers/scsi/dpt_i2o.c 	pHba->post_port = base_addr_virt+0x40;
pHba              993 drivers/scsi/dpt_i2o.c 	pHba->reply_port = base_addr_virt+0x44;
pHba              995 drivers/scsi/dpt_i2o.c 	pHba->hrt = NULL;
pHba              996 drivers/scsi/dpt_i2o.c 	pHba->lct = NULL;
pHba              997 drivers/scsi/dpt_i2o.c 	pHba->lct_size = 0;
pHba              998 drivers/scsi/dpt_i2o.c 	pHba->status_block = NULL;
pHba              999 drivers/scsi/dpt_i2o.c 	pHba->post_count = 0;
pHba             1000 drivers/scsi/dpt_i2o.c 	pHba->state = DPTI_STATE_RESET;
pHba             1001 drivers/scsi/dpt_i2o.c 	pHba->pDev = pDev;
pHba             1002 drivers/scsi/dpt_i2o.c 	pHba->devices = NULL;
pHba             1003 drivers/scsi/dpt_i2o.c 	pHba->dma64 = dma64;
pHba             1006 drivers/scsi/dpt_i2o.c 	spin_lock_init(&pHba->state_lock);
pHba             1023 drivers/scsi/dpt_i2o.c 	if (request_irq (pDev->irq, adpt_isr, IRQF_SHARED, pHba->name, pHba)) {
pHba             1024 drivers/scsi/dpt_i2o.c 		printk(KERN_ERR"%s: Couldn't register IRQ %d\n", pHba->name, pDev->irq);
pHba             1025 drivers/scsi/dpt_i2o.c 		adpt_i2o_delete_hba(pHba);
pHba             1033 drivers/scsi/dpt_i2o.c static void adpt_i2o_delete_hba(adpt_hba* pHba)
pHba             1046 drivers/scsi/dpt_i2o.c 	if(pHba->host){
pHba             1047 drivers/scsi/dpt_i2o.c 		free_irq(pHba->host->irq, pHba);
pHba             1051 drivers/scsi/dpt_i2o.c 		if(p1 == pHba) {
pHba             1064 drivers/scsi/dpt_i2o.c 	iounmap(pHba->base_addr_virt);
pHba             1065 drivers/scsi/dpt_i2o.c 	pci_release_regions(pHba->pDev);
pHba             1066 drivers/scsi/dpt_i2o.c 	if(pHba->msg_addr_virt != pHba->base_addr_virt){
pHba             1067 drivers/scsi/dpt_i2o.c 		iounmap(pHba->msg_addr_virt);
pHba             1069 drivers/scsi/dpt_i2o.c 	if(pHba->FwDebugBuffer_P)
pHba             1070 drivers/scsi/dpt_i2o.c 	   	iounmap(pHba->FwDebugBuffer_P);
pHba             1071 drivers/scsi/dpt_i2o.c 	if(pHba->hrt) {
pHba             1072 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev,
pHba             1073 drivers/scsi/dpt_i2o.c 			pHba->hrt->num_entries * pHba->hrt->entry_len << 2,
pHba             1074 drivers/scsi/dpt_i2o.c 			pHba->hrt, pHba->hrt_pa);
pHba             1076 drivers/scsi/dpt_i2o.c 	if(pHba->lct) {
pHba             1077 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, pHba->lct_size,
pHba             1078 drivers/scsi/dpt_i2o.c 			pHba->lct, pHba->lct_pa);
pHba             1080 drivers/scsi/dpt_i2o.c 	if(pHba->status_block) {
pHba             1081 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, sizeof(i2o_status_block),
pHba             1082 drivers/scsi/dpt_i2o.c 			pHba->status_block, pHba->status_block_pa);
pHba             1084 drivers/scsi/dpt_i2o.c 	if(pHba->reply_pool) {
pHba             1085 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev,
pHba             1086 drivers/scsi/dpt_i2o.c 			pHba->reply_fifo_size * REPLY_FRAME_SIZE * 4,
pHba             1087 drivers/scsi/dpt_i2o.c 			pHba->reply_pool, pHba->reply_pool_pa);
pHba             1090 drivers/scsi/dpt_i2o.c 	for(d = pHba->devices; d ; d = next){
pHba             1094 drivers/scsi/dpt_i2o.c 	for(i = 0 ; i < pHba->top_scsi_channel ; i++){
pHba             1096 drivers/scsi/dpt_i2o.c 			if(pHba->channel[i].device[j] != NULL){
pHba             1097 drivers/scsi/dpt_i2o.c 				for(pDev = pHba->channel[i].device[j]; pDev; pDev = pNext){
pHba             1104 drivers/scsi/dpt_i2o.c 	pci_dev_put(pHba->pDev);
pHba             1107 drivers/scsi/dpt_i2o.c 				MKDEV(DPTI_I2O_MAJOR, pHba->unit));
pHba             1108 drivers/scsi/dpt_i2o.c 	kfree(pHba);
pHba             1119 drivers/scsi/dpt_i2o.c static struct adpt_device* adpt_find_device(adpt_hba* pHba, u32 chan, u32 id, u64 lun)
pHba             1126 drivers/scsi/dpt_i2o.c 	d = pHba->channel[chan].device[id];
pHba             1146 drivers/scsi/dpt_i2o.c static int adpt_i2o_post_wait(adpt_hba* pHba, u32* msg, int len, int timeout)
pHba             1183 drivers/scsi/dpt_i2o.c 	if((status = adpt_i2o_post_this(pHba, msg, len)) == 0){
pHba             1185 drivers/scsi/dpt_i2o.c 		if(pHba->host)
pHba             1186 drivers/scsi/dpt_i2o.c 			spin_unlock_irq(pHba->host->host_lock);
pHba             1198 drivers/scsi/dpt_i2o.c 		if(pHba->host)
pHba             1199 drivers/scsi/dpt_i2o.c 			spin_lock_irq(pHba->host->host_lock);
pHba             1204 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO"dpti%d: POST WAIT TIMEOUT\n",pHba->unit);
pHba             1233 drivers/scsi/dpt_i2o.c static s32 adpt_i2o_post_this(adpt_hba* pHba, u32* data, int len)
pHba             1241 drivers/scsi/dpt_i2o.c 		m = readl(pHba->post_port);
pHba             1246 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"dpti%d: Timeout waiting for message frame!\n", pHba->unit);
pHba             1252 drivers/scsi/dpt_i2o.c 	msg = pHba->msg_addr_virt + m;
pHba             1257 drivers/scsi/dpt_i2o.c 	writel(m, pHba->post_port);
pHba             1301 drivers/scsi/dpt_i2o.c static s32 adpt_i2o_reset_hba(adpt_hba* pHba)			
pHba             1309 drivers/scsi/dpt_i2o.c 	if(pHba->initialized  == FALSE) {	// First time reset should be quick
pHba             1312 drivers/scsi/dpt_i2o.c 		adpt_i2o_quiesce_hba(pHba);
pHba             1317 drivers/scsi/dpt_i2o.c 		m = readl(pHba->post_port);
pHba             1328 drivers/scsi/dpt_i2o.c 	status = dma_alloc_coherent(&pHba->pDev->dev, 4, &addr, GFP_KERNEL);
pHba             1330 drivers/scsi/dpt_i2o.c 		adpt_send_nop(pHba, m);
pHba             1345 drivers/scsi/dpt_i2o.c 	memcpy_toio(pHba->msg_addr_virt+m, msg, sizeof(msg));
pHba             1347 drivers/scsi/dpt_i2o.c 	writel(m, pHba->post_port);
pHba             1352 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: IOP Reset Timeout\n",pHba->name);
pHba             1364 drivers/scsi/dpt_i2o.c 		PDEBUG("%s: Reset in progress...\n", pHba->name);
pHba             1369 drivers/scsi/dpt_i2o.c 			m = readl(pHba->post_port);
pHba             1374 drivers/scsi/dpt_i2o.c 				printk(KERN_ERR "%s:Timeout waiting for IOP Reset.\n",pHba->name);
pHba             1384 drivers/scsi/dpt_i2o.c 		adpt_send_nop(pHba, m);
pHba             1386 drivers/scsi/dpt_i2o.c 	adpt_i2o_status_get(pHba);
pHba             1388 drivers/scsi/dpt_i2o.c 			pHba->status_block->iop_state != ADAPTER_STATE_RESET) {
pHba             1390 drivers/scsi/dpt_i2o.c 				pHba->name);
pHba             1392 drivers/scsi/dpt_i2o.c 		PDEBUG("%s: Reset completed.\n", pHba->name);
pHba             1395 drivers/scsi/dpt_i2o.c 	dma_free_coherent(&pHba->pDev->dev, 4, status, addr);
pHba             1405 drivers/scsi/dpt_i2o.c static int adpt_i2o_parse_lct(adpt_hba* pHba)
pHba             1411 drivers/scsi/dpt_i2o.c 	i2o_lct *lct = pHba->lct;
pHba             1419 drivers/scsi/dpt_i2o.c 		printk(KERN_ERR "%s: LCT is empty???\n",pHba->name);
pHba             1443 drivers/scsi/dpt_i2o.c 			if(adpt_i2o_query_scalar(pHba, tid, 0x8000, -1, buf, 32)<0) {
pHba             1450 drivers/scsi/dpt_i2o.c 				printk(KERN_WARNING"%s: Channel number %d out of range \n", pHba->name, bus_no);
pHba             1454 drivers/scsi/dpt_i2o.c 				printk(KERN_WARNING"%s: SCSI ID %d out of range \n", pHba->name, bus_no);
pHba             1457 drivers/scsi/dpt_i2o.c 			if(bus_no > pHba->top_scsi_channel){
pHba             1458 drivers/scsi/dpt_i2o.c 				pHba->top_scsi_channel = bus_no;
pHba             1460 drivers/scsi/dpt_i2o.c 			if(scsi_id > pHba->top_scsi_id){
pHba             1461 drivers/scsi/dpt_i2o.c 				pHba->top_scsi_id = scsi_id;
pHba             1463 drivers/scsi/dpt_i2o.c 			if(scsi_lun > pHba->top_scsi_lun){
pHba             1464 drivers/scsi/dpt_i2o.c 				pHba->top_scsi_lun = scsi_lun;
pHba             1471 drivers/scsi/dpt_i2o.c 			printk(KERN_CRIT"%s: Out of memory for I2O device data.\n",pHba->name);
pHba             1475 drivers/scsi/dpt_i2o.c 		d->controller = pHba;
pHba             1482 drivers/scsi/dpt_i2o.c 		adpt_i2o_report_hba_unit(pHba, d);
pHba             1483 drivers/scsi/dpt_i2o.c 		adpt_i2o_install_device(pHba, d);
pHba             1486 drivers/scsi/dpt_i2o.c 	for(d = pHba->devices; d ; d = d->next) {
pHba             1492 drivers/scsi/dpt_i2o.c 			if(bus_no > pHba->top_scsi_channel){
pHba             1493 drivers/scsi/dpt_i2o.c 				pHba->top_scsi_channel = bus_no;
pHba             1495 drivers/scsi/dpt_i2o.c 			pHba->channel[bus_no].type = d->lct_data.class_id;
pHba             1496 drivers/scsi/dpt_i2o.c 			pHba->channel[bus_no].tid = tid;
pHba             1497 drivers/scsi/dpt_i2o.c 			if(adpt_i2o_query_scalar(pHba, tid, 0x0200, -1, buf, 28)>=0)
pHba             1499 drivers/scsi/dpt_i2o.c 				pHba->channel[bus_no].scsi_id = buf[1];
pHba             1505 drivers/scsi/dpt_i2o.c 				printk(KERN_WARNING"%s: Channel number %d out of range - LCT\n", pHba->name, bus_no);
pHba             1512 drivers/scsi/dpt_i2o.c 	for(d = pHba->devices; d ; d = d->next) {
pHba             1520 drivers/scsi/dpt_i2o.c 			if(adpt_i2o_query_scalar(pHba, tid, 0x8000, -1, buf, 32)>=0) {
pHba             1530 drivers/scsi/dpt_i2o.c 				if( pHba->channel[bus_no].device[scsi_id] == NULL){
pHba             1535 drivers/scsi/dpt_i2o.c 					pHba->channel[bus_no].device[scsi_id] = pDev;
pHba             1537 drivers/scsi/dpt_i2o.c 					for( pDev = pHba->channel[bus_no].device[scsi_id];	
pHba             1554 drivers/scsi/dpt_i2o.c 				if(scsi_id > pHba->top_scsi_id){
pHba             1555 drivers/scsi/dpt_i2o.c 					pHba->top_scsi_id = scsi_id;
pHba             1557 drivers/scsi/dpt_i2o.c 				if(scsi_lun > pHba->top_scsi_lun){
pHba             1558 drivers/scsi/dpt_i2o.c 					pHba->top_scsi_lun = scsi_lun;
pHba             1576 drivers/scsi/dpt_i2o.c static int adpt_i2o_install_device(adpt_hba* pHba, struct i2o_device *d)
pHba             1579 drivers/scsi/dpt_i2o.c 	d->controller=pHba;
pHba             1581 drivers/scsi/dpt_i2o.c 	d->next=pHba->devices;
pHba             1583 drivers/scsi/dpt_i2o.c 	if (pHba->devices != NULL){
pHba             1584 drivers/scsi/dpt_i2o.c 		pHba->devices->prev=d;
pHba             1586 drivers/scsi/dpt_i2o.c 	pHba->devices=d;
pHba             1596 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba             1607 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = pHba->next) {
pHba             1608 drivers/scsi/dpt_i2o.c 		if (pHba->unit == minor) {
pHba             1612 drivers/scsi/dpt_i2o.c 	if (pHba == NULL) {
pHba             1623 drivers/scsi/dpt_i2o.c 	pHba->in_use = 1;
pHba             1633 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba             1640 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = pHba->next) {
pHba             1641 drivers/scsi/dpt_i2o.c 		if (pHba->unit == minor) {
pHba             1646 drivers/scsi/dpt_i2o.c 	if (pHba == NULL) {
pHba             1650 drivers/scsi/dpt_i2o.c 	pHba->in_use = 0;
pHba             1656 drivers/scsi/dpt_i2o.c static int adpt_i2o_passthru(adpt_hba* pHba, u32 __user *arg)
pHba             1699 drivers/scsi/dpt_i2o.c 		printk(KERN_WARNING"%s: Could not allocate reply buffer\n",pHba->name);
pHba             1704 drivers/scsi/dpt_i2o.c 	msg[3] = adpt_ioctl_to_context(pHba, reply);
pHba             1710 drivers/scsi/dpt_i2o.c 	sg_list = kcalloc(pHba->sg_tablesize, sizeof(*sg_list), GFP_KERNEL);
pHba             1719 drivers/scsi/dpt_i2o.c 		if (sg_count > pHba->sg_tablesize){
pHba             1720 drivers/scsi/dpt_i2o.c 			printk(KERN_DEBUG"%s:IOCTL SG List too large (%u)\n", pHba->name,sg_count);
pHba             1729 drivers/scsi/dpt_i2o.c 				printk(KERN_DEBUG"%s:Bad SG element %d - not simple (%x)\n",pHba->name,i,  sg[i].flag_count);
pHba             1735 drivers/scsi/dpt_i2o.c 			p = dma_alloc_coherent(&pHba->pDev->dev, sg_size, &addr, GFP_KERNEL);
pHba             1738 drivers/scsi/dpt_i2o.c 						pHba->name,sg_size,i,sg_count);
pHba             1747 drivers/scsi/dpt_i2o.c 					printk(KERN_DEBUG"%s: Could not copy SG buf %d FROM user\n",pHba->name,i);
pHba             1762 drivers/scsi/dpt_i2o.c 		if (pHba->host) {
pHba             1763 drivers/scsi/dpt_i2o.c 			scsi_block_requests(pHba->host);
pHba             1764 drivers/scsi/dpt_i2o.c 			spin_lock_irqsave(pHba->host->host_lock, flags);
pHba             1766 drivers/scsi/dpt_i2o.c 		rcode = adpt_i2o_post_wait(pHba, msg, size, FOREVER);
pHba             1770 drivers/scsi/dpt_i2o.c 		if (pHba->host) {
pHba             1771 drivers/scsi/dpt_i2o.c 			spin_unlock_irqrestore(pHba->host->host_lock, flags);
pHba             1772 drivers/scsi/dpt_i2o.c 			scsi_unblock_requests(pHba->host);
pHba             1815 drivers/scsi/dpt_i2o.c 					printk(KERN_WARNING"%s: Could not copy %p TO user %x\n",pHba->name, sg_list[j], sg[j].addr_bus);
pHba             1827 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: Could not copy message context FROM user\n",pHba->name);
pHba             1831 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: Could not copy reply TO user\n",pHba->name);
pHba             1843 drivers/scsi/dpt_i2o.c 				dma_free_coherent(&pHba->pDev->dev,
pHba             1954 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba             1963 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = pHba->next) {
pHba             1964 drivers/scsi/dpt_i2o.c 		if (pHba->unit == minor) {
pHba             1969 drivers/scsi/dpt_i2o.c 	if(pHba == NULL){
pHba             1973 drivers/scsi/dpt_i2o.c 	while((volatile u32) pHba->state & DPTI_STATE_RESET )
pHba             1984 drivers/scsi/dpt_i2o.c 		return adpt_i2o_passthru(pHba, argp);
pHba             1993 drivers/scsi/dpt_i2o.c 		HbaInfo.drvrHBAnum = pHba->unit;
pHba             1994 drivers/scsi/dpt_i2o.c 		HbaInfo.baseAddr = (ulong) pHba->base_addr_phys;
pHba             1995 drivers/scsi/dpt_i2o.c 		HbaInfo.blinkState = adpt_read_blink_led(pHba);
pHba             1996 drivers/scsi/dpt_i2o.c 		HbaInfo.pciBusNum =  pHba->pDev->bus->number;
pHba             1997 drivers/scsi/dpt_i2o.c 		HbaInfo.pciDeviceNum=PCI_SLOT(pHba->pDev->devfn); 
pHba             1998 drivers/scsi/dpt_i2o.c 		HbaInfo.Interrupt = pHba->pDev->irq; 
pHba             2001 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: Could not copy HbaInfo TO user\n",pHba->name);
pHba             2010 drivers/scsi/dpt_i2o.c 		value = (u32)adpt_read_blink_led(pHba);
pHba             2017 drivers/scsi/dpt_i2o.c 		struct Scsi_Host *shost = pHba->host;
pHba             2021 drivers/scsi/dpt_i2o.c 		adpt_hba_reset(pHba);
pHba             2027 drivers/scsi/dpt_i2o.c 		adpt_rescan(pHba);
pHba             2086 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba = dev_id;
pHba             2094 drivers/scsi/dpt_i2o.c 	if (pHba == NULL){
pHba             2098 drivers/scsi/dpt_i2o.c 	if(pHba->host)
pHba             2099 drivers/scsi/dpt_i2o.c 		spin_lock_irqsave(pHba->host->host_lock, flags);
pHba             2101 drivers/scsi/dpt_i2o.c 	while( readl(pHba->irq_mask) & I2O_INTERRUPT_PENDING_B) {
pHba             2102 drivers/scsi/dpt_i2o.c 		m = readl(pHba->reply_port);
pHba             2106 drivers/scsi/dpt_i2o.c 			m = readl(pHba->reply_port);
pHba             2113 drivers/scsi/dpt_i2o.c 		if (pHba->reply_pool_pa <= m &&
pHba             2114 drivers/scsi/dpt_i2o.c 		    m < pHba->reply_pool_pa +
pHba             2115 drivers/scsi/dpt_i2o.c 			(pHba->reply_fifo_size * REPLY_FRAME_SIZE * 4)) {
pHba             2116 drivers/scsi/dpt_i2o.c 			reply = (u8 *)pHba->reply_pool +
pHba             2117 drivers/scsi/dpt_i2o.c 						(m - pHba->reply_pool_pa);
pHba             2128 drivers/scsi/dpt_i2o.c 			PDEBUG("%s: Failed message\n",pHba->name);
pHba             2130 drivers/scsi/dpt_i2o.c 				printk(KERN_ERR"%s: Bad preserved MFA (%x)- dropping frame\n",pHba->name,old_m);
pHba             2131 drivers/scsi/dpt_i2o.c 				writel(m,pHba->reply_port);
pHba             2135 drivers/scsi/dpt_i2o.c 			msg = pHba->msg_addr_virt + old_m;
pHba             2138 drivers/scsi/dpt_i2o.c 			adpt_send_nop(pHba, old_m);
pHba             2142 drivers/scsi/dpt_i2o.c 			void *p = adpt_ioctl_from_context(pHba, readl(reply+12));
pHba             2160 drivers/scsi/dpt_i2o.c 				cmd = scsi_host_find_tag(pHba->host,
pHba             2163 drivers/scsi/dpt_i2o.c 					printk(KERN_WARNING"%s: Apparent SCSI cmd in Post Wait Context - cmd=%p context=%x\n", pHba->name, cmd, context);
pHba             2172 drivers/scsi/dpt_i2o.c 			cmd = scsi_host_find_tag(pHba->host,
pHba             2179 drivers/scsi/dpt_i2o.c 		writel(m, pHba->reply_port);
pHba             2184 drivers/scsi/dpt_i2o.c out:	if(pHba->host)
pHba             2185 drivers/scsi/dpt_i2o.c 		spin_unlock_irqrestore(pHba->host->host_lock, flags);
pHba             2189 drivers/scsi/dpt_i2o.c static s32 adpt_scsi_to_i2o(adpt_hba* pHba, struct scsi_cmnd* cmd, struct adpt_device* d)
pHba             2232 drivers/scsi/dpt_i2o.c 			     pHba->name, cmd->cmnd[0]);
pHba             2261 drivers/scsi/dpt_i2o.c 	if (dpt_dma64(pHba)) {
pHba             2282 drivers/scsi/dpt_i2o.c 			if (dpt_dma64(pHba))
pHba             2304 drivers/scsi/dpt_i2o.c 	rcode = adpt_i2o_post_this(pHba, msg, reqlen<<2);
pHba             2312 drivers/scsi/dpt_i2o.c static s32 adpt_scsi_host_alloc(adpt_hba* pHba, struct scsi_host_template *sht)
pHba             2318 drivers/scsi/dpt_i2o.c 		printk("%s: scsi_host_alloc returned NULL\n", pHba->name);
pHba             2321 drivers/scsi/dpt_i2o.c 	host->hostdata[0] = (unsigned long)pHba;
pHba             2322 drivers/scsi/dpt_i2o.c 	pHba->host = host;
pHba             2324 drivers/scsi/dpt_i2o.c 	host->irq = pHba->pDev->irq;
pHba             2333 drivers/scsi/dpt_i2o.c 	host->max_channel = pHba->top_scsi_channel + 1;
pHba             2335 drivers/scsi/dpt_i2o.c 	host->unique_id = (u32)sys_tbl_pa + pHba->unit;
pHba             2336 drivers/scsi/dpt_i2o.c 	host->sg_tablesize = pHba->sg_tablesize;
pHba             2337 drivers/scsi/dpt_i2o.c 	host->can_queue = pHba->post_fifo_size;
pHba             2346 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba;
pHba             2360 drivers/scsi/dpt_i2o.c 	pHba = (adpt_hba*) cmd->device->host->hostdata[0];
pHba             2371 drivers/scsi/dpt_i2o.c 				printk(KERN_WARNING"%s: SCSI CMD underflow\n",pHba->name);
pHba             2384 drivers/scsi/dpt_i2o.c 				pHba->name, (u32)cmd->device->channel, (u32)cmd->device->id, cmd->device->lun, hba_status, dev_status, cmd->cmnd[0]);
pHba             2396 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: SCSI CMD parity error\n",pHba->name);
pHba             2424 drivers/scsi/dpt_i2o.c 				pHba->name, detailed_status & I2O_SCSI_DSC_MASK, (u32)cmd->device->channel, (u32)cmd->device->id, cmd->device->lun,
pHba             2441 drivers/scsi/dpt_i2o.c 					pHba->name, (u32)cmd->device->channel, (u32)cmd->device->id, cmd->device->lun,
pHba             2453 drivers/scsi/dpt_i2o.c 			pHba->name, (u32)cmd->device->channel, (u32)cmd->device->id, cmd->device->lun,
pHba             2466 drivers/scsi/dpt_i2o.c static s32 adpt_rescan(adpt_hba* pHba)
pHba             2471 drivers/scsi/dpt_i2o.c 	if(pHba->host)
pHba             2472 drivers/scsi/dpt_i2o.c 		spin_lock_irqsave(pHba->host->host_lock, flags);
pHba             2473 drivers/scsi/dpt_i2o.c 	if ((rcode=adpt_i2o_lct_get(pHba)) < 0)
pHba             2475 drivers/scsi/dpt_i2o.c 	if ((rcode=adpt_i2o_reparse_lct(pHba)) < 0)
pHba             2478 drivers/scsi/dpt_i2o.c out:	if(pHba->host)
pHba             2479 drivers/scsi/dpt_i2o.c 		spin_unlock_irqrestore(pHba->host->host_lock, flags);
pHba             2484 drivers/scsi/dpt_i2o.c static s32 adpt_i2o_reparse_lct(adpt_hba* pHba)
pHba             2490 drivers/scsi/dpt_i2o.c 	i2o_lct *lct = pHba->lct;
pHba             2499 drivers/scsi/dpt_i2o.c 		printk(KERN_ERR "%s: LCT is empty???\n",pHba->name);
pHba             2508 drivers/scsi/dpt_i2o.c 	for (d = pHba->devices; d; d = d->next) {
pHba             2516 drivers/scsi/dpt_i2o.c 	printk(KERN_INFO "%s: LCT has %d entries.\n", pHba->name,max);
pHba             2527 drivers/scsi/dpt_i2o.c 			if(adpt_i2o_query_scalar(pHba, tid, 0x8000, -1, buf, 32)<0) {
pHba             2528 drivers/scsi/dpt_i2o.c 				printk(KERN_ERR"%s: Could not query device\n",pHba->name);
pHba             2535 drivers/scsi/dpt_i2o.c 					pHba->name, bus_no);
pHba             2541 drivers/scsi/dpt_i2o.c 			pDev = pHba->channel[bus_no].device[scsi_id];
pHba             2558 drivers/scsi/dpt_i2o.c 				d->controller = pHba;
pHba             2564 drivers/scsi/dpt_i2o.c 				adpt_i2o_report_hba_unit(pHba, d);
pHba             2565 drivers/scsi/dpt_i2o.c 				adpt_i2o_install_device(pHba, d);
pHba             2567 drivers/scsi/dpt_i2o.c 				pDev = pHba->channel[bus_no].device[scsi_id];	
pHba             2575 drivers/scsi/dpt_i2o.c 					pHba->channel[bus_no].device[scsi_id] = pDev;
pHba             2596 drivers/scsi/dpt_i2o.c 				if(scsi_id > pHba->top_scsi_id){
pHba             2597 drivers/scsi/dpt_i2o.c 					pHba->top_scsi_id = scsi_id;
pHba             2599 drivers/scsi/dpt_i2o.c 				if(scsi_lun > pHba->top_scsi_lun){
pHba             2600 drivers/scsi/dpt_i2o.c 					pHba->top_scsi_lun = scsi_lun;
pHba             2610 drivers/scsi/dpt_i2o.c 								pHba->name,bus_no,scsi_id,scsi_lun);
pHba             2632 drivers/scsi/dpt_i2o.c 	for (pI2o_dev = pHba->devices; pI2o_dev; pI2o_dev = pI2o_dev->next) {
pHba             2641 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: Device (%d,%d,%llu) offline\n",pHba->name,pDev->scsi_channel,pDev->scsi_id,pDev->scsi_lun);
pHba             2650 drivers/scsi/dpt_i2o.c static void adpt_fail_posted_scbs(adpt_hba* pHba)
pHba             2655 drivers/scsi/dpt_i2o.c 	shost_for_each_device(d, pHba->host) {
pHba             2677 drivers/scsi/dpt_i2o.c static int adpt_i2o_activate_hba(adpt_hba* pHba)
pHba             2681 drivers/scsi/dpt_i2o.c 	if(pHba->initialized ) {
pHba             2682 drivers/scsi/dpt_i2o.c 		if (adpt_i2o_status_get(pHba) < 0) {
pHba             2683 drivers/scsi/dpt_i2o.c 			if((rcode = adpt_i2o_reset_hba(pHba)) != 0){
pHba             2684 drivers/scsi/dpt_i2o.c 				printk(KERN_WARNING"%s: Could NOT reset.\n", pHba->name);
pHba             2687 drivers/scsi/dpt_i2o.c 			if (adpt_i2o_status_get(pHba) < 0) {
pHba             2693 drivers/scsi/dpt_i2o.c 		if(pHba->status_block->iop_state == ADAPTER_STATE_FAULTED) {
pHba             2694 drivers/scsi/dpt_i2o.c 			printk(KERN_CRIT "%s: hardware fault\n", pHba->name);
pHba             2698 drivers/scsi/dpt_i2o.c 		if (pHba->status_block->iop_state == ADAPTER_STATE_READY ||
pHba             2699 drivers/scsi/dpt_i2o.c 		    pHba->status_block->iop_state == ADAPTER_STATE_OPERATIONAL ||
pHba             2700 drivers/scsi/dpt_i2o.c 		    pHba->status_block->iop_state == ADAPTER_STATE_HOLD ||
pHba             2701 drivers/scsi/dpt_i2o.c 		    pHba->status_block->iop_state == ADAPTER_STATE_FAILED) {
pHba             2702 drivers/scsi/dpt_i2o.c 			adpt_i2o_reset_hba(pHba);			
pHba             2703 drivers/scsi/dpt_i2o.c 			if (adpt_i2o_status_get(pHba) < 0 || pHba->status_block->iop_state != ADAPTER_STATE_RESET) {
pHba             2704 drivers/scsi/dpt_i2o.c 				printk(KERN_ERR "%s: Failed to initialize.\n", pHba->name);
pHba             2709 drivers/scsi/dpt_i2o.c 		if((rcode = adpt_i2o_reset_hba(pHba)) != 0){
pHba             2710 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: Could NOT reset.\n", pHba->name);
pHba             2716 drivers/scsi/dpt_i2o.c 	if (adpt_i2o_init_outbound_q(pHba) < 0) {
pHba             2722 drivers/scsi/dpt_i2o.c 	if (adpt_i2o_hrt_get(pHba) < 0) {
pHba             2733 drivers/scsi/dpt_i2o.c static int adpt_i2o_online_hba(adpt_hba* pHba)
pHba             2735 drivers/scsi/dpt_i2o.c 	if (adpt_i2o_systab_send(pHba) < 0)
pHba             2739 drivers/scsi/dpt_i2o.c 	if (adpt_i2o_enable_hba(pHba) < 0)
pHba             2746 drivers/scsi/dpt_i2o.c static s32 adpt_send_nop(adpt_hba*pHba,u32 m)
pHba             2753 drivers/scsi/dpt_i2o.c 		m = readl(pHba->post_port);
pHba             2758 drivers/scsi/dpt_i2o.c 			printk(KERN_ERR "%s: Timeout waiting for message frame!\n",pHba->name);
pHba             2763 drivers/scsi/dpt_i2o.c 	msg = (u32 __iomem *)(pHba->msg_addr_virt + m);
pHba             2769 drivers/scsi/dpt_i2o.c 	writel(m, pHba->post_port);
pHba             2774 drivers/scsi/dpt_i2o.c static s32 adpt_i2o_init_outbound_q(adpt_hba* pHba)
pHba             2785 drivers/scsi/dpt_i2o.c 		m = readl(pHba->post_port);
pHba             2791 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: Timeout waiting for message frame\n",pHba->name);
pHba             2797 drivers/scsi/dpt_i2o.c 	msg=(u32 __iomem *)(pHba->msg_addr_virt+m);
pHba             2799 drivers/scsi/dpt_i2o.c 	status = dma_alloc_coherent(&pHba->pDev->dev, 4, &addr, GFP_KERNEL);
pHba             2801 drivers/scsi/dpt_i2o.c 		adpt_send_nop(pHba, m);
pHba             2803 drivers/scsi/dpt_i2o.c 			pHba->name);
pHba             2817 drivers/scsi/dpt_i2o.c 	writel(m, pHba->post_port);
pHba             2829 drivers/scsi/dpt_i2o.c 			printk(KERN_WARNING"%s: Timeout Initializing\n",pHba->name);
pHba             2842 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, 4, status, addr);
pHba             2845 drivers/scsi/dpt_i2o.c 	dma_free_coherent(&pHba->pDev->dev, 4, status, addr);
pHba             2847 drivers/scsi/dpt_i2o.c 	if(pHba->reply_pool != NULL) {
pHba             2848 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev,
pHba             2849 drivers/scsi/dpt_i2o.c 			pHba->reply_fifo_size * REPLY_FRAME_SIZE * 4,
pHba             2850 drivers/scsi/dpt_i2o.c 			pHba->reply_pool, pHba->reply_pool_pa);
pHba             2853 drivers/scsi/dpt_i2o.c 	pHba->reply_pool = dma_alloc_coherent(&pHba->pDev->dev,
pHba             2854 drivers/scsi/dpt_i2o.c 				pHba->reply_fifo_size * REPLY_FRAME_SIZE * 4,
pHba             2855 drivers/scsi/dpt_i2o.c 				&pHba->reply_pool_pa, GFP_KERNEL);
pHba             2856 drivers/scsi/dpt_i2o.c 	if (!pHba->reply_pool) {
pHba             2857 drivers/scsi/dpt_i2o.c 		printk(KERN_ERR "%s: Could not allocate reply pool\n", pHba->name);
pHba             2860 drivers/scsi/dpt_i2o.c 	memset(pHba->reply_pool, 0 , pHba->reply_fifo_size * REPLY_FRAME_SIZE * 4);
pHba             2862 drivers/scsi/dpt_i2o.c 	for(i = 0; i < pHba->reply_fifo_size; i++) {
pHba             2863 drivers/scsi/dpt_i2o.c 		writel(pHba->reply_pool_pa + (i * REPLY_FRAME_SIZE * 4),
pHba             2864 drivers/scsi/dpt_i2o.c 			pHba->reply_port);
pHba             2867 drivers/scsi/dpt_i2o.c 	adpt_i2o_status_get(pHba);
pHba             2883 drivers/scsi/dpt_i2o.c static s32 adpt_i2o_status_get(adpt_hba* pHba)
pHba             2890 drivers/scsi/dpt_i2o.c 	if(pHba->status_block == NULL) {
pHba             2891 drivers/scsi/dpt_i2o.c 		pHba->status_block = dma_alloc_coherent(&pHba->pDev->dev,
pHba             2893 drivers/scsi/dpt_i2o.c 					&pHba->status_block_pa, GFP_KERNEL);
pHba             2894 drivers/scsi/dpt_i2o.c 		if(pHba->status_block == NULL) {
pHba             2897 drivers/scsi/dpt_i2o.c 			pHba->unit);
pHba             2901 drivers/scsi/dpt_i2o.c 	memset(pHba->status_block, 0, sizeof(i2o_status_block));
pHba             2902 drivers/scsi/dpt_i2o.c 	status_block = (u8*)(pHba->status_block);
pHba             2906 drivers/scsi/dpt_i2o.c 		m = readl(pHba->post_port);
pHba             2912 drivers/scsi/dpt_i2o.c 					pHba->name);
pHba             2919 drivers/scsi/dpt_i2o.c 	msg=(u32 __iomem *)(pHba->msg_addr_virt+m);
pHba             2927 drivers/scsi/dpt_i2o.c 	writel( dma_low(pHba->status_block_pa), &msg[6]);
pHba             2928 drivers/scsi/dpt_i2o.c 	writel( dma_high(pHba->status_block_pa), &msg[7]);
pHba             2932 drivers/scsi/dpt_i2o.c 	writel(m, pHba->post_port);
pHba             2938 drivers/scsi/dpt_i2o.c 				pHba->unit);
pHba             2946 drivers/scsi/dpt_i2o.c 	pHba->post_fifo_size = pHba->status_block->max_inbound_frames;
pHba             2947 drivers/scsi/dpt_i2o.c 	if (pHba->post_fifo_size > MAX_TO_IOP_MESSAGES) {
pHba             2948 drivers/scsi/dpt_i2o.c 		pHba->post_fifo_size = MAX_TO_IOP_MESSAGES;
pHba             2951 drivers/scsi/dpt_i2o.c 	pHba->reply_fifo_size = pHba->status_block->max_outbound_frames;
pHba             2952 drivers/scsi/dpt_i2o.c 	if (pHba->reply_fifo_size > MAX_FROM_IOP_MESSAGES) {
pHba             2953 drivers/scsi/dpt_i2o.c 		pHba->reply_fifo_size = MAX_FROM_IOP_MESSAGES;
pHba             2957 drivers/scsi/dpt_i2o.c 	if (dpt_dma64(pHba)) {
pHba             2958 drivers/scsi/dpt_i2o.c 		pHba->sg_tablesize
pHba             2959 drivers/scsi/dpt_i2o.c 		  = ((pHba->status_block->inbound_frame_size * 4
pHba             2963 drivers/scsi/dpt_i2o.c 		pHba->sg_tablesize
pHba             2964 drivers/scsi/dpt_i2o.c 		  = ((pHba->status_block->inbound_frame_size * 4
pHba             2968 drivers/scsi/dpt_i2o.c 	if (pHba->sg_tablesize > SG_LIST_ELEMENTS) {
pHba             2969 drivers/scsi/dpt_i2o.c 		pHba->sg_tablesize = SG_LIST_ELEMENTS;
pHba             2974 drivers/scsi/dpt_i2o.c 	printk("dpti%d: State = ",pHba->unit);
pHba             2975 drivers/scsi/dpt_i2o.c 	switch(pHba->status_block->iop_state) {
pHba             2998 drivers/scsi/dpt_i2o.c 			printk("%x (unknown!!)\n",pHba->status_block->iop_state);
pHba             3007 drivers/scsi/dpt_i2o.c static int adpt_i2o_lct_get(adpt_hba* pHba)
pHba             3013 drivers/scsi/dpt_i2o.c 	if ((pHba->lct_size == 0) || (pHba->lct == NULL)){
pHba             3014 drivers/scsi/dpt_i2o.c 		pHba->lct_size = pHba->status_block->expected_lct_size;
pHba             3017 drivers/scsi/dpt_i2o.c 		if (pHba->lct == NULL) {
pHba             3018 drivers/scsi/dpt_i2o.c 			pHba->lct = dma_alloc_coherent(&pHba->pDev->dev,
pHba             3019 drivers/scsi/dpt_i2o.c 					pHba->lct_size, &pHba->lct_pa,
pHba             3021 drivers/scsi/dpt_i2o.c 			if(pHba->lct == NULL) {
pHba             3023 drivers/scsi/dpt_i2o.c 					pHba->name);
pHba             3027 drivers/scsi/dpt_i2o.c 		memset(pHba->lct, 0, pHba->lct_size);
pHba             3035 drivers/scsi/dpt_i2o.c 		msg[6] = 0xD0000000|pHba->lct_size;
pHba             3036 drivers/scsi/dpt_i2o.c 		msg[7] = (u32)pHba->lct_pa;
pHba             3038 drivers/scsi/dpt_i2o.c 		if ((ret=adpt_i2o_post_wait(pHba, msg, sizeof(msg), 360))) {
pHba             3040 drivers/scsi/dpt_i2o.c 				pHba->name, ret);	
pHba             3045 drivers/scsi/dpt_i2o.c 		if ((pHba->lct->table_size << 2) > pHba->lct_size) {
pHba             3046 drivers/scsi/dpt_i2o.c 			pHba->lct_size = pHba->lct->table_size << 2;
pHba             3047 drivers/scsi/dpt_i2o.c 			dma_free_coherent(&pHba->pDev->dev, pHba->lct_size,
pHba             3048 drivers/scsi/dpt_i2o.c 					pHba->lct, pHba->lct_pa);
pHba             3049 drivers/scsi/dpt_i2o.c 			pHba->lct = NULL;
pHba             3051 drivers/scsi/dpt_i2o.c 	} while (pHba->lct == NULL);
pHba             3053 drivers/scsi/dpt_i2o.c 	PDEBUG("%s: Hardware resource table read.\n", pHba->name);
pHba             3057 drivers/scsi/dpt_i2o.c 	if(adpt_i2o_query_scalar(pHba, 0 , 0x8000, -1, buf, sizeof(buf))>=0) {
pHba             3058 drivers/scsi/dpt_i2o.c 		pHba->FwDebugBufferSize = buf[1];
pHba             3059 drivers/scsi/dpt_i2o.c 		pHba->FwDebugBuffer_P = ioremap(pHba->base_addr_phys + buf[0],
pHba             3060 drivers/scsi/dpt_i2o.c 						pHba->FwDebugBufferSize);
pHba             3061 drivers/scsi/dpt_i2o.c 		if (pHba->FwDebugBuffer_P) {
pHba             3062 drivers/scsi/dpt_i2o.c 			pHba->FwDebugFlags_P     = pHba->FwDebugBuffer_P +
pHba             3064 drivers/scsi/dpt_i2o.c 			pHba->FwDebugBLEDvalue_P = pHba->FwDebugBuffer_P +
pHba             3066 drivers/scsi/dpt_i2o.c 			pHba->FwDebugBLEDflag_P  = pHba->FwDebugBLEDvalue_P + 1;
pHba             3067 drivers/scsi/dpt_i2o.c 			pHba->FwDebugStrLength_P = pHba->FwDebugBuffer_P +
pHba             3069 drivers/scsi/dpt_i2o.c 			pHba->FwDebugBuffer_P += buf[2]; 
pHba             3070 drivers/scsi/dpt_i2o.c 			pHba->FwDebugFlags = 0;
pHba             3079 drivers/scsi/dpt_i2o.c 	adpt_hba* pHba = hba_chain;
pHba             3083 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, sys_tbl_len,
pHba             3089 drivers/scsi/dpt_i2o.c 	sys_tbl = dma_alloc_coherent(&pHba->pDev->dev,
pHba             3101 drivers/scsi/dpt_i2o.c 	for(pHba = hba_chain; pHba; pHba = pHba->next) {
pHba             3104 drivers/scsi/dpt_i2o.c 		if (adpt_i2o_status_get(pHba)) {
pHba             3109 drivers/scsi/dpt_i2o.c 		sys_tbl->iops[count].org_id = pHba->status_block->org_id;
pHba             3110 drivers/scsi/dpt_i2o.c 		sys_tbl->iops[count].iop_id = pHba->unit + 2;
pHba             3112 drivers/scsi/dpt_i2o.c 		sys_tbl->iops[count].i2o_version = pHba->status_block->i2o_version;
pHba             3113 drivers/scsi/dpt_i2o.c 		sys_tbl->iops[count].iop_state = pHba->status_block->iop_state;
pHba             3114 drivers/scsi/dpt_i2o.c 		sys_tbl->iops[count].msg_type = pHba->status_block->msg_type;
pHba             3115 drivers/scsi/dpt_i2o.c 		sys_tbl->iops[count].frame_size = pHba->status_block->inbound_frame_size;
pHba             3117 drivers/scsi/dpt_i2o.c 		sys_tbl->iops[count].iop_capabilities = pHba->status_block->iop_capabilities;
pHba             3118 drivers/scsi/dpt_i2o.c 		addr = pHba->base_addr_phys + 0x40;
pHba             3144 drivers/scsi/dpt_i2o.c static void adpt_i2o_report_hba_unit(adpt_hba* pHba, struct i2o_device *d)
pHba             3151 drivers/scsi/dpt_i2o.c 	if(adpt_i2o_query_scalar(pHba, unit, 0xF100, 3, buf, 16)>=0)
pHba             3156 drivers/scsi/dpt_i2o.c 	if(adpt_i2o_query_scalar(pHba, unit, 0xF100, 4, buf, 16)>=0)
pHba             3161 drivers/scsi/dpt_i2o.c 	if(adpt_i2o_query_scalar(pHba, unit, 0xF100, 6, buf, 8)>=0)
pHba             3249 drivers/scsi/dpt_i2o.c static s32 adpt_i2o_hrt_get(adpt_hba* pHba)
pHba             3255 drivers/scsi/dpt_i2o.c 		if (pHba->hrt == NULL) {
pHba             3256 drivers/scsi/dpt_i2o.c 			pHba->hrt = dma_alloc_coherent(&pHba->pDev->dev,
pHba             3257 drivers/scsi/dpt_i2o.c 					size, &pHba->hrt_pa, GFP_KERNEL);
pHba             3258 drivers/scsi/dpt_i2o.c 			if (pHba->hrt == NULL) {
pHba             3259 drivers/scsi/dpt_i2o.c 				printk(KERN_CRIT "%s: Hrt Get failed; Out of memory.\n", pHba->name);
pHba             3269 drivers/scsi/dpt_i2o.c 		msg[5]= (u32)pHba->hrt_pa;	/* Dump it here */
pHba             3271 drivers/scsi/dpt_i2o.c 		if ((ret = adpt_i2o_post_wait(pHba, msg, sizeof(msg),20))) {
pHba             3272 drivers/scsi/dpt_i2o.c 			printk(KERN_ERR "%s: Unable to get HRT (status=%#10x)\n", pHba->name, ret);
pHba             3276 drivers/scsi/dpt_i2o.c 		if (pHba->hrt->num_entries * pHba->hrt->entry_len << 2 > size) {
pHba             3277 drivers/scsi/dpt_i2o.c 			int newsize = pHba->hrt->num_entries * pHba->hrt->entry_len << 2;
pHba             3278 drivers/scsi/dpt_i2o.c 			dma_free_coherent(&pHba->pDev->dev, size,
pHba             3279 drivers/scsi/dpt_i2o.c 				pHba->hrt, pHba->hrt_pa);
pHba             3281 drivers/scsi/dpt_i2o.c 			pHba->hrt = NULL;
pHba             3283 drivers/scsi/dpt_i2o.c 	} while(pHba->hrt == NULL);
pHba             3290 drivers/scsi/dpt_i2o.c static int adpt_i2o_query_scalar(adpt_hba* pHba, int tid, 
pHba             3302 drivers/scsi/dpt_i2o.c 	resblk_va = dma_alloc_coherent(&pHba->pDev->dev,
pHba             3305 drivers/scsi/dpt_i2o.c 		printk(KERN_CRIT "%s: query scalar failed; Out of memory.\n", pHba->name);
pHba             3309 drivers/scsi/dpt_i2o.c 	opblk_va = dma_alloc_coherent(&pHba->pDev->dev,
pHba             3312 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, sizeof(u8) * (8+buflen),
pHba             3315 drivers/scsi/dpt_i2o.c 			pHba->name);
pHba             3322 drivers/scsi/dpt_i2o.c 	size = adpt_i2o_issue_params(I2O_CMD_UTIL_PARAMS_GET, pHba, tid, 
pHba             3325 drivers/scsi/dpt_i2o.c 	dma_free_coherent(&pHba->pDev->dev, sizeof(opblk), opblk_va, opblk_pa);
pHba             3327 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, sizeof(u8) * (8+buflen),
pHba             3329 drivers/scsi/dpt_i2o.c 		printk(KERN_WARNING "%s: issue params failed; Timed out.\n", pHba->name);
pHba             3332 drivers/scsi/dpt_i2o.c 		dma_free_coherent(&pHba->pDev->dev, sizeof(u8) * (8+buflen),
pHba             3334 drivers/scsi/dpt_i2o.c 		printk(KERN_WARNING "%s: issue params failed; Interrupted.\n", pHba->name);
pHba             3340 drivers/scsi/dpt_i2o.c 	dma_free_coherent(&pHba->pDev->dev, sizeof(u8) * (8+buflen),
pHba             3357 drivers/scsi/dpt_i2o.c static int adpt_i2o_issue_params(int cmd, adpt_hba* pHba, int tid, 
pHba             3375 drivers/scsi/dpt_i2o.c 	if ((wait_status = adpt_i2o_post_wait(pHba, msg, sizeof(msg), 20))) {
pHba             3383 drivers/scsi/dpt_i2o.c 			pHba->name,
pHba             3394 drivers/scsi/dpt_i2o.c static s32 adpt_i2o_quiesce_hba(adpt_hba* pHba)
pHba             3399 drivers/scsi/dpt_i2o.c 	adpt_i2o_status_get(pHba);
pHba             3403 drivers/scsi/dpt_i2o.c 	if((pHba->status_block->iop_state != ADAPTER_STATE_READY) &&
pHba             3404 drivers/scsi/dpt_i2o.c    	   (pHba->status_block->iop_state != ADAPTER_STATE_OPERATIONAL)){
pHba             3413 drivers/scsi/dpt_i2o.c 	if((ret = adpt_i2o_post_wait(pHba, msg, sizeof(msg), 240))) {
pHba             3415 drivers/scsi/dpt_i2o.c 				pHba->unit, -ret);
pHba             3417 drivers/scsi/dpt_i2o.c 		printk(KERN_INFO"dpti%d: Quiesced.\n",pHba->unit);
pHba             3420 drivers/scsi/dpt_i2o.c 	adpt_i2o_status_get(pHba);
pHba             3428 drivers/scsi/dpt_i2o.c static int adpt_i2o_enable_hba(adpt_hba* pHba)
pHba             3433 drivers/scsi/dpt_i2o.c 	adpt_i2o_status_get(pHba);
pHba             3434 drivers/scsi/dpt_i2o.c 	if(!pHba->status_block){
pHba             3438 drivers/scsi/dpt_i2o.c 	if(pHba->status_block->iop_state == ADAPTER_STATE_OPERATIONAL)
pHba             3441 drivers/scsi/dpt_i2o.c 	if(pHba->status_block->iop_state != ADAPTER_STATE_READY)
pHba             3449 drivers/scsi/dpt_i2o.c 	if ((ret = adpt_i2o_post_wait(pHba, msg, sizeof(msg), 240))) {
pHba             3451 drivers/scsi/dpt_i2o.c 			pHba->name, ret);
pHba             3453 drivers/scsi/dpt_i2o.c 		PDEBUG("%s: Enabled.\n", pHba->name);
pHba             3456 drivers/scsi/dpt_i2o.c 	adpt_i2o_status_get(pHba);
pHba             3461 drivers/scsi/dpt_i2o.c static int adpt_i2o_systab_send(adpt_hba* pHba)
pHba             3470 drivers/scsi/dpt_i2o.c 	msg[4] = (0<<16) | ((pHba->unit+2) << 12); /* Host 0 IOP ID (unit + 2) */
pHba             3485 drivers/scsi/dpt_i2o.c 	if ((ret=adpt_i2o_post_wait(pHba, msg, sizeof(msg), 120))) {
pHba             3487 drivers/scsi/dpt_i2o.c 			pHba->name, ret);
pHba             3491 drivers/scsi/dpt_i2o.c 		PINFO("%s: SysTab set.\n", pHba->name);
pHba             3537 drivers/scsi/dpt_i2o.c 	adpt_hba	*pHba, *next;
pHba             3547 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = pHba->next) {
pHba             3548 drivers/scsi/dpt_i2o.c 		error = scsi_add_host(pHba->host, &pHba->pDev->dev);
pHba             3551 drivers/scsi/dpt_i2o.c 		scsi_scan_host(pHba->host);
pHba             3555 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = next) {
pHba             3556 drivers/scsi/dpt_i2o.c 		next = pHba->next;
pHba             3557 drivers/scsi/dpt_i2o.c 		scsi_remove_host(pHba->host);
pHba             3564 drivers/scsi/dpt_i2o.c 	adpt_hba	*pHba, *next;
pHba             3566 drivers/scsi/dpt_i2o.c 	for (pHba = hba_chain; pHba; pHba = next) {
pHba             3567 drivers/scsi/dpt_i2o.c 		next = pHba->next;
pHba             3568 drivers/scsi/dpt_i2o.c 		adpt_release(pHba);
pHba              268 drivers/scsi/dpti.h static void adpt_i2o_report_hba_unit(adpt_hba* pHba, struct i2o_device *d);
pHba              269 drivers/scsi/dpti.h static int adpt_i2o_query_scalar(adpt_hba* pHba, int tid, 
pHba              274 drivers/scsi/dpti.h static int adpt_i2o_issue_params(int cmd, adpt_hba* pHba, int tid, 
pHba              277 drivers/scsi/dpti.h static int adpt_i2o_post_wait(adpt_hba* pHba, u32* msg, int len, int timeout);
pHba              278 drivers/scsi/dpti.h static int adpt_i2o_lct_get(adpt_hba* pHba);
pHba              279 drivers/scsi/dpti.h static int adpt_i2o_parse_lct(adpt_hba* pHba);
pHba              280 drivers/scsi/dpti.h static int adpt_i2o_activate_hba(adpt_hba* pHba);
pHba              281 drivers/scsi/dpti.h static int adpt_i2o_enable_hba(adpt_hba* pHba);
pHba              282 drivers/scsi/dpti.h static int adpt_i2o_install_device(adpt_hba* pHba, struct i2o_device *d);
pHba              283 drivers/scsi/dpti.h static s32 adpt_i2o_post_this(adpt_hba* pHba, u32* data, int len);
pHba              284 drivers/scsi/dpti.h static s32 adpt_i2o_quiesce_hba(adpt_hba* pHba);
pHba              285 drivers/scsi/dpti.h static s32 adpt_i2o_status_get(adpt_hba* pHba);
pHba              286 drivers/scsi/dpti.h static s32 adpt_i2o_init_outbound_q(adpt_hba* pHba);
pHba              287 drivers/scsi/dpti.h static s32 adpt_i2o_hrt_get(adpt_hba* pHba);
pHba              288 drivers/scsi/dpti.h static s32 adpt_scsi_to_i2o(adpt_hba* pHba, struct scsi_cmnd* cmd, struct adpt_device* dptdevice);
pHba              290 drivers/scsi/dpti.h static s32 adpt_scsi_host_alloc(adpt_hba* pHba,struct scsi_host_template * sht);
pHba              291 drivers/scsi/dpti.h static s32 adpt_hba_reset(adpt_hba* pHba);
pHba              292 drivers/scsi/dpti.h static s32 adpt_i2o_reset_hba(adpt_hba* pHba);
pHba              293 drivers/scsi/dpti.h static s32 adpt_rescan(adpt_hba* pHba);
pHba              294 drivers/scsi/dpti.h static s32 adpt_i2o_reparse_lct(adpt_hba* pHba);
pHba              295 drivers/scsi/dpti.h static s32 adpt_send_nop(adpt_hba*pHba,u32 m);
pHba              296 drivers/scsi/dpti.h static void adpt_i2o_delete_hba(adpt_hba* pHba);
pHba              297 drivers/scsi/dpti.h static void adpt_inquiry(adpt_hba* pHba);
pHba              298 drivers/scsi/dpti.h static void adpt_fail_posted_scbs(adpt_hba* pHba);
pHba              299 drivers/scsi/dpti.h static struct adpt_device* adpt_find_device(adpt_hba* pHba, u32 chan, u32 id, u64 lun);
pHba              301 drivers/scsi/dpti.h static int adpt_i2o_online_hba(adpt_hba* pHba);
pHba              303 drivers/scsi/dpti.h static int adpt_i2o_systab_send(adpt_hba* pHba);