Re: custom audio card on beaglebone

2017-01-25 Thread crazyiop
Hi Anish,

thanks for giving me some thougt. 
Here is what I found:

On Sun, Jan 22, 2017 at 03:47:54PM -0800, anish singh wrote:
> On Sun, Jan 22, 2017 at 1:38 PM, jo  wrote:
> 
> > root@beaglebone:~# aplay -v Pom\ Pom.wav
> > Playing WAVE 'Pom Pom.wav' : Signed 32 bit Little Endian, Rate 44100 Hz,
> > Stereo
> > ALSA <-> PulseAudio PCM I/O Plugin
> > Its setup is:
> >   stream   : PLAYBACK
> >   access   : RW_INTERLEAVED
> >   format   : S32_LE
> >   subformat: STD
> >   channels : 2
> >   rate : 44100
> >   exact rate   : 44100 (44100/1)
> >   msbits   : 32
> >   buffer_size  : 22050
> >   period_size  : 5512
> >   period_time  : 125000
> >   tstamp_mode  : NONE
> >   period_step  : 1
> >   avail_min: 5512
> >   period_event : 0
> >   start_threshold  : 22050
> >   stop_threshold   : 22050
> >   silence_threshold: 0
> >   silence_size : 0
> >   boundary : 1445068800
> >
> > #nothing play and the above stay displayed -as is- until I ctrl-c
> >
> 
> Possible that you have not turned on the mixer controls i.e.
> enabling the volume?
> 
> Check sw_ptr and hw_ptr and see if those are increasing or not?
> 
> Probe the I2S lines and see if there is any data?
> 
> 

So first, the above command in fact do finish after the length of the file (I
thought I took a much smaller test sample..)

The mixer control were all on and volume to the max.
I don't have a scope, but you made me realize that I'm clueless in front
of my problem without one... So I finnaly found an access to one. The measure
show that the input clock of the pll (mclk) is just non-existant. 
I now know what to look for.

I tried to find a reference to those sw_ptr and hw_ptr somewhere,
without success, what are they and where can I find/probe them ?

Thanks!!
Jonathan.

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Can interrupt be missed between interrupt disable/enable window?

2016-03-21 Thread Crazyiop
Hi,

When interrupt are globally disabled, interrupt are still detected and their 
flag set by their specific hardware circuit. It's only their immediat 
processing that are disabled. 

After reenabling interrupt, they will be treated right away, as their flag are 
still set. it would looks like the interrupt trigger Just happened. 

An interrupt miss is a problem if an interrupt is triggered a second time 
before the first one has been treated. That's When information is lost. 

This is impossible in some case and harmless in other. 

For the rest, the driver know something happens, but canot be sur of the number 
of triggers. As the interrupt are not lost, the driver's interrupt function is 
still called and has an opportunity to check it out, and act accordingly.

++


Le 21 mars 2016 08:11:54 GMT+01:00, Vishwas Srivastava  
a écrit :
>Kernel code heavily uses the spinlock primitives
>spin_lock_irqsave/restore plus local interrupt disabling/ enabling, all
>across the code.
>Is there a possibility that the interrupts might get
>missed in this small window
>
>disable interrupts
>.
>.<<<--
>interrupts is trigerred here
>
>enable interrupts
>
>
>specially when the irq
>affinity has been set to the same core on which the
>above mentioned code (disabling / enabling the irq's)
>runs?
>How the linux deals with this kind of scenario?
>
>
>
>
>___
>Kernelnewbies mailing list
>Kernelnewbies@kernelnewbies.org
>http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies