[alsa-devel] [[ALSA] Patch for HP dv4-1222nr laptop 1/1] Addition for HP dv4-1222nr laptop.

Takashi Iwai tiwai at suse.de
Mon May 4 09:07:45 CEST 2009


At Sun,  3 May 2009 04:00:44 -0400,
renidragsemaj at yahoo.com wrote:
> 
> From: James Gardiner <renidragsemaj at yahoo.com>
> 
> 
> Signed-off-by: James Gardiner <renidragsemaj at yahoo.com>

Applied now.  Thanks.


Takashi

> diff --git a/pci/hda/patch_sigmatel.c b/pci/hda/patch_sigmatel.c
> index 917bc5d..27bc568 100644
> --- a/pci/hda/patch_sigmatel.c
> +++ b/pci/hda/patch_sigmatel.c
> @@ -100,6 +100,7 @@ enum {
>  	STAC_HP_M4,
>  	STAC_HP_DV5,
>  	STAC_HP_HDX,
> +	STAC_HP_DV4_1222NR,
>  	STAC_92HD71BXX_MODELS
>  };
>  
> @@ -1836,6 +1837,7 @@ static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = {
>  	[STAC_HP_M4]		= NULL,
>  	[STAC_HP_DV5]		= NULL,
>  	[STAC_HP_HDX]           = NULL,
> +	[STAC_HP_DV4_1222NR]	= NULL,
>  };
>  
>  static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = {
> @@ -1847,6 +1849,7 @@ static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = {
>  	[STAC_HP_M4] = "hp-m4",
>  	[STAC_HP_DV5] = "hp-dv5",
>  	[STAC_HP_HDX] = "hp-hdx",
> +	[STAC_HP_DV4_1222NR] = "hp-dv4-1222nr",
>  };
>  
>  static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
> @@ -1855,6 +1858,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
>  		      "DFI LanParty", STAC_92HD71BXX_REF),
>  	SND_PCI_QUIRK(PCI_VENDOR_ID_DFI, 0x3101,
>  		      "DFI LanParty", STAC_92HD71BXX_REF),
> +	SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fb,
> +		      "HP dv4-1222nr", STAC_HP_DV4_1222NR),
>  	SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x3080,
>  		      "HP", STAC_HP_DV5),
>  	SND_PCI_QUIRK_MASK(PCI_VENDOR_ID_HP, 0xfff0, 0x30f0,
> @@ -4520,27 +4525,38 @@ static int stac92xx_resume(struct hda_codec *codec)
>  	return 0;
>  }
>  
> -
>  /*
> - * using power check for controlling mute led of HP HDX notebooks
> + * using power check for controlling mute led of HP notebooks
>   * check for mute state only on Speakers (nid = 0x10)
>   *
>   * For this feature CONFIG_SND_HDA_POWER_SAVE is needed, otherwise
>   * the LED is NOT working properly !
> + *
> + * Changed name to reflect that it now works for any designated
> + * model, not just HP HDX.
>   */
>  
>  #ifdef CONFIG_SND_HDA_POWER_SAVE
> -static int stac92xx_hp_hdx_check_power_status(struct hda_codec *codec,
> +static int stac92xx_hp_check_power_status(struct hda_codec *codec,
>  					      hda_nid_t nid)
>  {
>  	struct sigmatel_spec *spec = codec->spec;
> +	unsigned int gpio_bit = 0; /* gets rid of compiler warning */
> +
> +	switch (spec->board_config) {
> +	case STAC_HP_DV4_1222NR:
> +		gpio_bit = 0x01;
> +		break;
> +	case STAC_HP_HDX:
> +		gpio_bit = 0x08;
> +	}
>  
>  	if (nid == 0x10) {
>  		if (snd_hda_codec_amp_read(codec, nid, 0, HDA_OUTPUT, 0) &
>  		    HDA_AMP_MUTE)
> -			spec->gpio_data &= ~0x08;  /* orange */
> +			spec->gpio_data &= ~gpio_bit;  /* orange */
>  		else
> -			spec->gpio_data |= 0x08;   /* white */
> +			spec->gpio_data |= gpio_bit;   /* white */
>  
>  		stac_gpio_set(codec, spec->gpio_mask,
>  			      spec->gpio_dir,
> @@ -5219,6 +5235,22 @@ again:
>  		spec->num_smuxes = 0;
>  		spec->num_dmuxes = 1;
>  		break;
> +	case STAC_HP_DV4_1222NR:
> +		spec->num_dmics = 1;
> +		/* I don't know if it needs 1 or 2 smuxes - will wait for
> +		 * bug reports to fix if needed
> +		 */
> +		spec->num_smuxes = 1;
> +		spec->num_dmuxes = 1;
> +#ifdef CONFIG_SND_HDA_POWER_SAVE
> +		/* This controls MUTE LED */
> +		spec->gpio_mask |= 0x01;
> +		spec->gpio_dir  |= 0x01;
> +		spec->gpio_data |= 0x01;
> +		codec->patch_ops.check_power_status =
> +		    stac92xx_hp_check_power_status;
> +#endif
> +		/* fallthrough */
>  	case STAC_HP_DV5:
>  		snd_hda_codec_set_pincfg(codec, 0x0d, 0x90170010);
>  		stac92xx_auto_set_pinctl(codec, 0x0d, AC_PINCTL_OUT_EN);
> @@ -5239,7 +5271,7 @@ again:
>  
>  		/* register check_power_status callback. */
>  		codec->patch_ops.check_power_status =
> -		    stac92xx_hp_hdx_check_power_status;
> +		    stac92xx_hp_check_power_status;
>  #endif	
>  		break;
>  	};
> -- 
> 1.5.6.3
> 


More information about the Alsa-devel mailing list