Re: [PATCH 3/7] dw_dmac: get number of channels from hardware if possible

viresh kumar
2012-09-20T09:40:19Z

On Thu, Sep 20, 2012 at 3:05 PM, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> On Tue, 2012-09-18 at 12:20 +0530, viresh kumar wrote:
>> > @@ -1392,23 +1396,32 @@ static int __devinit dw_probe(struct platform_device *pdev)
>> > + dw_params = dma_raw_readl(regs, DW_PARAMS);
>>
>> Is this valid for every SoC implementation. What if this configuration
>> is not valid
>> for a particular SoC and it is invalid to access this address? Or this
>> gives a invalid
>> value instead of returning 0?

> Actually I didn't get it clearly from the documentation. We have only
> one test report from Hein until now.

@Shiraz: Can you please verify reading this register from u-boot? This
is important before we apply this patch to linux-next.

>> > diff --git a/drivers/dma/dw_dmac_regs.h b/drivers/dma/dw_dmac_regs.h
>> > index 4633d39..0f96965 100644
>> > --- a/drivers/dma/dw_dmac_regs.h
>> > +++ b/drivers/dma/dw_dmac_regs.h
>> > @@ -104,6 +104,10 @@ struct dw_dma_regs {
>> > #define dma_raw_writel(addr, name, val) \
>> > writel((val), (addr) + offsetof(struct dw_dma_regs, name))
>> >
>> > +/* Bitfields in DW_PARAMS */
>> > +#define DW_PARAMS_NR_CHAN 8 /* number of channels */
>> > +#define DW_PARAMS_EN 28 /* encoded parameters */
>> > +
>>
>> Can you make this part of patch 2/7?
> Do you mean to combine patch 2 and 3 together or only the parts related
> to dw_dmac_regs.h?

Only the new register definition macros in dmac_regs.h. :)

--
viresh