Re: [PATCH] usb: chipidea: Configure DMA properties and ops from DT

From: Peter Chen
Date: Fri Mar 25 2016 - 00:02:52 EST


On Tue, Mar 08, 2016 at 07:40:08PM -0800, Bjorn Andersson wrote:
> On Tue, Mar 8, 2016 at 11:52 AM, Li Yang <leoli@xxxxxxxxxxxxx> wrote:
> > On Wed, Mar 2, 2016 at 4:59 PM, Li Yang <leoli@xxxxxxxxxxxxx> wrote:
> >> On Mon, Feb 22, 2016 at 4:07 PM, Bjorn Andersson
> >> <bjorn.andersson@xxxxxxxxxx> wrote:
> >>> On Mon 22 Feb 02:03 PST 2016, Srinivas Kandagatla wrote:
> >>>
> >>>>
> >>>>
> >>>> On 22/02/16 05:32, Bjorn Andersson wrote:
> >>>> >On certain platforms (e.g. ARM64) the dma_ops needs to be explicitly set
> >>>> >to be able to do DMA allocations, so use the of_dma_configure() helper
> >>>> >to populate the dma properties and assign an appropriate dma_ops.
> [..]
> >>>> None of the drivers call of_dma_configure() explicitly, which makes me feel
> >>>> that we are doing something wrong. TBH, this should be handled in more
> >>>> generic way rather than driver like this having an explicit call to
> >>>> of_dma_configure().
> >>>>
> >>>
>
> I had the chance to go through this with Arnd and the verdict is that
> devices not described in DT should not do DMA (or allocate buffers for
> doing DMA).
>
> So I believe the solution is to fall back on Peter's description; the
> chipidea driver is the core driver and the Qualcomm code should just
> be a platform layer.
>
> My suggestion is that we turn the chipidea core into a set of APIs
> that can called by the platform specific pieces. That way we will have
> the chipidea core be the device described in the DT.
>

Hi Bjorn,

After reading the DMA documentation Russell supplied and several related
DMA APIs, would you please try below patch on your ARM64 platform?
Since the core device has no device node at all, I don't know why
your patch can work, or am I missing something?