Re: [PATCH] serial: Add OMAP high-speed UART driver.

From: Venkatraman S
Date: Tue Mar 02 2010 - 08:46:18 EST


On Tue, Mar 2, 2010 at 12:22 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> * G, Manjunath Kondaiah <manjugk@xxxxxx> [100301 22:24]:
>>
>>
>>
>> > > > > +     up->uart_dma.prev_rx_dma_pos =
>> > up->uart_dma.rx_buf_dma_phys;
>> > > > > +     if (cpu_is_omap44xx())
>> > > > > +             omap_writel(0, OMAP44XX_DMA4_BASE
>> > > > > +                     +
>> > OMAP_DMA4_CDAC(up->uart_dma.rx_dma_channel));
>> > > > > +     else
>> > > > > +             omap_writel(0, OMAP34XX_DMA4_BASE
>> > > > > +                     +
>> > OMAP_DMA4_CDAC(up->uart_dma.rx_dma_channel));
>> > > >
>> > > > NAK. Please don't use omap_read/write for for new code. And do not
>> > > > tinker with the omap hardware registers directly in the driver.
>> > > >
>> > > > This needs to be done properly in
>> > arch/arm/plat-omap/dma.c instead.
>> > >
>> > > Thanks for the suggestion.
>> > >
>> > > Currently, dma_read/dma_write are #define's in dma.c which
>> > cannot be
>> > > accessed outside dma.c. I don't see any API's in dma.c for
>> > setting required
>> > > value for this register?
>> >
>> > Hmm isn't this the same as omap_get_dma_dst_pos(int lch)? If you're
>> > trying do something that's not in dma.c, we can add a new function
>> > for it.
>>
>> The omap_get_dma_dst_pos(int lch) is for read operation in CDAC register.
>> But, We need to write required value into CDAC register. For this, I propose:
>>
>> omap_set_dma_dst_pos(int lch, int value) which does not exist in current dma
>> driver.
>
> OK, it that's needed.
>
> Tony
> --
CDAC is a shadow register used for monitoring the DMA channel.
I think it would be a lot
simpler if omap_start_dma() always resets CDAC to 0, and the UART driver
just not set it explicitly.

Simple wrapper APIs doing get / set on individual DMA registers is as
difficult to understand
as omap_read / omap_write, IMHO.

Best regards,
Venkat.
--
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/