You need implement tran_getcap() routine, and set SCSI_CAP_DMA_MAX capability. sample code is as below: ------%<------ xxx_attach() { .... hba_tran->tran_getcap =xxx_scsi_getcap; ... } static int xxx_tran_getcap(struct scsi_address *ap, char *cap, int tgtonly) { switch (ckey) { case SCSI_CAP_DMA_MAX: rval = (int)xxx->dma_attr.dma_attr_maxxfer; break; default: rval = UNDEFINED; break; }
------%<------ Javen ram vegesna wrote: > > Hi, > > How can we tell the OS (scsi midlayer) to limit of I/O size > that the device can handle? > So, that OS will split any bigger size IO request into chunks of the > specified size. > > Please, let me know if I have to change some parameter in > ddi_dma_attr_t structure. > > Note : I am using Solaris 10 x86 > > Thanks, > Ram > > > ------------------------------------------------------------------------ > > _______________________________________________ > driver-discuss mailing list > driver-discuss@opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/driver-discuss > _______________________________________________ driver-discuss mailing list driver-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/driver-discuss