#11471 HIGH 1.75-so: Crash in mmp2_pcm_open and related code

Zarro Boogs per Child bugtracker at laptop.org
Sun Dec 4 13:20:37 EST 2011

#11471: Crash in mmp2_pcm_open and related code
           Reporter:  greenfeld  |       Owner:  saadia                           
               Type:  defect     |      Status:  new                              
           Priority:  high       |   Milestone:  1.75-software                    
          Component:  kernel     |     Version:  Development build as of this date
         Resolution:             |    Keywords:                                   
        Next_action:  diagnose   |    Verified:  0                                
Deployment_affected:             |   Blockedby:                                   
           Blocking:             |  

Comment(by corbet):

 OK.  The spurious interrupt is coming from the second audio device - the
 one that is not used at all in the OLPC configuration.  I can make the
 problem go away entirely by just masking that device once at
 initialization time.

 I'll need to ponder a bit on the right fix for this one.  Since that
 device is never instantiated in the OLPC kernel, there is no driver that
 is supposed to know about where its registers are.  I could put an ugly
 hack into the OLPC startup code, I guess; it would have to be somewhere
 OLPC-specific in any case.

 The alternative is to simply instantiate that device; then (with my
 previous patch) it will get properly masked by default.  That, of course,
 will conflict with the "use all 32K of the ADMA space for the first
 device" hack.  The best (most general) solution might well be to revert
 that hack out of the OLPC tree and do things this way.

 That said, it would sure be nice to know what is provoking the second
 device to start interrupting the system.  That IRQ is not asserted at
 power-on time, so *something* is causing it to show up later on.  I can't
 find anything in mmp2-pcm.c that should be reaching into the second
 device's MMIO space.  It could be a stray MMIO write from anywhere in the
 kernel, or it could just be that the device needs to be explicitly masked
 at boot or it will start crying for attention eventually.  The kernel has
 a nice mmiotrace feature that would catch stray writes handily, but, alas,
 it doesn't work on ARM...

 I'll try to come up with an alternative or two later today.

Ticket URL: <http://dev.laptop.org/ticket/11471#comment:8>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system

More information about the Bugs mailing list