• Home
  • Raw
  • Download

Lines Matching refs:ha

10     gdth_ha_str *ha = shost_priv(host);  in gdth_proc_info()  local
16 return(gdth_set_info(buffer,length,host,ha)); in gdth_proc_info()
18 return(gdth_get_info(buffer,start,offset,length,host,ha)); in gdth_proc_info()
22 gdth_ha_str *ha) in gdth_set_info() argument
26 TRACE2(("gdth_set_info() ha %d\n",ha->hanum,)); in gdth_set_info()
32 ret_val = gdth_set_asc_info(host, buffer, length, ha); in gdth_set_info()
40 int length, gdth_ha_str *ha) in gdth_set_asc_info() argument
52 TRACE2(("gdth_set_asc_info() ha %d\n",ha->hanum)); in gdth_set_asc_info()
73 if (ha->hdr[i].present) { in gdth_set_asc_info()
79 if (ha->cache_feat & GDT_64BIT) { in gdth_set_asc_info()
111 if (ha->cache_feat & GDT_WR_THROUGH) { in gdth_set_asc_info()
128 if (!gdth_ioctl_alloc(ha, sizeof(gdth_cpar_str), TRUE, &paddr)) in gdth_set_asc_info()
130 pcpar = (gdth_cpar_str *)ha->pscratch; in gdth_set_asc_info()
131 memcpy( pcpar, &ha->cpar, sizeof(gdth_cpar_str) ); in gdth_set_asc_info()
142 gdth_ioctl_free(ha, GDTH_SCRATCH, ha->pscratch, paddr); in gdth_set_asc_info()
152 struct Scsi_Host *host, gdth_ha_str *ha) in gdth_get_info() argument
184 TRACE2(("gdth_get_info() ha %d\n",ha->hanum)); in gdth_get_info()
214 strcpy(hrec, ha->binfo.type_string); in gdth_get_info()
217 ha->hanum, hrec); in gdth_get_info()
220 if (ha->more_proc) in gdth_get_info()
222 (unchar)(ha->binfo.upd_fw_ver>>24), in gdth_get_info()
223 (unchar)(ha->binfo.upd_fw_ver>>16), in gdth_get_info()
224 (unchar)(ha->binfo.upd_fw_ver), in gdth_get_info()
225 ha->bfeat.raid ? 'R':'N', in gdth_get_info()
226 ha->binfo.upd_revision); in gdth_get_info()
228 sprintf(hrec, "%d.%02d", (unchar)(ha->cpar.version>>8), in gdth_get_info()
229 (unchar)(ha->cpar.version)); in gdth_get_info()
236 if (ha->more_proc) { in gdth_get_info()
240 ha->binfo.ser_no, ha->binfo.memsize / 1024); in gdth_get_info()
250 ha->dma32_cnt, ha->dma64_cnt); in gdth_get_info()
261 if (ha->more_proc) { in gdth_get_info()
267 buf = gdth_ioctl_alloc(ha, GDTH_SCRATCH, FALSE, &paddr); in gdth_get_info()
270 for (i = 0; i < ha->bus_cnt; ++i) { in gdth_get_info()
279 gdtcmd->u.ioctl.channel = ha->raw[i].address | INVALID_CHANNEL; in gdth_get_info()
280 pds->bid = ha->raw[i].local_no; in gdth_get_info()
282 pds->entries = ha->raw[i].pdev_cnt; in gdth_get_info()
292 for (j = 0; j < ha->raw[i].pdev_cnt; ++j) { in gdth_get_info()
295 i, ha->raw[i].id_list[j])); in gdth_get_info()
303 ha->raw[i].address | ha->raw[i].id_list[j]; in gdth_get_info()
344 i, ha->raw[i].id_list[j])); in gdth_get_info()
352 ha->raw[i].address | ha->raw[i].id_list[j]; in gdth_get_info()
370 gdth_ioctl_free(ha, GDTH_SCRATCH, buf, paddr); in gdth_get_info()
382 buf = gdth_ioctl_alloc(ha, GDTH_SCRATCH, FALSE, &paddr); in gdth_get_info()
386 if (!ha->hdr[i].is_logdrv) in gdth_get_info()
462 if (!ha->hdr[i].is_arraydrv) in gdth_get_info()
465 sprintf(hrec, "%d", ha->hdr[i].master_no); in gdth_get_info()
476 gdth_ioctl_free(ha, GDTH_SCRATCH, buf, paddr); in gdth_get_info()
488 buf = gdth_ioctl_alloc(ha, GDTH_SCRATCH, FALSE, &paddr); in gdth_get_info()
492 if (!(ha->hdr[i].is_arraydrv && ha->hdr[i].is_master)) in gdth_get_info()
547 gdth_ioctl_free(ha, GDTH_SCRATCH, buf, paddr); in gdth_get_info()
559 buf = gdth_ioctl_alloc(ha, sizeof(gdth_hget_str), FALSE, &paddr); in gdth_get_info()
563 if (!ha->hdr[i].is_logdrv || in gdth_get_info()
564 (ha->hdr[i].is_arraydrv && !ha->hdr[i].is_master)) in gdth_get_info()
578 ha->hdr[i].ldr_no = i; in gdth_get_info()
579 ha->hdr[i].rw_attribs = 0; in gdth_get_info()
580 ha->hdr[i].start_sec = 0; in gdth_get_info()
586 ha->hdr[k].ldr_no = phg->entry[j].log_drive; in gdth_get_info()
587 ha->hdr[k].rw_attribs = phg->entry[j].rw_attribs; in gdth_get_info()
588 ha->hdr[k].start_sec = phg->entry[j].start_sec; in gdth_get_info()
592 gdth_ioctl_free(ha, sizeof(gdth_hget_str), buf, paddr); in gdth_get_info()
595 if (!(ha->hdr[i].present)) in gdth_get_info()
600 i, ha->hdr[i].ldr_no); in gdth_get_info()
606 (ulong32)(ha->hdr[i].size/2048), ha->hdr[i].start_sec); in gdth_get_info()
627 id = gdth_read_event(ha, id, estr); in gdth_get_info()
630 if (estr->event_data.eu.driver.ionode == ha->hanum && in gdth_get_info()
665 static char *gdth_ioctl_alloc(gdth_ha_str *ha, int size, int scratch, in gdth_ioctl_alloc() argument
674 spin_lock_irqsave(&ha->smp_lock, flags); in gdth_ioctl_alloc()
676 if (!ha->scratch_busy && size <= GDTH_SCRATCH) { in gdth_ioctl_alloc()
677 ha->scratch_busy = TRUE; in gdth_ioctl_alloc()
678 ret_val = ha->pscratch; in gdth_ioctl_alloc()
679 *paddr = ha->scratch_phys; in gdth_ioctl_alloc()
685 ret_val = pci_alloc_consistent(ha->pdev, size, &dma_addr); in gdth_ioctl_alloc()
689 spin_unlock_irqrestore(&ha->smp_lock, flags); in gdth_ioctl_alloc()
693 static void gdth_ioctl_free(gdth_ha_str *ha, int size, char *buf, ulong64 paddr) in gdth_ioctl_free() argument
697 if (buf == ha->pscratch) { in gdth_ioctl_free()
698 spin_lock_irqsave(&ha->smp_lock, flags); in gdth_ioctl_free()
699 ha->scratch_busy = FALSE; in gdth_ioctl_free()
700 spin_unlock_irqrestore(&ha->smp_lock, flags); in gdth_ioctl_free()
702 pci_free_consistent(ha->pdev, size, buf, paddr); in gdth_ioctl_free()
707 static int gdth_ioctl_check_bin(gdth_ha_str *ha, ushort size) in gdth_ioctl_check_bin() argument
712 spin_lock_irqsave(&ha->smp_lock, flags); in gdth_ioctl_check_bin()
715 if (ha->scratch_busy) { in gdth_ioctl_check_bin()
716 if (((gdth_iord_str *)ha->pscratch)->size == (ulong32)size) in gdth_ioctl_check_bin()
719 spin_unlock_irqrestore(&ha->smp_lock, flags); in gdth_ioctl_check_bin()
724 static void gdth_wait_completion(gdth_ha_str *ha, int busnum, int id) in gdth_wait_completion() argument
732 spin_lock_irqsave(&ha->smp_lock, flags); in gdth_wait_completion()
735 scp = ha->cmd_tab[i].cmnd; in gdth_wait_completion()
743 spin_unlock_irqrestore(&ha->smp_lock, flags); in gdth_wait_completion()
746 spin_lock_irqsave(&ha->smp_lock, flags); in gdth_wait_completion()
749 spin_unlock_irqrestore(&ha->smp_lock, flags); in gdth_wait_completion()