Re: [PATCH] dw_dmac: adjust slave_id accordingly to request linebase

From: Vinod Koul
Date: Tue Feb 12 2013 - 12:59:18 EST


On Tue, Feb 12, 2013 at 06:43:51PM +0200, Mika Westerberg wrote:
> On Tue, Feb 12, 2013 at 07:53:34AM -0800, Vinod Koul wrote:
> > On Tue, Jan 29, 2013 at 10:29:43AM +0530, Viresh Kumar wrote:
> > > Next time, please direct these mails to my Linaro id :)
> > >
> > > On Mon, Jan 28, 2013 at 4:34 PM, Andy Shevchenko
> > > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > > > On some hardware configurations we have got the request line with the offset.
> > > > The patch introduces convert_slave_id() helper for that cases. The request line
> > > > base is got from the platform device resources provided by the IORESOURCE_DMA
> > > > type.
> > >
> > > @Vinod: Is IORESOURCE_DMA suitable for this purpose?
> > Looks unlikely...
> >
> > But why do we need this in first place?
> >
> > I know this is due to common platform probe. Clearly one size not fitting all.
> > If you had dedicated PCI probe you wouldnt worrry right?
>
> This is all related to new ACPI 5.0 features for devices enumerated from
> ACPI namespace, such as SPI controller.
>
> ACPI 5.0 allows BIOS to specify DMA request lines and channels used by a
> slave device with FixedDMA() descriptors, such as:
>
> FixedDMA (0x0010, 0x0000, Width32bit,) // TX
> FixedDMA (0x0011, 0x0001, Width32bit,) // RX
>
> The first field (0x10, 0x11) is the request line assigned to the device. In
> this particular case it is the SPI controller.
>
> Now there is only one DMA controller in this platform but the request lines
> still start from 0x10 (16).
>
> Then there is another ACPI table called CSRT (Core System Resources Table)
> that assings request line range to the DMA controller itself. This range
> starts from 0x10 (16) for this platform.
>
> So what we do is that we parse this CSRT table, create platform device for
> the DMA controller of found and pass the request line range as
> IORESOURCE_DMA resource with the platform device.
Okay, who parses the CSRT table and how is this presented to OS.

Can we do this in platform data and complete the base calculation.

In ACPI 5, is DMA a PCI device or platfrom device?
--
~Vinod
>
> In this patch then Andy uses that resource to map the FixedDMA() request
> line to the actual hardware request line, which is for the SPI case:
>
> 0x10 -> 0
> 0x11 -> 1
>
> Unfortunately we didn't find any better way to pass this information than
> IORESOURCE_DMA. However, if you have better solution we certainly can
> change that :)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/