Question about ppc4xx_dma.h

akuster akuster at dslextreme.com
Thu Aug 22 05:39:19 EST 2002


akuster wrote:
>
> jim wrote:
>
>> I've been trying to get DMA working on the 405GP and I've run across
>> something in ppc4xx_dma.h.
>>
>> In the function 'enable_dma' the following piece of code appears:
>>
>> (begin excerpt)
>>     /* for other xfer modes, the addresses are already set */
>>     control = mfdcr(DCRN_DMACR0);
>>     control &= ~(DMA_TM_MASK | DMA_TD);    /* clear all mode bits */
>>     if (p_dma_ch->mode == DMA_MODE_MM) {
>>         /* software initiated memory to memory */
>>         control |= control | DMA_ETD_OUTPUT | DMA_TCE_ENABLE;
>>     }
>>     control |= (p_dma_ch->mode | DMA_CH_ENABLE);
>>     mtdcr(DCRN_DMACR0, control);
>> (end excerpt)
>>
>> It looks to me like this code will always read/write the control
>> register for
>> DMA channel 0 regardless of the channel specified by the parameter
>> 'dmanr'
>> that is passed to the function.  Is this observation correct?
>
>
> good catch.
>
>> What would the
>> fix be, if so?
>>
> Most likey switch statment like the disable has.
>
> give me a day
>
> Armin
>
>
>
>
>

Here is the patch , please let me know it it helps.

Armin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dma_0821.patch.gz
Type: application/x-gunzip
Size: 1013 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20020821/abb440d5/attachment.bin 


More information about the Linuxppc-embedded mailing list