today's 6.1 would not boot here

Scott Long scottl at samsco.org
Mon Feb 27 16:04:11 PST 2006


Ariff Abdullah wrote:
> On Mon, 27 Feb 2006 13:45:52 -0700
> Scott Long <scottl at samsco.org> wrote:
> 
>>Ariff Abdullah wrote:
>>
>>>On Mon, 27 Feb 2006 12:38:26 -0700
>>>Scott Long <scottl at samsco.org> wrote:
>>>
>>>
>>>>Is this a problem with calibrating the sample rate on the chip? 
>>>>There  was a problem with snd_ich several years ago where the
>>>>calibration would fail or be unpredictable during boot.  I fixed
>>>
>>>it >my moving the  calibration code to a separate step that gets
>>>run via >the  config_intrhook API.  That made it work reliably
>>>during boot >and when loaded after boot.  Is this new problem
>>>somehow related to >this?  Since I was the one who fixed it in the
>>>past, I'd be happy to >help now.
>>>
>>>It seems related. From my naked eyes, I can sense that the
>>>interrupt was trigered during/before sampling rate calibration,
>>>and since the calibration expect to not trigger any interrupt,
>>>this will cause unexpected behaviour especially for this MPSAFEed
>>>driver *and* during boot. Besides, the pcm construction also done
>>>before the calibration, unlike snd_atiixp where the hook is use to
>>>bring everything alive after the necessary step is finished.
>>>
>>>
>>>I'll come up with something shortly.
>>>
>>
>>Maybe move the bus_setup_intr() call to after the calibration?  If
>>the driver doesn't need interrupts until after calibration, I think
>>that this would cleanly solve the problem.
>>
> 
> Good idea, or, simply ignore interrupt trigger until all has been
> calibrated. Pretty much like this:
> 
> http://people.freebsd.org/~ariff/test/ich.c
> 

Yup, that looks good too.

Scott



More information about the freebsd-multimedia mailing list