• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/arch/sparc64/kernel/

Lines Matching defs:pbm

85 static void *psycho_pci_config_mkaddr(struct pci_pbm_info *pbm,
90 if (!pbm)
93 (PSYCHO_CONFIG_BASE(pbm) |
147 static void __psycho_check_one_stc(struct pci_pbm_info *pbm,
150 struct strbuf *strbuf = &pbm->stc;
151 unsigned long regbase = pbm->controller_regs;
208 pbm->name,
218 pbm->name,
226 pbm->name,
240 static void __psycho_check_stc_error(struct pci_pbm_info *pbm,
245 __psycho_check_one_stc(pbm,
246 (pbm == &pbm->parent->pbm_A));
284 static void psycho_check_iommu_error(struct pci_pbm_info *pbm,
289 struct iommu *iommu = pbm->iommu;
321 pbm->name, type_string);
336 unsigned long base = pbm->controller_regs;
375 pbm->name, i, type_string,
381 pbm->name, i,
387 __psycho_check_stc_error(pbm, afsr, afar, type);
412 struct pci_pbm_info *pbm = dev_id;
413 struct pci_controller_info *p = pbm->parent;
414 unsigned long afsr_reg = pbm->controller_regs + PSYCHO_UE_AFSR;
415 unsigned long afar_reg = pbm->controller_regs + PSYCHO_UE_AFAR;
433 pbm->name,
441 pbm->name,
446 printk("%s: UE AFAR [%016lx]\n", pbm->name, afar);
447 printk("%s: UE Secondary errors [", pbm->name);
491 struct pci_pbm_info *pbm = dev_id;
492 unsigned long afsr_reg = pbm->controller_regs + PSYCHO_CE_AFSR;
493 unsigned long afar_reg = pbm->controller_regs + PSYCHO_CE_AFAR;
511 pbm->name,
521 pbm->name,
527 printk("%s: CE AFAR [%016lx]\n", pbm->name, afar);
528 printk("%s: CE Secondary errors [", pbm->name);
571 static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm_a)
578 csr_reg = pbm->controller_regs + PSYCHO_PCIA_CTRL;
580 csr_reg = pbm->controller_regs + PSYCHO_PCIB_CTRL;
592 pbm->name);
594 printk("%s: PCI SERR signal asserted.\n", pbm->name);
597 pci_read_config_word(pbm->pci_bus->self, PCI_STATUS, &stat);
604 pbm->name, stat);
605 pci_write_config_word(pbm->pci_bus->self, PCI_STATUS, 0xffff);
613 struct pci_pbm_info *pbm = dev_id;
614 struct pci_controller_info *p = pbm->parent;
619 is_pbm_a = (pbm == &pbm->parent->pbm_A);
639 return psycho_pcierr_intr_other(pbm, is_pbm_a);
644 pbm->name,
654 pbm->name,
658 printk("%s: PCI AFAR [%016lx]\n", pbm->name, afar);
659 printk("%s: PCI Secondary errors [", pbm->name);
691 psycho_check_iommu_error(pbm, afsr, afar, PCI_ERR);
692 pci_scan_for_target_abort(pbm, pbm->pci_bus);
695 pci_scan_for_master_abort(pbm, pbm->pci_bus);
705 pci_scan_for_parity_error(pbm, pbm->pci_bus);
714 static void psycho_register_error_handlers(struct pci_pbm_info *pbm)
716 struct of_device *op = of_find_device_by_node(pbm->prom_node);
717 unsigned long base = pbm->controller_regs;
744 "PSYCHO_UE", pbm);
746 "PSYCHO_CE", pbm);
753 "PSYCHO_PCIERR", pbm);
756 "err=%d\n", pbm->name, err);
783 static void pbm_config_busmastering(struct pci_pbm_info *pbm)
790 addr = psycho_pci_config_mkaddr(pbm, pbm->pci_first_busno,
795 addr = psycho_pci_config_mkaddr(pbm, pbm->pci_first_busno,
800 static void psycho_scan_bus(struct pci_pbm_info *pbm)
802 pbm_config_busmastering(pbm);
803 pbm->is_66mhz_capable = 0;
804 pbm->pci_bus = pci_scan_one_pbm(pbm);
809 psycho_register_error_handlers(pbm);
812 static void psycho_iommu_init(struct pci_pbm_info *pbm)
814 struct iommu *iommu = pbm->iommu;
819 iommu->iommu_control = pbm->controller_regs + PSYCHO_IOMMU_CONTROL;
820 iommu->iommu_tsbbase = pbm->controller_regs + PSYCHO_IOMMU_TSBBASE;
821 iommu->iommu_flush = pbm->controller_regs + PSYCHO_IOMMU_FLUSH;
828 iommu->write_complete_reg = pbm->controller_regs + PSYCHO_CONTROL;
833 control = psycho_read(pbm->controller_regs + PSYCHO_IOMMU_CONTROL);
835 psycho_write(pbm->controller_regs + PSYCHO_IOMMU_CONTROL, control);
837 psycho_write(pbm->controller_regs + PSYCHO_IOMMU_TAG + (i * 8UL), 0);
838 psycho_write(pbm->controller_regs + PSYCHO_IOMMU_DATA + (i * 8UL), 0);
846 psycho_write(pbm->controller_regs + PSYCHO_IOMMU_TSBBASE,
849 control = psycho_read(pbm->controller_regs + PSYCHO_IOMMU_CONTROL);
852 psycho_write(pbm->controller_regs + PSYCHO_IOMMU_CONTROL, control);
856 starfire_hookup(pbm->portid);
871 static void psycho_controller_hwinit(struct pci_pbm_info *pbm)
875 psycho_write(pbm->controller_regs + PSYCHO_IRQ_RETRY, 5);
878 tmp = psycho_read(pbm->controller_regs + PSYCHO_PCIA_CTRL);
880 psycho_write(pbm->controller_regs + PSYCHO_PCIA_CTRL, tmp);
882 tmp = psycho_read(pbm->controller_regs + PSYCHO_PCIB_CTRL);
884 psycho_write(pbm->controller_regs + PSYCHO_PCIB_CTRL, tmp);
890 tmp = psycho_read(pbm->controller_regs + PSYCHO_PCIA_DIAG);
892 psycho_write(pbm->controller_regs + PSYCHO_PCIA_DIAG, tmp);
894 tmp = psycho_read(pbm->controller_regs + PSYCHO_PCIB_DIAG);
896 psycho_write(pbm->controller_regs + PSYCHO_PCIB_DIAG, tmp);
899 static void psycho_pbm_strbuf_init(struct pci_pbm_info *pbm,
902 unsigned long base = pbm->controller_regs;
906 pbm->stc.strbuf_control = base + PSYCHO_STRBUF_CONTROL_A;
907 pbm->stc.strbuf_pflush = base + PSYCHO_STRBUF_FLUSH_A;
908 pbm->stc.strbuf_fsync = base + PSYCHO_STRBUF_FSYNC_A;
910 pbm->stc.strbuf_control = base + PSYCHO_STRBUF_CONTROL_B;
911 pbm->stc.strbuf_pflush = base + PSYCHO_STRBUF_FLUSH_B;
912 pbm->stc.strbuf_fsync = base + PSYCHO_STRBUF_FSYNC_B;
915 pbm->stc.strbuf_ctxflush = 0;
916 pbm->stc.strbuf_ctxmatch_base = 0;
918 pbm->stc.strbuf_flushflag = (volatile unsigned long *)
919 ((((unsigned long)&pbm->stc.__flushflag_buf[0])
922 pbm->stc.strbuf_flushflag_pa = (unsigned long)
923 __pa(pbm->stc.strbuf_flushflag);
935 control = psycho_read(pbm->stc.strbuf_control);
945 psycho_write(pbm->stc.strbuf_control, control);
947 pbm->stc.strbuf_enabled = 1;
961 struct pci_pbm_info *pbm;
964 pbm = &p->pbm_A;
966 pbm = &p->pbm_B;
968 pbm->next = pci_pbm_root;
969 pci_pbm_root = pbm;
971 pbm->scan_bus = psycho_scan_bus;
972 pbm->pci_ops = &sun4u_pci_ops;
973 pbm->config_space_reg_bits = 8;
975 pbm->index = pci_num_pbms++;
977 pbm->chip_type = PBM_CHIP_TYPE_PSYCHO;
978 pbm->chip_version = 0;
981 pbm->chip_version = *(int *) prop->value;
982 pbm->chip_revision = 0;
985 pbm->chip_revision = *(int *) prop->value;
987 pbm->parent = p;
988 pbm->prom_node = dp;
989 pbm->name = dp->full_name;
992 pbm->name,
993 pbm->chip_version, pbm->chip_revision);
995 pci_determine_mem_io_space(pbm);
997 pci_get_pbm_props(pbm);
999 psycho_pbm_strbuf_init(pbm, is_pbm_a);
1008 struct pci_pbm_info *pbm;
1019 for (pbm = pci_pbm_root; pbm; pbm = pbm->next) {
1020 struct pci_controller_info *p = pbm->parent;