[RFC PATCH 08/13] mmc: omap_hsmmc: limit max_segs with the EDMA DMAC

S, Venkatraman svenkatr at ti.com
Fri Sep 21 13:33:42 EDT 2012

On Fri, Sep 21, 2012 at 10:48 PM, Felipe Balbi <balbi at ti.com> wrote:
> On Fri, Sep 21, 2012 at 10:47:30PM +0530, S, Venkatraman wrote:
>> On Fri, Sep 21, 2012 at 10:45 PM, S, Venkatraman <svenkatr at ti.com> wrote:
>> > On Thu, Sep 20, 2012 at 8:13 PM, Matt Porter <mporter at ti.com> 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.
>> >>
>> >> Note: this can be removed once the DMA Engine API supports an
>> >> API to query the DMAC's segment limitations.
>> >>
>> >
>> > I wouldn't want to bind the properties of EDMA to omap_hsmmc as this patch
>> > suggests. Why don't we have a max_segs property, which when explicitly specified
>> > in DT, will override the default ?
>> If you are adventurous, this can be a generic mmc DT binding instead
>> of restricting it to OMAP.
> I say if it's a limitation in the DMAC, then DMAC's driver should handle
> it, no ? Meaning that in this case you would copy from one multi-segment
> sg into a one-segment sg and when transfer is complete, before calling
> user's callback, copy data the other way around (?)

Right ! So even if the property is defined for MMC, Matt will end up coding the
limitation into every peripheral driver that uses EMAC, which doesn't scale.
Your solution is better.

More information about the linux-arm-kernel mailing list