Lines Matching refs:sba_dev
1106 sba_get_pat_resources(struct sba_device *sba_dev) in sba_get_pat_resources() argument
1525 static void __iomem *ioc_remap(struct sba_device *sba_dev, unsigned int offset) in ioc_remap() argument
1527 return ioremap(sba_dev->dev->hpa.start + offset, SBA_FUNC_SIZE); in ioc_remap()
1530 static void sba_hw_init(struct sba_device *sba_dev) in sba_hw_init() argument
1580 if (!IS_PLUTO(sba_dev->dev)) { in sba_hw_init()
1581 ioc_ctl = READ_REG(sba_dev->sba_hpa+IOC_CTRL); in sba_hw_init()
1583 __func__, sba_dev->sba_hpa, ioc_ctl); in sba_hw_init()
1589 WRITE_REG(ioc_ctl, sba_dev->sba_hpa+IOC_CTRL); in sba_hw_init()
1592 ioc_ctl = READ_REG64(sba_dev->sba_hpa+IOC_CTRL); in sba_hw_init()
1597 if (IS_ASTRO(sba_dev->dev)) { in sba_hw_init()
1599 sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, ASTRO_IOC_OFFSET); in sba_hw_init()
1602 sba_dev->chip_resv.name = "Astro Intr Ack"; in sba_hw_init()
1603 sba_dev->chip_resv.start = PCI_F_EXTEND | 0xfef00000UL; in sba_hw_init()
1604 sba_dev->chip_resv.end = PCI_F_EXTEND | (0xff000000UL - 1) ; in sba_hw_init()
1605 err = request_resource(&iomem_resource, &(sba_dev->chip_resv)); in sba_hw_init()
1608 } else if (IS_PLUTO(sba_dev->dev)) { in sba_hw_init()
1611 sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, PLUTO_IOC_OFFSET); in sba_hw_init()
1614 sba_dev->chip_resv.name = "Pluto Intr/PIOP/VGA"; in sba_hw_init()
1615 sba_dev->chip_resv.start = PCI_F_EXTEND | 0xfee00000UL; in sba_hw_init()
1616 sba_dev->chip_resv.end = PCI_F_EXTEND | (0xff200000UL - 1); in sba_hw_init()
1617 err = request_resource(&iomem_resource, &(sba_dev->chip_resv)); in sba_hw_init()
1620 sba_dev->iommu_resv.name = "IOVA Space"; in sba_hw_init()
1621 sba_dev->iommu_resv.start = 0x40000000UL; in sba_hw_init()
1622 sba_dev->iommu_resv.end = 0x50000000UL - 1; in sba_hw_init()
1623 err = request_resource(&iomem_resource, &(sba_dev->iommu_resv)); in sba_hw_init()
1627 sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, IKE_IOC_OFFSET(0)); in sba_hw_init()
1628 sba_dev->ioc[1].ioc_hpa = ioc_remap(sba_dev, IKE_IOC_OFFSET(1)); in sba_hw_init()
1635 sba_dev->num_ioc = num_ioc; in sba_hw_init()
1637 void __iomem *ioc_hpa = sba_dev->ioc[i].ioc_hpa; in sba_hw_init()
1648 if (IS_PLUTO(sba_dev->dev)) { in sba_hw_init()
1665 READ_REG(sba_dev->ioc[i].ioc_hpa + ROPE7_CTL); in sba_hw_init()
1669 (unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x40), in sba_hw_init()
1670 (unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x50) in sba_hw_init()
1673 (unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x108), in sba_hw_init()
1674 (unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x400) in sba_hw_init()
1677 if (IS_PLUTO(sba_dev->dev)) { in sba_hw_init()
1678 sba_ioc_init_pluto(sba_dev->dev, &(sba_dev->ioc[i]), i); in sba_hw_init()
1680 sba_ioc_init(sba_dev->dev, &(sba_dev->ioc[i]), i); in sba_hw_init()
1686 sba_common_init(struct sba_device *sba_dev) in sba_common_init() argument
1693 sba_dev->next = sba_list; in sba_common_init()
1694 sba_list = sba_dev; in sba_common_init()
1696 for(i=0; i< sba_dev->num_ioc; i++) { in sba_common_init()
1705 res_size = sba_dev->ioc[i].pdir_size/sizeof(u64); /* entries */ in sba_common_init()
1716 sba_dev->ioc[i].res_size = res_size; in sba_common_init()
1717 sba_dev->ioc[i].res_map = (char *) __get_free_pages(GFP_KERNEL, get_order(res_size)); in sba_common_init()
1720 iterate_pages( sba_dev->ioc[i].res_map, res_size, in sba_common_init()
1724 if (NULL == sba_dev->ioc[i].res_map) in sba_common_init()
1730 memset(sba_dev->ioc[i].res_map, 0, res_size); in sba_common_init()
1732 sba_dev->ioc[i].res_hint = (unsigned long *) in sba_common_init()
1733 &(sba_dev->ioc[i].res_map[L1_CACHE_BYTES]); in sba_common_init()
1737 sba_dev->ioc[i].res_map[0] = 0x80; in sba_common_init()
1738 sba_dev->ioc[i].pdir_base[0] = (__force __le64) 0xeeffc0addbba0080ULL; in sba_common_init()
1747 long *p_start = (long *) &(sba_dev->ioc[i].res_map[idx_start]); in sba_common_init()
1748 long *p_end = (long *) &(sba_dev->ioc[i].res_map[idx_end]); in sba_common_init()
1757 iterate_pages( sba_dev->ioc[i].res_map, res_size, in sba_common_init()
1759 iterate_pages( sba_dev->ioc[i].pdir_base, sba_dev->ioc[i].pdir_size, in sba_common_init()
1764 __func__, i, res_size, sba_dev->ioc[i].res_map); in sba_common_init()
1767 spin_lock_init(&sba_dev->sba_lock); in sba_common_init()
1787 struct sba_device *sba_dev = sba_list; in sba_proc_info() local
1788 struct ioc *ioc = &sba_dev->ioc[0]; /* FIXME: Multi-IOC support! */ in sba_proc_info()
1796 sba_dev->name, in sba_proc_info()
1797 (sba_dev->hw_rev & 0x7) + 1, in sba_proc_info()
1798 (sba_dev->hw_rev & 0x18) >> 3); in sba_proc_info()
1807 READ_REG32(sba_dev->sba_hpa + LMMIO_DIST_BASE), in sba_proc_info()
1808 READ_REG32(sba_dev->sba_hpa + LMMIO_DIST_MASK), in sba_proc_info()
1809 READ_REG32(sba_dev->sba_hpa + LMMIO_DIST_ROUTE)); in sba_proc_info()
1814 READ_REG32(sba_dev->sba_hpa + LMMIO_DIRECT0_BASE + i*0x18), in sba_proc_info()
1815 READ_REG32(sba_dev->sba_hpa + LMMIO_DIRECT0_MASK + i*0x18), in sba_proc_info()
1816 READ_REG32(sba_dev->sba_hpa + LMMIO_DIRECT0_ROUTE + i*0x18)); in sba_proc_info()
1858 struct sba_device *sba_dev = sba_list; in sba_proc_bitmap_info() local
1859 struct ioc *ioc = &sba_dev->ioc[0]; /* FIXME: Multi-IOC support! */ in sba_proc_bitmap_info()
1893 struct sba_device *sba_dev; in sba_driver_callback() local
1942 sba_dev = kzalloc_obj(struct sba_device); in sba_driver_callback()
1943 if (!sba_dev) { in sba_driver_callback()
1948 parisc_set_drvdata(dev, sba_dev); in sba_driver_callback()
1951 spin_lock_init(&(sba_dev->ioc[i].res_lock)); in sba_driver_callback()
1953 sba_dev->dev = dev; in sba_driver_callback()
1954 sba_dev->hw_rev = func_class; in sba_driver_callback()
1955 sba_dev->name = dev->name; in sba_driver_callback()
1956 sba_dev->sba_hpa = sba_addr; in sba_driver_callback()
1958 sba_get_pat_resources(sba_dev); in sba_driver_callback()
1959 sba_hw_init(sba_dev); in sba_driver_callback()
1960 sba_common_init(sba_dev); in sba_driver_callback()
2005 struct parisc_device *sba_dev = parisc_parent(pci_hba); in sba_get_iommu() local
2006 struct sba_device *sba = dev_get_drvdata(&sba_dev->dev); in sba_get_iommu()
2007 char t = sba_dev->id.hw_type; in sba_get_iommu()
2026 struct parisc_device *sba_dev = parisc_parent(pci_hba); in sba_directed_lmmio() local
2027 struct sba_device *sba = dev_get_drvdata(&sba_dev->dev); in sba_directed_lmmio()
2028 char t = sba_dev->id.hw_type; in sba_directed_lmmio()
2069 struct parisc_device *sba_dev = parisc_parent(pci_hba); in sba_distributed_lmmio() local
2070 struct sba_device *sba = dev_get_drvdata(&sba_dev->dev); in sba_distributed_lmmio()
2071 char t = sba_dev->id.hw_type; in sba_distributed_lmmio()