Message ID | 1350566815-409-12-git-send-email-mporter@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 10/18/2012 6:56 PM, Matt Porter wrote: > The EDMA DMAC has a hardware limitation that prevents supporting > scatter gather lists with any number of segments. Since the EDMA > DMA Engine driver sets the maximum segments to 16, we do the > same. > > TODO: this will be replaced once the DMA Engine API supports an > API to query the DMAC's segment size limit. > > Signed-off-by: Matt Porter <mporter@ti.com> > --- > drivers/mmc/host/omap_hsmmc.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c > index b327cd0..52bab01 100644 > --- a/drivers/mmc/host/omap_hsmmc.c > +++ b/drivers/mmc/host/omap_hsmmc.c > @@ -1828,6 +1828,16 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) > * as we want. */ > mmc->max_segs = 1024; > > + /* Eventually we should get our max_segs limitation for EDMA by > + * querying the dmaengine API */ Nit picking: This is not as per multi-line comment style in Documentation/CodingStyle. Thanks, Sekhar
On Mon, Oct 29, 2012 at 01:48:46PM +0530, Sekhar Nori wrote: > On 10/18/2012 6:56 PM, Matt Porter wrote: > > The EDMA DMAC has a hardware limitation that prevents supporting > > scatter gather lists with any number of segments. Since the EDMA > > DMA Engine driver sets the maximum segments to 16, we do the > > same. > > > > TODO: this will be replaced once the DMA Engine API supports an > > API to query the DMAC's segment size limit. > > > > Signed-off-by: Matt Porter <mporter@ti.com> > > --- > > drivers/mmc/host/omap_hsmmc.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c > > index b327cd0..52bab01 100644 > > --- a/drivers/mmc/host/omap_hsmmc.c > > +++ b/drivers/mmc/host/omap_hsmmc.c > > @@ -1828,6 +1828,16 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) > > * as we want. */ > > mmc->max_segs = 1024; > > > > + /* Eventually we should get our max_segs limitation for EDMA by > > + * querying the dmaengine API */ > > Nit picking: This is not as per multi-line comment style in > Documentation/CodingStyle. Thanks :). This is dropped from v4 anyway, as I now use a call to dma_get_channel_caps() to determine the SG limits. -Matt
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index b327cd0..52bab01 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1828,6 +1828,16 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) * as we want. */ mmc->max_segs = 1024; + /* Eventually we should get our max_segs limitation for EDMA by + * querying the dmaengine API */ + if (pdev->dev.of_node) { + struct device_node *parent = pdev->dev.of_node->parent; + struct device_node *node; + node = of_find_node_by_name(parent, "edma"); + if (node) + mmc->max_segs = 16; + } + mmc->max_blk_size = 512; /* Block Length at max can be 1024 */ mmc->max_blk_count = 0xFFFF; /* No. of Blocks is 16 bits */ mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
The EDMA DMAC has a hardware limitation that prevents supporting scatter gather lists with any number of segments. Since the EDMA DMA Engine driver sets the maximum segments to 16, we do the same. TODO: this will be replaced once the DMA Engine API supports an API to query the DMAC's segment size limit. Signed-off-by: Matt Porter <mporter@ti.com> --- drivers/mmc/host/omap_hsmmc.c | 10 ++++++++++ 1 file changed, 10 insertions(+)