/* We pre-swap the bytes since PCX-W is Big Endian and the IOMMU uses little endian for the pdir.  */
static void SBA_INLINE sba_io_pdir_entry(u64 *pdir_ptr, space_t sid, unsigned long vba, unsigned long hint)
/* We pre-swap the bytes since PCX-W is Big Endian and the IOMMU uses little endian for the pdir.  */
static void SBA_INLINE sba_io_pdir_entry(u64 *pdir_ptr, space_t sid, unsigned long vba, unsigned long hint)
{
	u64 pa;
	register unsigned ci;
	pa = virt_to_phys(vba);
	pa &= IOVP_MASK;
	mtsp(sid,1);
	asm("lci 0(%%sr1, %1), %0" : "=r" (ci) : "r" (vba));
	pa |= (ci >> 12) & 0xff;
	pa |= SBA_PDIR_VALID_BIT;
	*pdir_ptr = cpu_to_le64(pa);
	if (ioc_needs_fdc)
		asm volatile("fdc %%r0(%0)" : : "r" (pdir_ptr));
}