Print this page
5255 uts shouldn't open-code ISP2
*** 999,1009 ****
/*
* The cache attributes are mutually exclusive. Any combination of
* the attributes leads to a failure.
*/
uint_t cache_attr = IOMEM_CACHE_ATTR(flags);
! if ((cache_attr != 0) && ((cache_attr & (cache_attr - 1)) != 0))
return (B_FALSE);
/*
* On the sparc architecture, only IOMEM_DATA_CACHED is meaningful,
* but others lead to a failure.
--- 999,1009 ----
/*
* The cache attributes are mutually exclusive. Any combination of
* the attributes leads to a failure.
*/
uint_t cache_attr = IOMEM_CACHE_ATTR(flags);
! if ((cache_attr != 0) && !ISP2(cache_attr))
return (B_FALSE);
/*
* On the sparc architecture, only IOMEM_DATA_CACHED is meaningful,
* but others lead to a failure.
*** 1141,1158 ****
int r;
/*
* Make sure that the initial value is sane
*/
! if (i & (i - 1))
return (0);
if (i == 0)
i = (stream) ? 4 : 1;
r = ddi_ctlops(a, a,
DDI_CTLOPS_IOMIN, (void *)(uintptr_t)stream, (void *)&i);
! if (r != DDI_SUCCESS || (i & (i - 1)))
return (0);
return (i);
}
int
--- 1141,1158 ----
int r;
/*
* Make sure that the initial value is sane
*/
! if (!ISP2(i))
return (0);
if (i == 0)
i = (stream) ? 4 : 1;
r = ddi_ctlops(a, a,
DDI_CTLOPS_IOMIN, (void *)(uintptr_t)stream, (void *)&i);
! if (r != DDI_SUCCESS || !ISP2(i))
return (0);
return (i);
}
int
*** 1175,1186 ****
if (length == 0 || kaddrp == NULL || attr == NULL) {
return (DDI_FAILURE);
}
if (attr->dma_attr_minxfer == 0 || attr->dma_attr_align == 0 ||
! (attr->dma_attr_align & (attr->dma_attr_align - 1)) ||
! (attr->dma_attr_minxfer & (attr->dma_attr_minxfer - 1))) {
return (DDI_FAILURE);
}
/*
* check if a streaming sequential xfer is requested.
--- 1175,1185 ----
if (length == 0 || kaddrp == NULL || attr == NULL) {
return (DDI_FAILURE);
}
if (attr->dma_attr_minxfer == 0 || attr->dma_attr_align == 0 ||
! !ISP2(attr->dma_attr_align) || !ISP2(attr->dma_attr_minxfer)) {
return (DDI_FAILURE);
}
/*
* check if a streaming sequential xfer is requested.