Commit 443e26d0 authored by Christoph Plattner's avatar Christoph Plattner Committed by Takashi Iwai

ALSA: hda - Rework on patch_sigmatel.c for HP HDX16/HDX18

Code rework, comments of mail tiwai@suse.de (2009-03-09) incorporated.
Code tested on HP HDX16 (not tested on HDX18 yet).
Signed-off-by: default avatarChristoph Plattner <christoph.plattner@gmx.at>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ae6241fb
...@@ -4489,14 +4489,10 @@ static int stac92xx_resume(struct hda_codec *codec) ...@@ -4489,14 +4489,10 @@ static int stac92xx_resume(struct hda_codec *codec)
*/ */
#ifdef CONFIG_SND_HDA_POWER_SAVE #ifdef CONFIG_SND_HDA_POWER_SAVE
static int stac92xx_check_power_status (struct hda_codec * codec, hda_nid_t nid) static int stac92xx_hp_hdx_check_power_status (struct hda_codec * codec, hda_nid_t nid)
{ {
struct sigmatel_spec *spec = codec->spec; struct sigmatel_spec *spec = codec->spec;
/* only handle on HP HDX */
if (spec->board_config != STAC_HP_HDX)
return 0;
if (nid == 0x10) if (nid == 0x10)
{ {
if (snd_hda_codec_amp_read(codec, nid, 0, HDA_OUTPUT, 0) & if (snd_hda_codec_amp_read(codec, nid, 0, HDA_OUTPUT, 0) &
...@@ -4535,9 +4531,6 @@ static struct hda_codec_ops stac92xx_patch_ops = { ...@@ -4535,9 +4531,6 @@ static struct hda_codec_ops stac92xx_patch_ops = {
.suspend = stac92xx_suspend, .suspend = stac92xx_suspend,
.resume = stac92xx_resume, .resume = stac92xx_resume,
#endif #endif
#ifdef CONFIG_SND_HDA_POWER_SAVE
.check_power_status = stac92xx_check_power_status,
#endif
}; };
static int patch_stac9200(struct hda_codec *codec) static int patch_stac9200(struct hda_codec *codec)
...@@ -5134,13 +5127,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) ...@@ -5134,13 +5127,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
/* no output amps */ /* no output amps */
spec->num_pwrs = 0; spec->num_pwrs = 0;
/* fallthru */ /* fallthru */
case 0x111d76b2: /* Codec of HP HDX16/HDX18 */
/* orange/white mute led on GPIO3, orange=0, white=1 */
spec->gpio_mask |= 0x08;
spec->gpio_dir |= 0x08;
spec->gpio_data |= 0x08; /* set to white */
/* fallthru */
default: default:
memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer, memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer,
sizeof(stac92hd71bxx_dmux_amixer)); sizeof(stac92hd71bxx_dmux_amixer));
...@@ -5199,6 +5185,20 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) ...@@ -5199,6 +5185,20 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
spec->num_dmics = 1; spec->num_dmics = 1;
spec->num_dmuxes = 1; spec->num_dmuxes = 1;
spec->num_smuxes = 1; spec->num_smuxes = 1;
/*
* For controlling MUTE LED on HP HDX16/HDX18 notebooks,
* the CONFIG_SND_HDA_POWER_SAVE is needed to be set.
*/
#ifdef CONFIG_SND_HDA_POWER_SAVE
/* orange/white mute led on GPIO3, orange=0, white=1 */
spec->gpio_mask |= 0x08;
spec->gpio_dir |= 0x08;
spec->gpio_data |= 0x08; /* set to white */
/* register check_power_status callback. */
codec->patch_ops.check_power_status =
stac92xx_hp_hdx_check_power_status;
#endif
break; break;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment