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
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
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
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
.
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
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, ¶ms);
+#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