Jacob,

Thank you for your response.  Pardon my late reply I've been busy all
day.  I will do what you recommend and send you the requested output.
Also, thanks for the additional info regarding azalia0.  Can't wait to
try out these settings!

Respectfully,

--
Luis

On 8/10/10, Jacob Meuser <[email protected]> wrote:
> On Tue, Aug 10, 2010 at 09:09:58AM +0000, Jacob Meuser wrote:
>> On Mon, Aug 09, 2010 at 09:28:34PM -0700, Luis Cortes wrote:
>
>> > azalia0 at pci0 dev 27 function 0 "Intel 82801I HD Audio" rev 0x03:
>> > apic 1 int 22 (irq 255)
>> > azalia0: invalid CORBSZCAP: 0x 0
>> > azalia0: initialization failure, detaching
>>
>> don't think I've ever seen that one before.
>
> linux always uses 256 CORB/RIRB entries for all controllers, and intel
> docs say intel controllers always use 256 entries, so it's likely the
> following will work (assuming the controller isn't just foobarred in
> some other way).
>
> if this doesn't work, I'd like a dmesg from a kernel with
> AZALIA_DEBUG defined.
>
> --
> [email protected]
> SDF Public Access UNIX System - http://sdf.lonestar.org
>
> Index: azalia.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/azalia.c,v
> retrieving revision 1.183
> diff -u -p azalia.c
> --- azalia.c  8 Aug 2010 05:25:30 -0000       1.183
> +++ azalia.c  10 Aug 2010 17:34:47 -0000
> @@ -775,8 +775,10 @@ azalia_get_ctrlr_caps(azalia_t *az)
>               az->corb_entries = 2;
>               az->corbsize |= HDA_CORBSIZE_CORBSIZE_2;
>       } else {
> -             printf("%s: invalid CORBSZCAP: 0x%2x\n", XNAME(az), cap);
> -             return(-1);
> +             DPRINTF(("%s: invalid CORBSZCAP: 0x%02x, using 256 entries\n",
> +                 XNAME(az), cap));
> +             az->corb_entries = 256;
> +             az->corbsize |= HDA_CORBSIZE_CORBSIZE_256;
>       }
>
>       /* determine RIRB size */
> @@ -793,8 +795,10 @@ azalia_get_ctrlr_caps(azalia_t *az)
>               az->rirb_entries = 2;
>               az->rirbsize |= HDA_RIRBSIZE_RIRBSIZE_2;
>       } else {
> -             printf("%s: invalid RIRBSZCAP: 0x%2x\n", XNAME(az), cap);
> -             return(-1);
> +             DPRINTF(("%s: invalid RIRBSZCAP: 0x%02x, using 256 entries\n",
> +                 XNAME(az), cap));
> +             az->rirb_entries = 256;
> +             az->rirbsize |= HDA_RIRBSIZE_RIRBSIZE_256;
>       }
>
>       return(0);
>
>


-- 
Luis

Reply via email to