sba_dev 1093 drivers/parisc/sba_iommu.c sba_get_pat_resources(struct sba_device *sba_dev) sba_dev 1514 drivers/parisc/sba_iommu.c static void __iomem *ioc_remap(struct sba_device *sba_dev, unsigned int offset) sba_dev 1516 drivers/parisc/sba_iommu.c return ioremap_nocache(sba_dev->dev->hpa.start + offset, SBA_FUNC_SIZE); sba_dev 1519 drivers/parisc/sba_iommu.c static void sba_hw_init(struct sba_device *sba_dev) sba_dev 1569 drivers/parisc/sba_iommu.c if (!IS_PLUTO(sba_dev->dev)) { sba_dev 1570 drivers/parisc/sba_iommu.c ioc_ctl = READ_REG(sba_dev->sba_hpa+IOC_CTRL); sba_dev 1572 drivers/parisc/sba_iommu.c __func__, sba_dev->sba_hpa, ioc_ctl); sba_dev 1578 drivers/parisc/sba_iommu.c WRITE_REG(ioc_ctl, sba_dev->sba_hpa+IOC_CTRL); sba_dev 1581 drivers/parisc/sba_iommu.c ioc_ctl = READ_REG64(sba_dev->sba_hpa+IOC_CTRL); sba_dev 1586 drivers/parisc/sba_iommu.c if (IS_ASTRO(sba_dev->dev)) { sba_dev 1588 drivers/parisc/sba_iommu.c sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, ASTRO_IOC_OFFSET); sba_dev 1591 drivers/parisc/sba_iommu.c sba_dev->chip_resv.name = "Astro Intr Ack"; sba_dev 1592 drivers/parisc/sba_iommu.c sba_dev->chip_resv.start = PCI_F_EXTEND | 0xfef00000UL; sba_dev 1593 drivers/parisc/sba_iommu.c sba_dev->chip_resv.end = PCI_F_EXTEND | (0xff000000UL - 1) ; sba_dev 1594 drivers/parisc/sba_iommu.c err = request_resource(&iomem_resource, &(sba_dev->chip_resv)); sba_dev 1597 drivers/parisc/sba_iommu.c } else if (IS_PLUTO(sba_dev->dev)) { sba_dev 1600 drivers/parisc/sba_iommu.c sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, PLUTO_IOC_OFFSET); sba_dev 1603 drivers/parisc/sba_iommu.c sba_dev->chip_resv.name = "Pluto Intr/PIOP/VGA"; sba_dev 1604 drivers/parisc/sba_iommu.c sba_dev->chip_resv.start = PCI_F_EXTEND | 0xfee00000UL; sba_dev 1605 drivers/parisc/sba_iommu.c sba_dev->chip_resv.end = PCI_F_EXTEND | (0xff200000UL - 1); sba_dev 1606 drivers/parisc/sba_iommu.c err = request_resource(&iomem_resource, &(sba_dev->chip_resv)); sba_dev 1609 drivers/parisc/sba_iommu.c sba_dev->iommu_resv.name = "IOVA Space"; sba_dev 1610 drivers/parisc/sba_iommu.c sba_dev->iommu_resv.start = 0x40000000UL; sba_dev 1611 drivers/parisc/sba_iommu.c sba_dev->iommu_resv.end = 0x50000000UL - 1; sba_dev 1612 drivers/parisc/sba_iommu.c err = request_resource(&iomem_resource, &(sba_dev->iommu_resv)); sba_dev 1616 drivers/parisc/sba_iommu.c sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, IKE_IOC_OFFSET(0)); sba_dev 1617 drivers/parisc/sba_iommu.c sba_dev->ioc[1].ioc_hpa = ioc_remap(sba_dev, IKE_IOC_OFFSET(1)); sba_dev 1624 drivers/parisc/sba_iommu.c sba_dev->num_ioc = num_ioc; sba_dev 1626 drivers/parisc/sba_iommu.c void __iomem *ioc_hpa = sba_dev->ioc[i].ioc_hpa; sba_dev 1637 drivers/parisc/sba_iommu.c if (IS_PLUTO(sba_dev->dev)) { sba_dev 1654 drivers/parisc/sba_iommu.c READ_REG(sba_dev->ioc[i].ioc_hpa + ROPE7_CTL); sba_dev 1658 drivers/parisc/sba_iommu.c READ_REG(sba_dev->ioc[i].ioc_hpa + 0x40), sba_dev 1659 drivers/parisc/sba_iommu.c READ_REG(sba_dev->ioc[i].ioc_hpa + 0x50) sba_dev 1662 drivers/parisc/sba_iommu.c READ_REG(sba_dev->ioc[i].ioc_hpa + 0x108), sba_dev 1663 drivers/parisc/sba_iommu.c READ_REG(sba_dev->ioc[i].ioc_hpa + 0x400) sba_dev 1666 drivers/parisc/sba_iommu.c if (IS_PLUTO(sba_dev->dev)) { sba_dev 1667 drivers/parisc/sba_iommu.c sba_ioc_init_pluto(sba_dev->dev, &(sba_dev->ioc[i]), i); sba_dev 1669 drivers/parisc/sba_iommu.c sba_ioc_init(sba_dev->dev, &(sba_dev->ioc[i]), i); sba_dev 1675 drivers/parisc/sba_iommu.c sba_common_init(struct sba_device *sba_dev) sba_dev 1682 drivers/parisc/sba_iommu.c sba_dev->next = sba_list; sba_dev 1683 drivers/parisc/sba_iommu.c sba_list = sba_dev; sba_dev 1685 drivers/parisc/sba_iommu.c for(i=0; i< sba_dev->num_ioc; i++) { sba_dev 1694 drivers/parisc/sba_iommu.c res_size = sba_dev->ioc[i].pdir_size/sizeof(u64); /* entries */ sba_dev 1705 drivers/parisc/sba_iommu.c sba_dev->ioc[i].res_size = res_size; sba_dev 1706 drivers/parisc/sba_iommu.c sba_dev->ioc[i].res_map = (char *) __get_free_pages(GFP_KERNEL, get_order(res_size)); sba_dev 1709 drivers/parisc/sba_iommu.c iterate_pages( sba_dev->ioc[i].res_map, res_size, sba_dev 1713 drivers/parisc/sba_iommu.c if (NULL == sba_dev->ioc[i].res_map) sba_dev 1719 drivers/parisc/sba_iommu.c memset(sba_dev->ioc[i].res_map, 0, res_size); sba_dev 1721 drivers/parisc/sba_iommu.c sba_dev->ioc[i].res_hint = (unsigned long *) sba_dev 1722 drivers/parisc/sba_iommu.c &(sba_dev->ioc[i].res_map[L1_CACHE_BYTES]); sba_dev 1726 drivers/parisc/sba_iommu.c sba_dev->ioc[i].res_map[0] = 0x80; sba_dev 1727 drivers/parisc/sba_iommu.c sba_dev->ioc[i].pdir_base[0] = 0xeeffc0addbba0080ULL; sba_dev 1736 drivers/parisc/sba_iommu.c long *p_start = (long *) &(sba_dev->ioc[i].res_map[idx_start]); sba_dev 1737 drivers/parisc/sba_iommu.c long *p_end = (long *) &(sba_dev->ioc[i].res_map[idx_end]); sba_dev 1746 drivers/parisc/sba_iommu.c iterate_pages( sba_dev->ioc[i].res_map, res_size, sba_dev 1748 drivers/parisc/sba_iommu.c iterate_pages( sba_dev->ioc[i].pdir_base, sba_dev->ioc[i].pdir_size, sba_dev 1753 drivers/parisc/sba_iommu.c __func__, i, res_size, sba_dev->ioc[i].res_map); sba_dev 1756 drivers/parisc/sba_iommu.c spin_lock_init(&sba_dev->sba_lock); sba_dev 1776 drivers/parisc/sba_iommu.c struct sba_device *sba_dev = sba_list; sba_dev 1777 drivers/parisc/sba_iommu.c struct ioc *ioc = &sba_dev->ioc[0]; /* FIXME: Multi-IOC support! */ sba_dev 1785 drivers/parisc/sba_iommu.c sba_dev->name, sba_dev 1786 drivers/parisc/sba_iommu.c (sba_dev->hw_rev & 0x7) + 1, sba_dev 1787 drivers/parisc/sba_iommu.c (sba_dev->hw_rev & 0x18) >> 3); sba_dev 1796 drivers/parisc/sba_iommu.c READ_REG32(sba_dev->sba_hpa + LMMIO_DIST_BASE), sba_dev 1797 drivers/parisc/sba_iommu.c READ_REG32(sba_dev->sba_hpa + LMMIO_DIST_MASK), sba_dev 1798 drivers/parisc/sba_iommu.c READ_REG32(sba_dev->sba_hpa + LMMIO_DIST_ROUTE)); sba_dev 1803 drivers/parisc/sba_iommu.c READ_REG32(sba_dev->sba_hpa + LMMIO_DIRECT0_BASE + i*0x18), sba_dev 1804 drivers/parisc/sba_iommu.c READ_REG32(sba_dev->sba_hpa + LMMIO_DIRECT0_MASK + i*0x18), sba_dev 1805 drivers/parisc/sba_iommu.c READ_REG32(sba_dev->sba_hpa + LMMIO_DIRECT0_ROUTE + i*0x18)); sba_dev 1847 drivers/parisc/sba_iommu.c struct sba_device *sba_dev = sba_list; sba_dev 1848 drivers/parisc/sba_iommu.c struct ioc *ioc = &sba_dev->ioc[0]; /* FIXME: Multi-IOC support! */ sba_dev 1882 drivers/parisc/sba_iommu.c struct sba_device *sba_dev; sba_dev 1933 drivers/parisc/sba_iommu.c sba_dev = kzalloc(sizeof(struct sba_device), GFP_KERNEL); sba_dev 1934 drivers/parisc/sba_iommu.c if (!sba_dev) { sba_dev 1939 drivers/parisc/sba_iommu.c parisc_set_drvdata(dev, sba_dev); sba_dev 1942 drivers/parisc/sba_iommu.c spin_lock_init(&(sba_dev->ioc[i].res_lock)); sba_dev 1944 drivers/parisc/sba_iommu.c sba_dev->dev = dev; sba_dev 1945 drivers/parisc/sba_iommu.c sba_dev->hw_rev = func_class; sba_dev 1946 drivers/parisc/sba_iommu.c sba_dev->name = dev->name; sba_dev 1947 drivers/parisc/sba_iommu.c sba_dev->sba_hpa = sba_addr; sba_dev 1949 drivers/parisc/sba_iommu.c sba_get_pat_resources(sba_dev); sba_dev 1950 drivers/parisc/sba_iommu.c sba_hw_init(sba_dev); sba_dev 1951 drivers/parisc/sba_iommu.c sba_common_init(sba_dev); sba_dev 1993 drivers/parisc/sba_iommu.c struct parisc_device *sba_dev = parisc_parent(pci_hba); sba_dev 1994 drivers/parisc/sba_iommu.c struct sba_device *sba = dev_get_drvdata(&sba_dev->dev); sba_dev 1995 drivers/parisc/sba_iommu.c char t = sba_dev->id.hw_type; sba_dev 2014 drivers/parisc/sba_iommu.c struct parisc_device *sba_dev = parisc_parent(pci_hba); sba_dev 2015 drivers/parisc/sba_iommu.c struct sba_device *sba = dev_get_drvdata(&sba_dev->dev); sba_dev 2016 drivers/parisc/sba_iommu.c char t = sba_dev->id.hw_type; sba_dev 2057 drivers/parisc/sba_iommu.c struct parisc_device *sba_dev = parisc_parent(pci_hba); sba_dev 2058 drivers/parisc/sba_iommu.c struct sba_device *sba = dev_get_drvdata(&sba_dev->dev); sba_dev 2059 drivers/parisc/sba_iommu.c char t = sba_dev->id.hw_type;