>
>Correction.
>
>This sample:
>>
>>         if (bus_dma_tag_create(pci->parent_dmat, PAGE_SIZE, lim,
>>             BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, len, 1,
>>             BUS_SPACE_MAXSIZE_32BIT, 0, &pci->cntrol_dmat) != 0) {
>>                 isp_prt(isp, ISP_LOGERR,
>>                     "cannot create a dma tag for control spaces");
>>                 free(isp->isp_xflist, M_DEVBUF);
>>                 free(pci->dmaps, M_DEVBUF);
>>                 return (1);
>>         }
>>

You'll need to change the number of segments to match the max
supported by the card (or the max you will ever need).  This
example made me realize that the bounce code doesn't deal with
multiple segments being copied into a single page (i.e. tracking
and using remaining free space in a page already allocated for
bouncing for a single map).  I'll have to break loose some time
to fix that.

--
Justin

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to