mirror of https://gitee.com/openkylin/linux.git
ARM: OMAP: DMA: Add support for DMA channel self linking on OMAP1510
Implement DMA channel self linking on OMAP1510 using AUTO_INIT and REPEAT flags of the DMA CCR register. Created against linux-2.6.31-rc5. Tested on Amstrad Delta. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
e4aa8dd5ca
commit
9f0f4ae570
|
@ -1125,6 +1125,11 @@ int omap_dma_running(void)
|
||||||
void omap_dma_link_lch(int lch_head, int lch_queue)
|
void omap_dma_link_lch(int lch_head, int lch_queue)
|
||||||
{
|
{
|
||||||
if (omap_dma_in_1510_mode()) {
|
if (omap_dma_in_1510_mode()) {
|
||||||
|
if (lch_head == lch_queue) {
|
||||||
|
dma_write(dma_read(CCR(lch_head)) | (3 << 8),
|
||||||
|
CCR(lch_head));
|
||||||
|
return;
|
||||||
|
}
|
||||||
printk(KERN_ERR "DMA linking is not supported in 1510 mode\n");
|
printk(KERN_ERR "DMA linking is not supported in 1510 mode\n");
|
||||||
BUG();
|
BUG();
|
||||||
return;
|
return;
|
||||||
|
@ -1147,6 +1152,11 @@ EXPORT_SYMBOL(omap_dma_link_lch);
|
||||||
void omap_dma_unlink_lch(int lch_head, int lch_queue)
|
void omap_dma_unlink_lch(int lch_head, int lch_queue)
|
||||||
{
|
{
|
||||||
if (omap_dma_in_1510_mode()) {
|
if (omap_dma_in_1510_mode()) {
|
||||||
|
if (lch_head == lch_queue) {
|
||||||
|
dma_write(dma_read(CCR(lch_head)) & ~(3 << 8),
|
||||||
|
CCR(lch_head));
|
||||||
|
return;
|
||||||
|
}
|
||||||
printk(KERN_ERR "DMA linking is not supported in 1510 mode\n");
|
printk(KERN_ERR "DMA linking is not supported in 1510 mode\n");
|
||||||
BUG();
|
BUG();
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue