Print this page
4888 Undocument dma_req(9s)
4884 EOF scsi_hba_attach
4886 EOF ddi_dmae_getlim
4887 EOF ddi_iomin
4634 undocument scsi_hba_attach() and ddi_dma_lim(9s)
4630 clean stale references to ddi_iopb_alloc and ddi_iopb_free

@@ -22,11 +22,11 @@
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 /*
- * Copyright 2012 Garrett D'Amore <garrett@damore.org>.  All rights reserved.
+ * Copyright 2014 Garrett D'Amore <garrett@damore.org>
  */
 
 /*
  * sun4 specific DDI implementation
  */

@@ -1129,10 +1129,34 @@
                 vmem_free(little_endian_arena, (void *)saddr[-2], saddr[-1]);
         else
                 vmem_free(big_endian_arena, (void *)saddr[-2], saddr[-1]);
 }
 
+/*
+ * This used to be ddi_iomin, but we were the only remaining caller, so
+ * we've made it private and moved it here.
+ */
+static int
+i_ddi_iomin(dev_info_t *a, int i, int stream)
+{
+        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
 i_ddi_mem_alloc(dev_info_t *dip, ddi_dma_attr_t *attr,
     size_t length, int cansleep, int flags,
     ddi_device_acc_attr_t *accattrp,
     caddr_t *kaddrp, size_t *real_length, ddi_acc_hdl_t *handlep)

@@ -1179,11 +1203,11 @@
                 iomin = 1;
         else
                 iomin = 1 << (ddi_fls(iomin) - 1);
         iomin = maxbit(iomin, attr->dma_attr_minxfer);
         iomin = maxbit(iomin, attr->dma_attr_align);
-        iomin = ddi_iomin(dip, iomin, streaming);
+        iomin = i_ddi_iomin(dip, iomin, streaming);
         if (iomin == 0)
                 return (DDI_FAILURE);
 
         ASSERT((iomin & (iomin - 1)) == 0);
         ASSERT(iomin >= attr->dma_attr_minxfer);