> From: Jacob Meuser <[email protected]>
> Subject: Re: Azalia "No
Problem" but no Audio
> To: "Shazaum" <[email protected]>
> Cc:
[email protected]
> Date: Saturday, November 6, 2010, 10:33 PM
> On Wed, Nov
03, 2010 at 03:32:21PM
> -0200, Shazaum wrote:
> > a little test in freebsd
6.2 audio worked
> 
> going by what they kept in their current driver, and
what
> alsa does,
> perhaps this helps.  probably doesn't fix the internal
>
speaker, but
> might get headphone output working.
> 
> -- 
>
[email protected]
> SDF Public Access UNIX System -
http://sdf.lonestar.org
> 
> Index: azalia.h
>
===================================================================
> RCS
file: /cvs/src/sys/dev/pci/azalia.h,v
> retrieving revision 1.62
> diff -u -p
azalia.h
> --- azalia.h    10 Sep 2010 15:11:23
> -0000    1.62
> +++
azalia.h    6 Nov 2010 21:54:24 -0000
> @@ -510,6 +510,8 @@
>  #define
AZ_QRK_WID_BEEP_1D    0x00002000
>  #define AZ_QRK_WID_OVREF50    0x00004000
>
#define AZ_QRK_WID_AD1981_OAMP   
> 0x00008000
> +#define
AZ_QRK_WID_OVREF100    0x00010000
> +#define AZ_QRK_WID_HP_0F    0x00020000
>
>  /* memory-mapped types */
>  typedef struct {
> Index: azalia_codec.c
>
===================================================================
> RCS
file: /cvs/src/sys/dev/pci/azalia_codec.c,v
> retrieving revision 1.151
> diff
-u -p azalia_codec.c
> --- azalia_codec.c    10 Sep 2010 15:11:23
> -0000   
1.151
> +++ azalia_codec.c    6 Nov 2010 21:54:24
> -0000
> @@ -96,6 +96,9 @@
azalia_codec_init_vtbl(codec_t *this)
>          break;
>      case
0x10ec0861:
>          this->name =
> "Realtek ALC861";
> +        if
(this->subid
> == 0x90751584) {    /* CCE_X20II ??? */
> +           
>
this->qrks |= AZ_QRK_WID_OVREF100 | AZ_QRK_WID_HP_0F;
> +        }
>         
break;
>      case 0x10ec0880:
>          this->name =
> "Realtek ALC880";
>
@@ -1928,6 +1931,8 @@ azalia_mixer_set(codec_t *this, nid_t
> nid, int target,
>             
> value |= CORB_PWC_OUTPUT;
>             
> if (this->qrks &
AZ_QRK_WID_OVREF50)
>             
>     value |= CORB_PWC_VREF_50;
> +       
   
> if (this->qrks & AZ_QRK_WID_OVREF100)
> +           
>     value |=
CORB_PWC_VREF_100;
>          } else {
>             
> value &=
~CORB_PWC_OUTPUT;
>             
> value |= CORB_PWC_INPUT;
> @@ -2434,6
+2439,13 @@ azalia_codec_widget_quirks(codec_t
> *this, nid_t nid)
>         
((nid == 0x05) || (nid ==
> 0x06) || (nid == 0x07) ||
>          (nid == 0x09)
|| (nid ==
> 0x18))) {
>          azalia_ampcap_ov(w,
> COP_OUTPUT_AMPCAP, 31,
33, 6, 30, 1);
> +    }
> +
> +    if ((this->qrks &
> AZ_QRK_WID_HP_0F) &&
(nid == 0x0f)) {
> +       
> azalia_pin_config_ov(w, CORB_CD_DEVICE_MASK,
>
CORB_CD_HEADPHONE);
> +       
> azalia_pin_config_ov(w, CORB_CD_PORT_MASK,
CORB_CD_JACK);
> +        w->widgetcap |=
> COP_AWCAP_STEREO;
> +       
w->enable = 1;
>      }
>  
>      return(0);
> 
> 

I am not sure what all
this code means, but would you like me to test stuff out?
If I'm supposed to
do something with this piece of code, you'll have to let me know
what to do
with it

Reply via email to