On Wed, 15 Jun 2011 20:08:41 +0800 Shawn Guo <shawn.guo@xxxxxxxxxx> wrote: > Like dma_set(get)_max_seg_size for max_segment_size, the patch adds > max_segment_number into device_dma_parameters and creates the > corresponding dmaengine API dma_set(get)_max_seg_number for it. > > Here is the user story that tells the need of the new api. The > mxs-mmc is the mmc host controller for Freescale MXS architecture. > There are a pair of mmc host specific parameters max_seg_size and > max_segs that mxs-mmc host driver needs to tell mmc core, so that > mmc core can know how big each data segment could be and how many > segments could be handled one time in a scatter list by host driver. > > The mxs-mmc driver is one user of dmaengine mxs-dma, and it will call > mxs-dma to transfer data in scatter list. That is to say mxs-mmc has > no idea of what max_seg_size and max_segs should be, because they are > all mxs-dma capability parameters, and mxs-mmc needs to query them > from mxs-dma. > > Right now, there is well defined dma api (dma_get_max_seg_size) for > mmc to query max_seg_size from dma driver, but the one for max_segs > is missing. That's why mxs-mmc driver has to hard-code it. > > The mxs-mmc is just one example to demonstrate the need of the new > api, and there are other mmc host drivers (mxcmmc on imx-dma is > another example) and possibly even other dmaengine users need this > new api to know the maximum segments that dma driver can handle per > dma call. As I wrote earlier, SCSI midlayer sets this parameter in a different way (storing this in SCSI specific data structure). If you add a new generic API for this parameter, please make sure that the API works well for the others that already do the same differently. That is, please send this to linux-scsi too (and discuss with SCSI maintainer). -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html