Random header image... Refresh for more!
Visitors

free invisible counter
Partner sites
led-svetla.sk
---------------------------
www.multi.mluv.cz

Because of previous storage doesn’t work I move linwizard kernel to github.com.

You can find sources at: git://github.com/nandra/omap_850_kernel.git

6 Responses to “Repository for OMAP850 audio driver (update)”

  • DANILO BEZERRA CARDOSO DA SILVA says:

    How can i get:
    git://github.com/nandra/omap_850_kernel.git

    My browse (firefox) don´t know to open de line.
    How can i do it?

    Thanks,

    Danilo.

  • Hi, you should use git init programm to fetch sources. You can browse also on firefox: http://github.com/nandra/omap_850_kernel

  • Ashwin says:

    does it work now ? if you have it compiled as a module i would like to give it a try .

    Thanks,
    Ashwin

  • Hi, it should work. Anyway I’m working on ASoC driver for newer kernels. I’ll update a post when it will work ;) .

  • Ashwin says:

    Hi Marek,

    I tried the audio driver from your tree at open nandra. It works if
    i am running some audio file in CE and then boot linux. It did give some beep sound when I cat a file to the device.

    Couple of things
    1. this behavior seems same as your described some beeps being heard.
    2. If i cat a large file cat seems to lock up.

    Any ideas what might be the issue.
    Thanks,
    Ashwin

  • Ashwin says:

    Hi,

    Located the problem the way dma was setup it used to stop after doing one frame. Here is the patch
    ———————————————————–
    — omap850-audio-orig.c 2010-01-01 19:56:55.481121301 +0530
    +++ omap850-audio.c 2010-01-01 23:47:38.921107383 +0530
    @@ -44,6 +44,8 @@
    // #include
    #include “omap850-audio.h”

    +#define OMAP_DMA_CCR_EN (1 <dma_ch);
    +
    s->dma_running = 1;

    /* Audio Global Control Register 2: start sync transfer */
    @@ -183,6 +186,7 @@
    {

    struct omap_dma_channel_params params;
    + u16 w;

    params.data_type = OMAP_DMA_DATA_TYPE_S16; /* data type 16 */
    params.elem_count = s->fragsize; /* two buffers, 16 bits of s->fragsize */
    @@ -209,6 +213,17 @@
    }

    omap_set_dma_params(s->dma_ch, &params);
    +#if 1
    + w = OMAP_DMA_CCR_REG(s->dma_ch);
    + /* If DMA was already active set the end_prog bit to have
    + * the programmed register set loaded into the active
    + * register set.
    + */
    + w |= 1 << 11; /* End_prog */
    + w |= (3 <dma_ch) = w;
    +#endif
    /* enable interrupts which are handled in irq handler */
    omap_enable_dma_irq(s->dma_ch, OMAP_DMA_FRAME_IRQ);
    omap_disable_dma_irq(s->dma_ch, OMAP_DMA_BLOCK_IRQ);
    @@ -409,6 +424,18 @@

    /* … and for polling processes */
    wake_up(&s->frag_wq);
    +
    + /* check if dma is still on */
    + if(OMAP_DMA_CCR_REG(ch) & OMAP_DMA_CCR_EN)
    + {
    + printk(KERN_ALERT “DMA is ON s->dma_frag:%d\n”,s->dma_frag);
    + }
    + else
    + {
    + printk(KERN_ALERT “DMA is OFF!!!! s->dma_frag:%d\n”,s->dma_frag);
    + }
    +
    +
    }
    }

    @@ -1099,3 +1126,4 @@
    EXPORT_SYMBOL(omap_audio_clear_buf);
    EXPORT_SYMBOL(audio_ldm_resume);
    EXPORT_SYMBOL(audio_ldm_suspend);
    ———————————————————–
    Let me know if you see any issues in this.

    Thanks,
    Ashwin

Leave a Reply