• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/scsi/aic94xx/

Lines Matching refs:asd_ha

125  * @asd_ha: pointer to the host adapter structure
132 static int asd_read_ocm_seg(struct asd_ha_struct *asd_ha, void *buffer,
136 if (unlikely(asd_ha->iospace))
137 asd_read_reg_string(asd_ha, buffer, offs+OCM_BASE_ADDR, size);
140 *p = asd_read_ocm_byte(asd_ha, offs);
145 static int asd_read_ocm_dir(struct asd_ha_struct *asd_ha,
148 int err = asd_read_ocm_seg(asd_ha, dir, offs, sizeof(*dir));
170 * @asd_ha: pointer to the host adapter structure
177 static void asd_write_ocm_seg(struct asd_ha_struct *asd_ha, void *buffer,
181 if (unlikely(asd_ha->iospace))
182 asd_write_reg_string(asd_ha, buffer, offs+OCM_BASE_ADDR, size);
185 asd_write_ocm_byte(asd_ha, offs, *p);
213 static int asd_get_bios_chim(struct asd_ha_struct *asd_ha,
231 err = asd_read_ocm_seg(asd_ha, (void *)bc_struct, offs,
252 asd_ha->hw_prof.bios.present = 1;
253 asd_ha->hw_prof.bios.maj = bc_struct->bios_major;
254 asd_ha->hw_prof.bios.min = bc_struct->bios_minor;
255 asd_ha->hw_prof.bios.bld = le32_to_cpu(bc_struct->bios_build);
257 asd_ha->hw_prof.bios.maj,
258 asd_ha->hw_prof.bios.min,
259 asd_ha->hw_prof.bios.bld);
261 asd_ha->hw_prof.ue.num = le16_to_cpu(bc_struct->ue_num);
262 asd_ha->hw_prof.ue.size= le16_to_cpu(bc_struct->ue_size);
263 ASD_DPRINTK("ue num:%d, ue size:%d\n", asd_ha->hw_prof.ue.num,
264 asd_ha->hw_prof.ue.size);
265 size = asd_ha->hw_prof.ue.num * asd_ha->hw_prof.ue.size;
268 asd_ha->hw_prof.ue.area = kmalloc(size, GFP_KERNEL);
269 if (!asd_ha->hw_prof.ue.area)
271 err = asd_read_ocm_seg(asd_ha, (void *)asd_ha->hw_prof.ue.area,
274 kfree(asd_ha->hw_prof.ue.area);
275 asd_ha->hw_prof.ue.area = NULL;
276 asd_ha->hw_prof.ue.num = 0;
277 asd_ha->hw_prof.ue.size = 0;
288 asd_hwi_initialize_ocm_dir (struct asd_ha_struct *asd_ha)
294 asd_write_ocm_dword(asd_ha, i, 0);
297 asd_write_ocm_seg(asd_ha, &OCMDirInit, 0,
302 asd_write_ocm_seg(asd_ha, &OCMDirEntriesInit[i],
310 asd_hwi_check_ocm_access (struct asd_ha_struct *asd_ha)
312 struct pci_dev *pcidev = asd_ha->pcidev;
318 reg = asd_read_reg_dword(asd_ha, EXSICNFGR);
341 asd_hwi_initialize_ocm_dir(asd_ha);
350 * @asd_ha: pointer to the host adapter structure
352 int asd_read_ocm(struct asd_ha_struct *asd_ha)
357 if (asd_hwi_check_ocm_access(asd_ha))
366 err = asd_read_ocm_dir(asd_ha, dir, 0);
370 err = asd_get_bios_chim(asd_ha, dir);
527 static int asd_poll_flash(struct asd_ha_struct *asd_ha)
533 d = asd_read_reg_byte(asd_ha, asd_ha->hw_prof.flash.bar);
534 d ^= asd_read_reg_byte(asd_ha, asd_ha->hw_prof.flash.bar);
542 static int asd_reset_flash(struct asd_ha_struct *asd_ha)
546 err = asd_poll_flash(asd_ha);
549 asd_write_reg_byte(asd_ha, asd_ha->hw_prof.flash.bar, FLASH_RESET);
550 err = asd_poll_flash(asd_ha);
555 static inline int asd_read_flash_seg(struct asd_ha_struct *asd_ha,
558 asd_read_reg_string(asd_ha, buffer, asd_ha->hw_prof.flash.bar+offs,
565 * @asd_ha: pointer to the host adapter structure
571 static int asd_find_flash_dir(struct asd_ha_struct *asd_ha,
576 asd_read_flash_seg(asd_ha, flash_dir, v,
580 asd_ha->hw_prof.flash.dir_offs = v;
581 asd_read_flash_seg(asd_ha, flash_dir, v,
589 static int asd_flash_getid(struct asd_ha_struct *asd_ha)
594 reg = asd_read_reg_dword(asd_ha, EXSICNFGR);
596 if (pci_read_config_dword(asd_ha->pcidev, PCI_CONF_FLSH_BAR,
597 &asd_ha->hw_prof.flash.bar)) {
599 pci_name(asd_ha->pcidev));
602 asd_ha->hw_prof.flash.present = 1;
603 asd_ha->hw_prof.flash.wide = reg & FLASHW ? 1 : 0;
604 err = asd_reset_flash(asd_ha);
667 static int asd_ms_get_sas_addr(struct asd_ha_struct *asd_ha,
670 memcpy(asd_ha->hw_prof.sas_addr, ms->sas_addr, SAS_ADDR_SIZE);
674 static int asd_ms_get_pcba_sn(struct asd_ha_struct *asd_ha,
677 memcpy(asd_ha->hw_prof.pcba_sn, ms->pcba_sn, ASD_PCBA_SN_SIZE);
678 asd_ha->hw_prof.pcba_sn[ASD_PCBA_SN_SIZE] = '\0';
713 * @asd_ha: pointer to the host adapter structure
731 static int asd_ms_get_phy_params(struct asd_ha_struct *asd_ha,
770 asd_ha->hw_prof.enabled_phys = 0;
779 asd_ha->hw_prof.enabled_phys &= ~(1 << i);
784 asd_ha->hw_prof.enabled_phys |= (1 << i);
788 asd_ha->hw_prof.phy_desc[i].phy_control_0 = pd->phy_control_0;
789 asd_ha->hw_prof.phy_desc[i].phy_control_1 = pd->phy_control_1;
790 asd_ha->hw_prof.phy_desc[i].phy_control_2 = pd->phy_control_2;
791 asd_ha->hw_prof.phy_desc[i].phy_control_3 = pd->phy_control_3;
793 asd_ha->hw_prof.max_phys = rep_phys + en_phys;
794 asd_ha->hw_prof.num_phys = en_phys;
796 asd_ha->hw_prof.max_phys, asd_ha->hw_prof.num_phys);
797 ASD_DPRINTK("ms: enabled_phys:0x%x\n", asd_ha->hw_prof.enabled_phys);
801 static int asd_ms_get_connector_map(struct asd_ha_struct *asd_ha,
825 * @asd_ha: pointer to the host adapter structure
828 static int asd_process_ms(struct asd_ha_struct *asd_ha,
851 err = asd_read_flash_seg(asd_ha, (void *)manuf_sec, offs, size);
864 err = asd_ms_get_sas_addr(asd_ha, manuf_sec);
870 SAS_ADDR(asd_ha->hw_prof.sas_addr));
872 err = asd_ms_get_pcba_sn(asd_ha, manuf_sec);
877 ASD_DPRINTK("manuf sect PCBA SN %s\n", asd_ha->hw_prof.pcba_sn);
879 err = asd_ms_get_phy_params(asd_ha, manuf_sec);
885 err = asd_ms_get_connector_map(asd_ha, manuf_sec);
897 static int asd_process_ctrla_phy_settings(struct asd_ha_struct *asd_ha,
904 if (!PHY_ENABLED(asd_ha, i))
907 asd_ha->hw_prof.enabled_phys &= ~(1 << i);
911 memcpy(asd_ha->hw_prof.phy_desc[i].sas_addr, pe->sas_addr,
913 asd_ha->hw_prof.phy_desc[i].max_sas_lrate =
915 asd_ha->hw_prof.phy_desc[i].min_sas_lrate =
917 asd_ha->hw_prof.phy_desc[i].max_sata_lrate =
919 asd_ha->hw_prof.phy_desc[i].min_sata_lrate =
921 asd_ha->hw_prof.phy_desc[i].flags = pe->flags;
925 SAS_ADDR(asd_ha->hw_prof.phy_desc[i].sas_addr),
926 asd_ha->hw_prof.phy_desc[i].max_sas_lrate,
927 asd_ha->hw_prof.phy_desc[i].min_sas_lrate,
928 asd_ha->hw_prof.phy_desc[i].max_sata_lrate,
929 asd_ha->hw_prof.phy_desc[i].min_sata_lrate,
930 asd_ha->hw_prof.phy_desc[i].flags);
938 * @asd_ha: pointer to the host adapter structure
941 static int asd_process_ctrl_a_user(struct asd_ha_struct *asd_ha,
959 asd_ha->hw_prof.sas_addr, SAS_ADDR_SIZE);
979 err = asd_read_flash_seg(asd_ha, (void *)el, offs, size);
992 err = asd_process_ctrla_phy_settings(asd_ha, ps);
1005 * @asd_ha: pointer to the host adapter structure
1007 int asd_read_flash(struct asd_ha_struct *asd_ha)
1012 err = asd_flash_getid(asd_ha);
1021 if (!asd_find_flash_dir(asd_ha, flash_dir)) {
1032 err = asd_process_ms(asd_ha, flash_dir);
1038 err = asd_process_ctrl_a_user(asd_ha, flash_dir);