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